VC(Verifiable Credentials)이란
Credential이란?
먼저 Credential이란 신원확인에 필요한 정보를 의미합니다. 예를 들어 현재 신원을 증명하기 위해 사용되는 수단으로는 주민등록증, 운전면허증이 사용되는데, 이를 물리적인 Credential로 볼 수 있습니다. 물리적인 Credential은 다음 사항을 포함하고 있습니다.
- 신분증 소유자를 식별할 수 있는 정보(이름, 사진, 주민등록번호 등)
- 신분증 발급기관(행정안전부, 외교부, 경찰청 등)
- 발급기관이 보증하는 정보(생년월일, 면허, 국적 등)
- 신분증 용도(주민등록증, 운전면허증, 여권 등)
- 신분증 제약조건(유효기간 등)
디지털 환경에서 신원을 증명하고 Credential의 유효성을 보증하기 위해 사용하는 것이 W3C의 Verifiable Credentials Data Model입니다. SSI 모델은 디지털 상에서 사용자의 신원을 증명하는 체계를 VC(Verifiable Credential, 검증가능한 크리덴셜)이라고 합니다. 디지털 상의 신분증이라고 이해하면 편합니다.
Verifiable Credential 구성요소
클레임(Claim)
디지털 상에서 신원정보는 데이터로 표현되는데, 각 데이터 단위를 클레임(Claim)이라고 하며 주체~값의 구조로 표현됩니다.
클레임(Claim)은 다른 클레임과 결합되어 연결정보(Graph of Information)을 생성합니다. 예를 들어 "Pat"은 Example University의 졸업생이라는 정보를 확인할 수 있고, "Sam"의 직업은 교수다라는 클레임을 연결해 Example University의 졸업생 Pat은 직업이 교수인 Sam을 알고있다라는 정보를 도출할 수 있게 됩니다.
DID체계에서 Credential은 소유자에 대한 여러개의 Claim으로 구성된 데이터 집합입니다. 물리적인 크리덴셜을 생각해보면 이름, 주민번호, 주소, 발급일자, 발급 주체등의 Claim이 모인 데이터 집합으로 볼 수 있습니다.
Verifiable Credential(VC, 검증 가능한 크리덴셜)
디지털 상의 Credential은 Verifiable Credential이라고 합니다. 그 이유는 Verifiable Credential은 분산원장 플랫폼을 기반으로 하고, 각 주체의 전자 서명을 확인해 사용자가 제시한 신원정보가 유효한 정보임을 검증하기 때문에 Verifiable Credential이라고 합니다. Verifiable Credential은 다음과 같은 구조를 가지고 있습니다.
- Credential Metadata : Credentail에 관한 정보를 담은 Metadata
- Claim : 주체에 대한 Claim 집합
- Proofs : Credential을 검증가능하도록 암호학적 요소들이 포함된 증명
Verifiable Credential의 기본 구성 요소 Credential Graph와 Proof Graph 2개로 구성됩니다. Credential Graph는 Metadata와 Claim을 포함하는 Verifiable Credential을 의미하고, Proof Graph는 Digital Signature인 Digital Proof을 의미합니다.
- Claim으로 정보를 확인 후 Digital Proof을 통해 검증합니다.
- Issure와 Holder의 Digital Signature을 포함합니다.
- 발급내역이 Data Registry에 써지고, 취소된 Credential인지 확인합니다.
- 올바른 포맷인지 Schema를 검증합니다.
Verifiable Credential은 유효한 발급자인지 확인하기 위해 아래 과정을 거칩니다.
- Issure가 발급한 DID인지 진위를 검증합니다.
- Holder의 DID인지 진위를 검증합니다.
- 블록체인상 발급 내역이 유효한지 검증합니다.
- Schema 확인을 통해 올바른 형식인지 확인합니다.
VP(Verifiable Presentation)이란?
Verifiable Presentation(VP, 검증가능한 프레젠테이션)은 SSI(자기 주권 신원 모델)에서 최소한의 정보 공개(Minimum Disclosure) 원칙에 입각해 필요한 정보들로만 구성된 새로운 형식을 필요로 하는데, 이게 바로 VP입니다.
SSI에서 핵심은 개인정보 보호입니다. 하지만 여기서 문제가 생깁니다. 예를 들어 주민등록증을 VC로 만든다면 모든 Claim들이 VC에 포함되게 됩니다. 주민등록증을 가지고 담배를 산다고 했을 때 필요한 정보는 성인인지 아닌지만 확인하면 되는데, 성인 인증을 위해 불필요한 Claim(발급기관, 이름, 주소, 유효기간 등)까지 제공할 필요는 없기 때문입니다.
Verifiable Presentation의 구성은 다음과 같습니다.
Verifiable Presentation에서는 필요한 Claims만 모은 새로운 VC를 만들고 VC와 동일한 검증과정을 거치게 됩니다.
DID 실생활에 적용되는 예시
신원 증명을 위해 VC를 발급받습니다. 발급된 VC는 스마트폰의 디지털 지갑에 저장됩니다 Verifier에게 신원을 증명하기 위해 VC 중 필요한 정보만 선택해 VP를 구성하고 전송하면 Verifier는 이를 검증합니다.
자기신원인증 절차
ⓐ Issuer : Holder에 대한 검증가능한 크레덴셜(VC)를 발급합니다. VC의 유효성을 확인할 수 있는 ID와 Schema 발급내역을 블록체인에 기록합니다.
ⓑ Holder : Issure에게 VC를 받아 본인이 증명서를 받았다는 정보와 스키마 정보를 함께 가져옵니다. Verifier가 요청하는 정보를 VC에서 골라 담고 VP 형태로 전송합니다. 즉 Issuer로 부터 받을 때는 VC로 받고 Verifier에게 보낼 때는 VP로 보냅니다.
ⓒ Verifier : Holder로 부터 받은 VP 내용을 확인합니다. 먼저 블록체인에서 발급내역과 스키마(Schema)를 확인하고 VP내용에서 Issuer DID, Holder DID를 확인합니다. 이를 종합해 VP 내용의 진위를 검증합니다.
입사지원 신원증명 절차
- 입사지원자(Holder)은 대학교(Issuer)에게 졸업정보(학위번호, 학위명, 수여일자 등)을 요청합니다.
- 대학교(Issuer)는 요청정보를 확인한 후 유효한 요청에 대해 Digital Signature 후 Holder에게 졸업 증명서(VC)를 발급합니다. 대학교의 DID 정보는 졸업증명서(VC)에 함께 저장됩니다.
- 입사지원자 Holder는 인증서를 모바일 전자지갑에 보관하고 입사하고자 하는 기업(Verifier)에 Digital Signature 한 후 제출합니다.
- 기업(Verifier)은 입사지원자 Holder와 대학교(Issuer)의 DID를 가지고 블록체인에 저장되어 있는 DIgital Signature 검증정보를 전달받은 후 졸업증명서(VC)를 검증합니다.
'Blockchain' 카테고리의 다른 글
[Blockchain] 탈중앙화 신원증명 DID 컨트랙트 개발 (0) | 2022.07.26 |
---|---|
[Blockchain] 탈중앙화 신원 증명 방법 DID 이해하기 (0) | 2022.07.26 |
[Blockchain] DID 자기 주권 신원(SSI)이란? (0) | 2022.07.25 |
[Blockchain] W3C DIDs 탈중앙화 식별자 표준 (0) | 2022.07.25 |
[Blockchain] W3C 데이터 탈중앙화 표준 DID란? (0) | 2022.07.25 |
댓글