W3C의 표준으로 DID 이해하기 2
이전글: W3C의 표준으로 DID 이해하기 1
다음글: W3C의 표준으로 DID 이해하기 3
2. 용어
VC 표준의 각 용어에 대한 설명은 W3C 번역 링크를 참고하시기 바랍니다. https://ssimeetupkorea.github.io/vc-data-model/#generatedID-0
3. 핵심 데이터 모델
앞으로 설명할 DID 체계를 이해하기 위해서는 아래의 주요 개념들을 이해해야 한다.
3.1. 클레임 (Claim)
디지털 환경에서 신원정보는 모두 데이터로 표현할 수 있다. 이러한 각 단위 데이터를 클레임(Claim)이라고 하는데 아래 그림과 같이 주체-속성-값의 구조를 가진다.
예를 들어, ‘A라는 주체(subject)의 이름라는 속성(property)은 홍길동이라는 값(value)를 가진다.’라는 문장이 하나의 클레임이 되는 것이다. 하지만 매 순간 구조적으로 이해하려면 헷갈릴 수 있으므로 일반적인 수준에서는 이름 그 자체를 클레임이라고 생각해도 개념을 이해하는데 무리는 없다.
한편 단위 클레임은 다른 클레임과 결합하여 아래와 같은 연결 정보(Graph of Information)를 생성할 수 있다.
위 도식을 해석해 보면 보면, ‘Pat는 Example 대학의 졸업생이다’와 ‘Sam의 직업은 교수이다’라는 단위 클레임에 ‘Pat는 Sam을 알고 있다는’는 정보를 추가하면 ‘Example 대학교 졸업생인 Pat는 교수인 Sam을 알고있다’는 연결 정보를 도출할 수 있다.
3.2. 크리덴셜(Credential)
(W3C 표준에는 없는 부분이나 이해를 돕기위해 추가합니다. 3.2. Verifiable Credential의 일부로 간주하시면 됩니다.)
일반적인 의미로서의 크리덴셜은 자격증, 암호학적 정보, 인증서 등 다양한 단어로 번역될 수 있고, 이는 사용 맥락에 따라서 달라질 수 있다. 하지만 DID 체계에서는 크리덴셜을 주체에 대한 하나 혹은 그 이상의 클레임으로 구성된 데이터 집합이라고 기술적으로 정의한다.
W3C에서는 이러한 크리덴셜 데이터의 교환을 위한 표준을 정의하고 있는데 이를 Verifiable Credentials Data Model(검증가능한 크리덴셜 데이터 모델)이라고 한다.
‘검증가능한’ 크리덴셜을 구체적으로 살펴보기 전에 기본적인 크리덴셜을 이해할 필요가 있다. 개념을 쉽게 이해하기 위해 우리가 자주 쓰는 물리적 크리덴셜 즉, 주민등록증을 살펴보는 것이 도움이 된다.
주민등록증에는 다음과 같은 단위 신원정보들이 포함되어 있다.
이름, 주민등록번호(생년월일, 성별, 출생등록지), 주소, 발급일자, 발급주체
그동안 우리는 인지하지 못하고 있었지만 이러한 단위 신원정보(클레임)들을 바탕으로 우리의 신분들을 증명하였으며, 그것을 물리적 형태로 구현한 주민등록증(크리덴셜)으로 신원을 검증하고 있었던 것이다.
디지털 환경에서도 이러한 기본적인 크리덴셜의 개념은 크게 다르지 않다. 단지 물리적 형태가 아닌 무형의 데이터로 표현 될 뿐이다.
3.2. 검증가능한 크리덴셜 (Verifiable Credential)
그동안 인터넷을 통한 개인에 대한 인증이 필요한 경우 이러한 크리덴셜 데이터를 주고 받음으로써 주체에 대한 증명을 수행했다.
하지만 탈중앙신원체계에서는 단순히 크리덴셜이라고 표현하지 않고 ‘검증가능한’ 크리덴셜이라고 표현한다. 크리덴셜은 크리덴셜인데 검증가능하다는 뜻이다. 여기에 탈중앙신원체계의 핵심이 있다고 해도 과언이 아니다.
검증가능한 크리덴셜(이하 VC)는 아래와 같은 구조를 가진다. VC역시 크리덴셜의 한 종류이므로 기본적으로 주체에 대한 클레임들을 포함하고 있다. 이와 더불어 해당 크리덴셜을 해석할 수 있도록 설명해 주는 메타데이터와 이 크리덴셜을 검증가능하도록 만드는 암호학적 요소들이 포함된 증명(Proofs)가 포함된다.
뒤에서 자세히 설명할 예정이므로 여기서는 간단히 설명하자면, 현재의 탈중앙신원체계는 블록체인 플랫폼을 기반으로 하는 경우가 대부분이다.
따라서 블록체인 상에 기록된 각 주체의 전자서명을 확인하므로써 궁극적으로 개인이 제시하고 있는 신원정보가 발급된 사실과 다르지 않다는 것을 검증할 수 있도록 한다. 그런 이유로 검증가능한 크리덴셜 즉 VC 라고 지칭한다.
3.3. 검증가능한 프레젠테이션 (Verifiable Presentation)
자기주권신원의 핵심 중의 하나는 프라이버시의 보호이다. 주민등록증을 VC로 만들었다고 생각해 보자. 주민등록증의 모든 클레임들이 VC에 포함되어 있을 텐데, 특정 상황에서 주민등록증에 포함된 모든 클레임을 제공해야 하는 경우는 그렇게 많지 않을 것이다.
예를 들어, 성인이라는 사실을 증명하기 위해서 이름 혹은 주소라는 클레임은 불필요한 정보이다. 자기주권신원은 최소한의 정보 공개(Minimum Disclosure)를 원칙으로 하는 만큼, 증명이 필요한 정보들로만 구성된 새로운 형식이 필요한데 이를 검증가능한 프레젠테이션(이하, VP)이라고 한다.
VP는 아래와 같은 구조를 가진다. VP에 포함된 VC는 하나일 수도 있고 그 이상일 수도 있는데, 기존에 가지고 있던 다양한 VC를 바탕으로 조합이 가능하다.
예를 들어, 운전면허증과 학생증에 대한 VC를 가지고 있다면, 운전이 가능하다는 자격정보와 학생이라는 신분정보를 조합한 VP로 할인된 렌터카를 빌릴 수 있는 서비스에 활용할 수 있다.
위 데이터의 참조 흐름은 예전 글인 Verifiable Credential의 Data참조 흐름 및 검증을 참고하시기 바랍니다.
3.4. VC의 라이프 사이클
VC의 발급에서 생성까지는 아래와 같은 절차를 거치게 된다.
1) 하나 이상의 VC 발급
2) VC 저장소 (스마트 폰 앱 등으 디지털 지갑)에 VC 저장
3) 검증자에게 증명하기 위해 VC를 VP로 구성
4) 검증자가 VP를 검증
관련 개념들을 모두 설명하고 나서 구체적 사례를 전달하는 것이 이해에 도움이 될 것이기에 표준에서 제시하는 사례는 생략한다.
궁금한 사항이나 바로 잡아주실 내용에 대해서는 의견 남겨주시면 감사하겠습니다.