분산 ID: Difference between revisions
From CS Wiki
(→동작 절차) |
No edit summary |
||
Line 1: | Line 1: | ||
[[분류:블록체인]] | [[분류:블록체인]] | ||
;Decentralized IDs, DIDs | ;Decentralized IDs, DIDs | ||
분산원장을 이용해 중앙등록기관 없이 시장 자율로 운영되는 확장성 있는 신원 증명 체계 | 분산원장을 이용해 중앙등록기관 없이 시장 자율로 운영되는 확장성 있는 신원 증명 체계 | ||
== 기본 용어 == | ==기본 용어== | ||
*이슈어(Issuer): 자격 증명 발급자 | |||
*주체(Subject): 자격을 가진 주체 | |||
*보유자(Holder): 자격 증명 소지자 | |||
**주체와 보유자는 다를 수도 있기 때문에 구분한다. '예를 들어 홍길동의 학력은 석사다' 라는 자격 증명을 임꺽정이 가질수도 있다. cf. 국내의 법정대리인, 위임자 개념 | |||
*검증자(Inspector): 자격 증명 검증자 | |||
== 구성 요소 == | ==동작 절차== | ||
=== 저장소 === | |||
#홍길동은 입사지원을 위해 대학교에 학위 증명서 발급을 요청한다. | |||
#대학교는 "홍길동은 석사이다"라는 내용의 증명서를 발급한다. | |||
#*증명서엔 다음의 내용이 포함된다. | |||
##DID: 증명서 고유 ID | |||
##발급 정보: 발급한 대학교 명 | |||
##자격 정보: "홍길동은 석사이다"라는 사실 | |||
##검증 정보: 대학교의 개인키로 생성한 서명값([[전자 서명|대학교의 공개키로 검증 가능]]) | |||
#대학교는 발급한 증명서 고유 ID와 공개키를 블록체인에 올려둔다. | |||
#홍길동은 입사지원 시 증명서를 제출한다. | |||
#입사지원을 받는 회사는 증명서의 고유 ID(DID)로 블록체인을 조회한다. | |||
#조회된 공개키를 이용해 전자 서명값을 검증하여 대학교에서 발급한 증명서가 맞는지 확인한다. | |||
==구성 요소== | |||
===저장소=== | |||
===DID 문서=== | |||
;did documents | ;did documents | ||
* 블록체인에 올라가는 자격 증명을 검증할 수 있는 문서 | |||
* 개인정보는 포함하지 않고 검증 체계, 공개키 등만 포함 | *블록체인에 올라가는 자격 증명을 검증할 수 있는 문서 | ||
*개인정보는 포함하지 않고 검증 체계, 공개키 등만 포함 | |||
<pre> | <pre> | ||
{ | { | ||
Line 50: | Line 55: | ||
</pre> | </pre> | ||
=== 인증서 지갑 === | ===인증서 지갑=== | ||
=== 자격 증명 === | ===자격 증명=== | ||
;Verifiable Claims에서 Verifiable Credentials로 변경 | ;Verifiable Claims에서 Verifiable Credentials로 변경 | ||
* 증명하고자 하는 자격이 담겨있는 '''텍스트 기반의 인증서'''이다. | |||
* 암호학적인 방법으로 증명 가능하게 되어 있다. | *증명하고자 하는 자격이 담겨있는 '''텍스트 기반의 인증서'''이다. | ||
** 이슈어를 명시하고, 이슈어의 개인키로 서명한 값을 포함한다. | *암호학적인 방법으로 증명 가능하게 되어 있다. | ||
** 블록체인 등 신뢰되는 저장소에서 공개키를 조회 해 검증할 수 있다. | **이슈어를 명시하고, 이슈어의 개인키로 서명한 값을 포함한다. | ||
* 표준은 [[JSON-LD]]로 표현되어 있으나 포맷엔 제한이 없다. | **블록체인 등 신뢰되는 저장소에서 공개키를 조회 해 검증할 수 있다. | ||
* 예시는 아래와 같다. | *표준은 [[JSON-LD]]로 표현되어 있으나 포맷엔 제한이 없다. | ||
*예시는 아래와 같다. | |||
<pre> | <pre> | ||
{ | { | ||
Line 88: | Line 95: | ||
</pre> | </pre> | ||
== 관련 표준 == | == 제약사항 == | ||
{| class="wikitable" | |||
|+ | |||
!구분 | |||
!제약사항 | |||
!설명 | |||
!해결방안 | |||
|- | |||
|기술적 제약 | |||
|오라클 문제 | |||
| | |||
| | |||
|- | |||
| | |||
|식별자 문제 | |||
| | |||
| | |||
|- | |||
| | |||
|영지식 증명 구현 | |||
| | |||
| | |||
|- | |||
|정책적 제약 | |||
|개인정보 보호법제 | |||
| | |||
* 분산ID 식별자에 대한 개인정보 해석 가능성 | |||
* 분산 원장 인프라에 대한 개인정보 위수탁, 제3자 제공 해석 | |||
| | |||
|- | |||
| | |||
|제도 기반 부족 | |||
| | |||
| | |||
|- | |||
| | |||
|인정 제도 | |||
| | |||
| | |||
|- | |||
|시장 제약 | |||
|얼라이언스 난립 | |||
| | |||
| | |||
|- | |||
| | |||
|신뢰된 원장 부재 | |||
| | |||
| | |||
|- | |||
| | |||
|공통 표준 부재 | |||
| | |||
| | |||
|- | |||
| | |||
|검증 인프라 부족 | |||
| | |||
| | |||
|} | |||
==관련 표준== | |||
;W3C에서 표준화를 진행중 | ;W3C에서 표준화를 진행중 | ||
* [https://w3c-ccg.github.io/did-spec/ Decentralized Identifiers (DIDs)] | |||
* [https://www.w3.org/TR/verifiable-claims-data-model/ Verifiable Credentials Data Model] | *[https://w3c-ccg.github.io/did-spec/ Decentralized Identifiers (DIDs)] | ||
* [https://www.w3.org/TR/verifiable-claims-use-cases/ Verifiable Claims Use Cases] | *[https://www.w3.org/TR/verifiable-claims-data-model/ Verifiable Credentials Data Model] | ||
*[https://www.w3.org/TR/verifiable-claims-use-cases/ Verifiable Claims Use Cases] |
Revision as of 22:52, 6 May 2021
- Decentralized IDs, DIDs
분산원장을 이용해 중앙등록기관 없이 시장 자율로 운영되는 확장성 있는 신원 증명 체계
기본 용어
- 이슈어(Issuer): 자격 증명 발급자
- 주체(Subject): 자격을 가진 주체
- 보유자(Holder): 자격 증명 소지자
- 주체와 보유자는 다를 수도 있기 때문에 구분한다. '예를 들어 홍길동의 학력은 석사다' 라는 자격 증명을 임꺽정이 가질수도 있다. cf. 국내의 법정대리인, 위임자 개념
- 검증자(Inspector): 자격 증명 검증자
동작 절차
- 홍길동은 입사지원을 위해 대학교에 학위 증명서 발급을 요청한다.
- 대학교는 "홍길동은 석사이다"라는 내용의 증명서를 발급한다.
- 증명서엔 다음의 내용이 포함된다.
- DID: 증명서 고유 ID
- 발급 정보: 발급한 대학교 명
- 자격 정보: "홍길동은 석사이다"라는 사실
- 검증 정보: 대학교의 개인키로 생성한 서명값(대학교의 공개키로 검증 가능)
- 대학교는 발급한 증명서 고유 ID와 공개키를 블록체인에 올려둔다.
- 홍길동은 입사지원 시 증명서를 제출한다.
- 입사지원을 받는 회사는 증명서의 고유 ID(DID)로 블록체인을 조회한다.
- 조회된 공개키를 이용해 전자 서명값을 검증하여 대학교에서 발급한 증명서가 맞는지 확인한다.
구성 요소
저장소
DID 문서
- did documents
- 블록체인에 올라가는 자격 증명을 검증할 수 있는 문서
- 개인정보는 포함하지 않고 검증 체계, 공개키 등만 포함
{ "@context": "https://w3id.org/did/v1", "id": "did:example:123456789abcdefghi", "authentication": [{ // used to authenticate as did:...fghi "id": "did:example:123456789abcdefghi#keys-1", "type": "RsaVerificationKey2018", "controller": "did:example:123456789abcdefghi", "publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n" }], "service": [{ // used to retrieve Verifiable Credentials associated with the DID "type": "VerifiableCredentialService", "serviceEndpoint": "https://example.com/vc/" }] }
인증서 지갑
자격 증명
- Verifiable Claims에서 Verifiable Credentials로 변경
- 증명하고자 하는 자격이 담겨있는 텍스트 기반의 인증서이다.
- 암호학적인 방법으로 증명 가능하게 되어 있다.
- 이슈어를 명시하고, 이슈어의 개인키로 서명한 값을 포함한다.
- 블록체인 등 신뢰되는 저장소에서 공개키를 조회 해 검증할 수 있다.
- 표준은 JSON-LD로 표현되어 있으나 포맷엔 제한이 없다.
- 예시는 아래와 같다.
{ "@context": [ "https://www.w3.org/2018/credentials/v1", "https://www.w3.org/2018/credentials/examples/v1" ], "id": "http://example.gov/credentials/3732", "type": ["VerifiableCredential", "UniversityDegreeCredential"], "issuer": "https://example.edu", "issuanceDate": "2010-01-01T19:73:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "BachelorDegree", "name": "<span lang='fr-CA'>Baccalauréat en musiques numériques</span>" } }, "proof": { "type": "RsaSignature2018", "created": "2018-06-18T21:19:10Z", "verificationMethod": "https://example.com/jdoe/keys/1", "signatureValue": "BavEll0/I1zpYw8XNi1bgVg/sCneO4Jugez8RwDg/+ MCRVpjOboDoe4SxxKjkCOvKiCHGDvc4krqi6Z1n0UfqzxGfmatCuFibcC1wps PRdW+gGsutPTLzvueMWmFhwYmfIFpbBu95t501+rSLHIEuujM/+PXr9Cky6Ed +W3JT24=" } }
제약사항
구분 | 제약사항 | 설명 | 해결방안 |
---|---|---|---|
기술적 제약 | 오라클 문제 | ||
식별자 문제 | |||
영지식 증명 구현 | |||
정책적 제약 | 개인정보 보호법제 |
|
|
제도 기반 부족 | |||
인정 제도 | |||
시장 제약 | 얼라이언스 난립 | ||
신뢰된 원장 부재 | |||
공통 표준 부재 | |||
검증 인프라 부족 |
관련 표준
- W3C에서 표준화를 진행중