💻 Verifiable Credential (검증가능한 크레덴셜, VC)
✓ Credential (크레덴셜)
Credential은 신원 확인에 필요한 정보이다. 예를 들어, 일상 생활에서 주민등록, 운전면허, 여권 등으로 신원을 주장한다. 이것들은 물리적 Credential이다. 물리적 Credential에는 다음과 같은 정보들이 들어가 있다.
- 신분증의 주체를 식별할 수 있는 정보 (이름, 사진, 주민등록번호 등)
- 신분증의 발급기관 정보 (행정안전부, 경찰청, 외교부 등)
- 발급기관이 보증하는 정보 (생년월일, 면허, 국적 등)
- 신분증의 용도 (주민등록증, 운전면허증, 여권 등)
- 신분증의 제약조건 정보 (유효기간 등)
우리는 일생생활에서 물리적 Credential, 즉 물리적 신분증으로 자신의 용도에 따라 필요한 정보를 증명한다. 그러나, 디지털 세계에서는 물리적 신분증을 사용할 수 없기 때문에 자신의 신원과 자격을 증명하고, Credential의 유효성을 보장하는 것이 어렵다. 이러한 문제를 해결하고자 나온 표준이 W3C의 Verifiable Credentials Data Model 이다. 자기 주권 신원(SSI, Self-Sovereign Identity) 체계에서는 디지털 세계에서 개인의 신원을 증명할 수 있는 체계를 검증가능한 크레덴셜이라 한다. 검증가능한 크레덴셜의 목적은 디지털 세계에서의 크레덴셜을 통해 물리적 세계의 신분증과 동일한 정보를 제공하는 것이다.
✓ Verifiable Credential (검증가능한 크레덴셜) 구성요소
클레임(Claim)
디지털 세계에서 신원정보는 데이터로 표현할 수 있다. 각 단위 데이터를 Claim이라고 하며, 아래와 같이 주체-속성:값의 구조를 가진다. 예를 들어, A라는 주체의 이름이라는 속성은 김블록이라는 값을 가진다. 라는 문장이 하나의 Claim이 된다.
Claim은 다른 Claim 과 결합하여 아래와 같은 연결정보(Graph of Information) 를 생성할 수 있다. 아래의 도식을 해석하면, Pat은 Example 대학의 졸업생입니다. 라는 정보를 확인할 수 있고, 또 Sam의 직업은 교수이다. 라는 Claim 에 Pat은 Sam을 알고 있다는 정보를 추가하면 Example 대학교 졸업생인 Pat은 교수인 Sam을 알고 있다는 연결정보도 도출할 수 있다.
W3C 문서의 Credential
DID 체계에서는 Credential을 주체에 대한 하나 혹은 그 이상의 Claim으로 구성된 데이터의 집합이라고 정의할 수 있다. 예를 들어, 주민등록증의 신원정보를 확인하여 생각해볼 수 있다.
- 이름
- 주민등록번호 (생년월일, 성별, 출생등록지)
- 주소
- 발급일자
- 발급주체
등이 담겨있다. 이 각각의 신원정보가 클레임이다. 이러한 클레임들이 모여, Credential이 된다. 이것이 바로 주민등록증이 되고 신원을 검증할 수 있게 된다.
✓ Verifiable Credential (검증가능한 크레덴셜)
탈중앙신원체계에서는 단순한 Credential이 아닌 검증가능한 Credential이라고 표현한다. Verifiable Credential은 아래와 같은 구조를 띄게 된다.
- Credential Metadata: Credential을 해석할 수 있도록 설명해주는 메타데이터
- Claim(s) : 주체에 대한 claim 집합
- Proof(s) : Credential을 검증하도록 만드는 암호학적 요소들이 포함된 증명
이러한 기록은 분산원장 플랫폼을 기반으로 한다. 따라서 분산원장 상에 기록된 각 주체의 전자 서명을 확인하면서, 궁극적으로 개인이 제시하고 있는 신원정보가 발급된 사실과 다르지 않다는 것을 검증할 수 있도록 한다. 그런 이유로 Verifiable Credential(검증가능한 크레덴셜, VC) 라고 지칭한다. 아래의 그림은 Verifiable Credential의 기본 구성 요소를 도식화한 것이다.
가장 먼저, Claim이 그래프 형식으로 구성되는 것을 볼 수 있다.
또한, Verifiable Credential이 크게 두 개의 그래프로 구성된 것을 볼 수 있다. 첫 번째 그래프는 Verifiable Credential Metadata(크레덴셜 메타데이터) 와 claim을 포함하는 Verifiable Credential을 나타내며, 두 번째 그래프는 Digital Signature(전자서명)인 Digital Proof(디지털 증명)을 나타낸다.
* Verifiable Credential 그래프
- Claim으로 정보를 확인하고, Digital Proof를 통해 검증
- Issuer와 Holder의 Digital Signature(전자서명)포함
- 발급내역이 Data Registry에 쓰여지며, 취소된 Credential인지 아닌지 확인
- 제대로 된 포맷인지, Schema(스키마) 검증
이를 통해 검증가능한 크레덴셜은 적합한 발급자인지 확인하기 위해 다음의 4가지를 확인한다.
1. Issuer가 발급한 DID인지 진위여부
2. Holder의 DID인지 진위여부
3. 블록체인의 발급내역이 유효, 무효 여부
4. 스키마 확인을 통해 형식이 맞는지를 확인
✓ Verifiable Presentation(검증가능한 프레젠테이션, VP)
SSI(자기주권신원)의 핵심은 프라이버시 보호이다. 주민등록증을 VC로 만든다면, 주민등록증의 모든 Claime들이 VC에 포함되어 있을 것이다. 그런데, 특정 상황에서 모든 정보를 제공해야하는 경우는 거의 없다. 예를 들어, 편의점에서 맥주를 산다고 가정하면, 성인인지 아닌지에 대한 정보만 제공하면 된다. 주소, 증명사진, 발급기관 등의 정보는 필요 없다. 이 때, 자기주권신원에서는 최소한의 정보 공개를 원칙으로 하여 증명이 필요한 정보들로만 구성된 새로운 형식이 필요하다. 그것이 바로 검증가능한 프레젠테이션, Verifiable Presentation 이다.
편의점에서 맥주 한 캔을 구매한다고 가정해보자. 신분증에는 나이, 이름, 주소 등 다양한 개인 정보가 들어가기 때문에 신분증을 제공하면 주소 등이 노출되어 위험해질 수 있다. 그러나 VP를 통해 선택적으로 나이만 공개한다면, 19세 이상이라는 진위여부만 선택적으로 공개할 수 있게 된다.
💡 VC 발행구조와 시나리오
✓ Ecosystem of Verifiable Credential (검증가능한 크레덴셜 생태계)
하나 이상의 VC를 발급받고, 스마트폰 앱의 디지털 지갑의 VC를 저장한다. Verifier 에게 증명하기 위해 VC 중 필요한 정보를 VP로 구성한다. 검증자에게 VP로 검증한다. 여기서는 Data Registry로 블록체인을 사용한다.
📌 자기신원인증 과정
Issuer
- Issuer는 holder에 대한 검증가능한 크레데션을 발급하여 전달한다.
- VC의 유효성을 확인할 수 있는 ID(Identifiers)와 Schema(스키마)의 발급 내역을 블록체인에 기록한다.
Holder
- Issuer에게 VC를 받고, 자신이 증명서를 받았다는 내용과 스키마정보를 가져온다.
- Verifier가 필요로 하는 정보를 담아 VP 형태로 보낸다.
- Issuer에게 받을 때는 VC 형태, Verifier에게 보낼 때는 VP 형태이다.
Verifier
- Verifier는 Holder에게 받은 VP 내용을 확인한다.
* 블록체인에서 발급내역, 스키마를 확인한다.
* VP내용(Issuer DID, Holder DID)를 확인한다.
- 위의 내용들을 검증하여, VP 내용의 진위여부를 검증한다.
✓ DID 기술을 활용한 입사지원 시나리오
입사지원 시나리오 절차
1. 입사지원자(holder)는 대학교(Issuer)에 본인의 졸업정보(ex. 학위번호, 학위명, 수여일자 등)를 요청한다.
2. 대학교(Issuer)는 요청정보를 확인하고 문제가 없다고 판단되면 Digital Signature(전자서명) 후 입사지원자(holder)에게 졸업증명서(Verifiable Credential)를 발행한다.
3. 이 때, 대학교(Issuer)의 DID 정보가 졸업증명서(Verifiable Credential)에 함께 저장된다.
4. 입사지원자는 인증서를 모바일 전자지갑에 보관하며, 입사지원 시 인증서에 전자서명(Digital Signature)하여 지원기업(Verifier) 에 제출한다.
5. 지원기업은 입사지원자의 대학교와 DID를 통해 블록체인에 저장되어 있는 전자서명 검증정보를 전달받아 졸업증명서의 졸업정보를 확인한다.
'블록체인 > 블록체인이란?' 카테고리의 다른 글
Web3란? (0) | 2022.07.28 |
---|---|
DID 사용 사례 (0) | 2022.07.26 |
SSI는무엇일까? SSI와 DDI, SSI 개념, SSI 요소 (0) | 2022.07.26 |
DID는 무엇일까?! (0) | 2022.07.25 |
기존 시스템과 블록체인의 보안적 특징 (0) | 2022.07.22 |
댓글