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을 검증가능하게 만드는 암호학적 요소가 포함된 증명

→ 분산원장 플랫폼 기반으로 기록.

→ 분산원장 상에 기록된 각 주체의 전자 서명 확인.

→ 개인이 제시하는 신원정보가 발급된 사실과 다르지 않다는 것을 검증.

⇒ Verifiable Credential(검증가능한 크리덴셜, VC)로 불림.


  • Verifiable Credential 기본 구성 요소

    • Claim이 그래프 형식으로 구성
    • Verifiable Credential의 두 그래프 구성
      1. Verifiable Credential Metadata(크리덴셜 메타데이터) & Claim 포함 Verifiable Credential
      2. Digital Signature(전자서명) : Digital Proof(디지털 증명)
  • Verifiable Credential 그래프

    • Claim : 정보 확인
    • Digital Proof : 검증
    • Issuer & Holder의 Digital Signature(전자서명)을 포함
    • 발급내역 : Data Registry에 쓰임
      • 취소된 Credential은 아닌지 확인
    • Schema(스키마) : 검증
      • 제대로 된 포맷인지

VC가 적합한 발급자인지 검증하는 4가지 확인

  1. Issuer가 발급한 DID인가 (진위여부)
  2. Holder의 DID인가 (진위여부)
  3. 블록체인의 발급내역이 유효 or 무효
  4. 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 내용의 진위여부 검증.