VC (Verifiable Credential)
Verifiable Credential(VC; 검증가능한 크레덴셜)
Credential(크레덴셜)
Credential은 신원 확인에 필요한 정보로 일상생활에서의 주민등록, 운전면허, 여권 등으로 신원 주장이 가능하다. 이런 것들이 물리적 Credential.
- 물리적 Credential에 담긴 정보
- 신분증의 주체를 식별할 수 있는 정보
- 이름, 사진, 주민등록번호 등
- 신분증의 발급기관 정보
- 행정안전부, 경찰청, 외교부 등
- 발급기관이 보증하는 정보
- 생년월일, 면허, 국적 등
- 신분증의 용도
- 주민등록증, 운전면허증, 여권 등
- 신분증의 제약조건 정보
- 유효기관 등
- 신분증의 주체를 식별할 수 있는 정보
물리적 Credential, 즉 물리적 신분증을 통해 일상생활에서의 사용 용도에 따라 필요한 정보를 증명한다.
→ But, 디지털 세계에서 물리적 신분증을 사용할 수 없어 자신의 신원과 자격을 증명하고, Credential의 유효성을 보장하는 것이 힘듦. 이런 문제 해결을 위한 표준으로 W3C의 Verifiable Credentails Data Model 등장.
검증가능한 크리덴셜 데이터 모델 (Verifiable Credentials Data Model) 1.0
→ 자기주권신원(SSI; Self-Sovereign Identity) 체계에서 디지털 세계에서 개인 신원을 증명할 수 있는 체계를 검증가능한 크리덴셜(Verifiable Credential; VC).
→ 검증가능한 크리덴셜의 목적은 디지털 세계에서의 크리덴셜을 통해 물리적 세계의 신분증과 동일한 정보를 제공하는 것.
검증가능한 크레덴셜(Verifiable Credential) 구성요소
클레임(Claim)
디지털 세계에서 신원정보는 데이터로 표현 가능. 각 단위 데이터를 Claim(클레임)으로 명명, 주체-속성:값의 구조를 가진다.
- ex. ‘A라는 주체(Subject)의 이름이라는 속성(Property)은 홍땡땡이라는 값(value)를 가진다.’ 라는 문장이 하나의 Claim.
Claim은 다른 Claim과 결합하여 연결정보(Graph of Information)를 생성할 수 있다. 도식을 해석하면, ‘Pat는 Example 대학의 졸업생이다.’ 라는 정보 확인 가능. ‘Sam의 직업은 교수이다.’ 라는 Claim에 ‘Pat는 Sam을 알고 있다.’ 는 정보를 추가하면 ‘Example 대학교 졸업생인 Pat는 교수인 Sam을 알고 있다.’ 라는 연결 정보를 도출 가능.
W3C 문서의 Credential
DID 체계에서 Credential을 주체에 대한 하나 혹은 그 이상의 Claim으로 구성된 데이터의 집합이라 정의.
- ex. 주민등록증 신원정보를 확인
- 이름
- 주민등록번호(생년월일, 성별, 출생등록지)
- 주소
- 발급일자
- 발급주체
- 이런 신원정보가 각각 클레임(Claim)이다.
- 이런 클레임들의 집합이 크리덴셜(Credential).
- 이 크리덴셜이 주민등록증이 되어 신원 검증이 가능해짐.
Verifiable Credential(검증가능한 크레덴셜; VC)
탈중앙신원체계에서 Credential은 “검증가능한(Verifiable) Credential”.
- 검증가능한 크리덴셜의 구조
- Credential Metadata
- Credential을 해석할 수 있도록 설명하는 메타데이터
- Claim(s)
- 주체에 대한 Claim 집합
- Proofs
- Credential을 검증가능하게 만드는 암호학적 요소가 포함된 증명
- Credential Metadata
→ 분산원장 플랫폼 기반으로 기록.
→ 분산원장 상에 기록된 각 주체의 전자 서명 확인.
→ 개인이 제시하는 신원정보가 발급된 사실과 다르지 않다는 것을 검증.
⇒ 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(스키마) : 검증
- 제대로 된 포맷인지
VC가 적합한 발급자인지 검증하는 4가지 확인
- Issuer가 발급한 DID인가 (진위여부)
- Holder의 DID인가 (진위여부)
- 블록체인의 발급내역이 유효 or 무효
- Schema(스키마) 확인으로 형식이 맞는가
Verifiable Presentation(검증가능한 프레젠테이션; VP)
자기주권신원에서 최소한의 정보 공개(Minimum Disclosure)를 원칙으로 증명이 필요한 정보로만 구성된 새로운 형식이 Verifiable Presentation(검증가능한 프레젠테이션; VP).
- SSI(자기주권신원)의 핵심 “프라이버시 보호”.
- ex. VC로 만든 주민등록증 = 민증의 모든 Claim들이 VC에 포함.
- 모든 정보를 제공하지 않아도 되는 상황 발생.
- ex. 술 구매시 성인이 맞는지에 대한 정보만 제공(Selective disclosure).
- 신분증 제공시 나이, 이름, 주소 등 개인 정보가 노출됨.
- VP를 통한 선택적 정보 공개 → 성인인지 진위 여부만.
VC 발행구조 & 시나리오
Ecosystem of Verifiable Credential(검증가능한 크리덴셜 생태계)
- 한 개 이상의 VC 발급 & 스마트폰 앱의 디지털 지갑으로 VC를 저장한다.
- Verifier에게 증명을 위한 VC 정보 중 필요한 정보만 VP로 구성한다.
- 검증자에게 VP로 검증한다.
- Data Registry로 블록체인 사용.
자기 신원 인증 과정
- Issuer
- holder에 대한 검증가능한 크리덴셜(VC)을 발급 & 전달.
- VC의 유효성 확인이 가능한 ID(identifiers)와 Schema(스키마) 발급내역을 블록체인에 기록.
- Holder
- Issuer에게 VC를 받고, 자신이 증명서를 받았다는 내용과 스키마 정보를 가져옴.
- Verifier가 필요로 하는 정보를 VP형태로 담아 보냄.
- Issuer에게 받을 때 VC 형태, Verifier에게 보낼 때 VP 형태.
- Verifier
- Holder에게 받은 VP 내용 확인.
- 블록체인에서 확인할 내용
- 발급 내역
- Schema(스키마)
- VP 내용 확인
- Issuer DID
- Holder DID
- 블록체인에서 확인할 내용
- 위의 내용을 검증해서 VP 내용의 진위여부 검증.
- Holder에게 받은 VP 내용 확인.