개인적으로 공부한 내용이므로 틀린 내용이 존재할 수 있습니다.
오류내용은 댓글을 통해 알려주시길 바랍니다.
>> DID document란 무엇인가?
- DID의 소유권을 증명할 수 있는 인증 수단이 저장되어있는 문서. - 그 외 DID에 관한 정보(contect, id, publicKey 등)이 저장되어있다. - 소유권 인증 시 이 DID document를 참조한다.
>> DID 소유권 증명 예시
1) 사용자가 자신의 DID를 검증기관에 제시한다. ex) did:ethr:1234
2) 검증기관은 이더리움에서 did:ethr:1234의 DID document를 획득한다.
3) 검증기관은 자신의 DID가 맞는지 인증을 해보라는 Challenge를 전송한다.
4) 사용자는 검증기관에게 Response를 전송한다.
5) 검증기관은 DID document의 공개키 값을 이용해 사용자의 Response를 검증한다.
>> DID document에 작성되는 항목
- context : document에 담겨있는 문서내용에 관한 정의
ex) name이라는 요소가 있을 때, 이게 학교의 이름인지? 학생의 이름인지? 구분이 어렵기 때문에 이용
- id : 지금 작성된 document가 어떤 DID에 대해 설명하는것인가
- publicKye : 인증을 위한 공개키
> 여러가지 인증 수단에 대한 공캐키가 존재할 수 있다.
- authentication : 인증가능한 수단 리스트를 명시한다.
> 사용 가능한 인증 수단 ex) RSA 비대칭키 인증, 생체인증, Authorization key 방식 등
> publicKey의 type 항목에서 해당 publicKey가 어떤 항목의 인증인지 밝혀준다.
- service : 현재 DID와 상호작용 가능한 서비스의 항목을 제시한다.
>> DID deactivation
Hyperldeger Indy에서 DID를 폐기하고, 비활성화를 위해서는 어떻게 해야할까?
> DID와 DID document의 완전 삭제가 불가능하다.
> 누구도 사용하지 못하는 방식으로 수행한다.
> Doucment의 publicKey값을 0000...으로 변경한다.
=> 개인 키 값을 알 수 없기 때문에 안전한 방식이다.
>> DID resolver
DID document를 가져오기 위해 사용된다.
사용자 디바이스용 혹은 서버와 같은 외부 디바이스용 2가지로 개발될 수 있다.
<사용자 디바이스용 DID resolver>
- 장점 : 사용자가 직접 DID document를 저장하고 불러온다 => 제 3의 기관이 없어 신뢰성 확대
- 단점 : 사용자 디바이스에 DID resolver driver를 설치해야한다.
<사용자 디바이스용 DID resolver>
- 장점 : 사용자가 디바이스에 부담이 덜 가고 원활한 서비스 제공 가능
- 단점 : 다수의 사용자에게 DID document를 제공할 경우 해커의 표적이 되는 위험.
>> DID resolution
개별 저장된 DID document를 적절한 형채로 가공하는 방식.
Verse One, Hyperledger Indy, Bitcoin 3가지 플랫폼의 방식이 있지만 현 문서에는 Hyperledger Indy 방식만 설명.
<Hyperledger Indy의 DID Resolution>
블록체인 노드를 Sovrin 노드라고 가정하였습니다.
1) 사용자가 DID resolver에 DID document를 요청한다.
2) DID resolver는 올바른 플랫폼(이더리움 등)에 DID document를 요청메시지를 생성하고, Sovrin 노드에 전송한다.
이 때, DID document가 저장되는 것이 아니라, 각 항목이 트랜젝션으로 나뉘어 저장된다.
3) Sovrin 노드는 Method-specific identifier를 이용하여 올바른 트랜젝션을 이용하여 각 항목의 값을 검색한다.
> NYM 트랜젝션 : 공개키 값 검색
> ATTRIB 트랜젝션 : service 항목 값 검색
4) Sovrin 노드는 요청한 값(publicKey, service)을 DID resolver에 반환해준다.
5) DID resolver는 JSON양식으로 받은 값을 DID document 형식으로 변환하여 사용자에게 반환한다.
>> DID registrar
DID document를 등록할 수 있도록 도와주는 툴.
사용자 요구에 따라서 DID document를 등록할 플랫폼에 맞게 트랜잭션, API등을 생성하여 DID document를 등록한다.
'기술 단어장 > Blockchain' 카테고리의 다른 글
[블록체인] Ubuntu용 Indy SDK 빌드 과정 분석 (0) | 2021.08.11 |
---|---|
[블록체인] Hyperledger Indy node-pool 분석하기 (0) | 2021.08.10 |
[블록체인] 하이퍼레저 인디(Hyperledger indy)플랫폼과 SSI/DID (0) | 2021.07.06 |
[블록체인] 하이퍼레저 프로젝트(Hyperledger Project)의 배경 및 개요 (0) | 2021.07.05 |
[블록체인] DID란 무엇인가? (0) | 2021.07.03 |
댓글