DID

DID

1. DID 이해하기

1.1 DID란?


Decentralized Identity(탈중앙 신원증명, 이하 DID)란, 데이터의 주권이 개개인에게 있고, 필요한 때 그 데이터를 중앙화된 시스템을 거치지 않고 증명할 수 있는 기술로써, 분산원장기술(Distributed Ledger Technology, DLT)을 기반으로 사용자 정보를 저장하여 안전하고 편리한 인증이 가능하도록 한다.

즉, DID기술은 중앙화된 레지스트리(데이터 저장소), 데이터제공자(Provider), 인증기관(Certificate Authorities)들을 분리할 수 있고, 중앙화된 방식이 탈중앙화 방식으로 동작할 수 있도록 설계되었다. DID는 기존의 중앙화된 인증방식에서 벗어나 탈중앙화 방식의 신원 증명을 통해 자기 자신이 신원증명에 대한 권한을 갖도록 하겠다는 SSI개념을 현실화하기 위해 사용된다.

1.2 데이터 주권과 DID (W3C와 DID)

W3C의 탈중앙 운동


DID 표준 등장의 기술적 맥락을 이해하기 위해서는 W3C(World Wide Web Consortium)내의 탈중앙 운동에 대한 이해가 필요하다.
웹(Web)을 창시한 팀 버너스리는 1989년 W3C를 창시하고 HTML를 표준화한다. 본래 W3C 활동의 본질적인 목적은 웹에서 상호 공유하고 이를 통해 자유롭게 데이터를 사용자들끼리 주고받게 하기 위한 것이었다. 그런데 2000년대 이후, 데이터의 주권은 사용자 개인이 아닌 플랫폼 기업에게 종속되는 현상이 발생한다. 이른바 데이터 주권의 중앙화가 이뤄진 것이다.
페이스북, 구글 등 글로벌 기업들이 개인(사용자)의 데이터를 독점적으로 차지하게 되면서 자신이 만든 데이터임에도 불구하고 기업들의 결정에 따라 접근이 가능하기도 하고, 불가능하게 되기도 한다. 이러한 데이터의 주권 특정기업에 종속되는 웹 생태계에 대해 W3C 내에서 문제제기가 이어졌고, 이를 바로 잡고자 W3C 참여자와 팀버너스리는 탈중앙 운동을 전개한다.

W3C(World Wide Web Consortium, 축약형은 WWW 또는 W3)는 월드 와이드 웹을 위한 표준을 개발하고 장려하는 조직으로 팀 버너스 리를 중심으로 1994년 10월에 설립되었다.


W3C의 데이터 탈중앙화를 위한 표준화


W3C에서 진행하는 데이터 탈중앙 운동에서 가장 중요한 부분은 데이터의 연동입니다. 각 글로벌 기업이 독점적으로 데이터를 보유하게 된 것은 타 서비스와의 연동이 불가능하기 때문이다. 이에 따라 탈중앙 생태계를 만들어가기 위해서는 서비스 간의 데이터 연동이 가장 중요한 사항으로 대두된다. 데이터 연동을 위해 선행되어야 할 부분은 해당 데이터가 어떤 종류의 데이터 인가를 결정하는 것이고, 이에 따라 데이터 연동을 위한 표준화를 진행한다.

W3C와 DID


DID에서 난제(해결하기 어려운 문제)였던 부분은 중앙화되지 않은 저장소에 개인의 신원을 증명할 수 있는 데이터를 보관하면서, 데이터의 무결성과 보안성을 확보하는 것이었다. 블록체인 기술이 등장하면서 탈중앙화된 방식으로 신원데이터를 저장하고 증명할 수 있는 방법을 모색하게 된다.
W3C에서도 2016년도에 블록체인 워크샵에서 블록체인 기반의 ID를 표준화하자는 의견이 개진되고, 2019년 DID 워킹그룹이 공식적으로 결성된다. 그렇게 DID관련 문서 표준화가 시작된다.

1.3 W3C 표준화 - DIDs(탈중앙화 식별자)


W3C는 DIDs(탈중앙화 식별자)라는 명칭으로 DID(Decentralized Identity)를 실현할 수 있는 기술에 대한 표준화를 설명한다.
DIDs는 검증가능하고 탈중앙화된 디지털 신원을 위한 새로운 형식의 식별자이다. 누구나 DID 메소드(DID Method)로 자신의 주소를 만들 수 있으며, DIDs는 주소이면서 마스터키를 활용하여 만들 수 있다. 흔히 우리가 사용하는 ID, Password인 것이다.

Identity(식별자)


식별자는 개인 혹은 단체(법인)등을 구별할 수 있는 고유 값 이다. 쉬운 예로, 이메일 계정을 들 수 있다.
한 개인이 ‘kimblock@codestates.com’라는 이메일 계정이 있을 때, kimblock@codestates.com이라는 고유한 식별자로 이메일을 보낼 수 있다. 이 때 이 이메일은 고유한 식별자가 된다.

DID 문서 (DID Document)


DID 문서는 특정 DID를 어떻게 사용하는지에 대해 설명해 놓은 간단한 문서이다. 각 DID 문서는 암호학적 요소, 검증 메소드, 서비스 엔드포인트 등으로 표현될 수 있다. 즉, DID 식별자와 주체가 상호 작용을 하기 위한 서비스 엔드포인트들을 포함한다.
DID문서에서 가장 중요한 점은 DID 인증정보가 들어간다는 것이다. ID의 제어권과 소유권등을 증명할 수 있는 공개키와 인증정보가 들어가 있다.

DID 메소드(DID Method)


DID 메소드는 특정 분산 원장 또는 네트워크에서 <입니다.>DID와 관련된 DID 문서들을 생성, 읽기, 갱신, 그리고 비활성화 하는 메커니즘</u>이다.

DID 형식


리다이렉션 리다이렉션 did: 문자열이 did임을 나타내며, 이 주소가 did스키마에 따른 것임을 나타냅니다. 항상 did로 시작합니다. example : did 메소드의 이름이고, did는 메소드별로 다르게 처리됩니다. 123456789abcdefghi : DID 메소드 안에서 사용되는 고유 아이디입니다. did 아이디가 주는 가장 중요한 정보는 “DID문서가 어디에 있는지”입니다. ID와 관련된 정보는 did문서에 담겨 있습니다.

DID 문서 내용

리다이렉션 DID 문서 내용의 핵심적인 정보는 id의 제어권, 소유권 등이 증명할 수 있는 공개키와 인증정보입니다.

id : 이 did문서를 설명하고 있는 아이디입니다. 공개키 : 이 아이디와 관련된 공개키 리스트입니다. 인증정보 : 이 아이디의 소유권을 증명하기 위한 정보입니다. 서비스 : 이 아이디와 상호작용이 가능한 서비스들의 리스트입니다. 핵심적인 부분은 어떤 개인정보도 저장되지 않습니다.

DID Registry 리다이렉션 [사진] 이미지 출처 : 심재훈 이더리움 연구회 발표 자료 중

먄약 각 DID메소드가 다르고, DID 사용하는 블록체인 플랫폼이 모두 다른 상황에서 DID Document를 가져온다면 굉장히 복잡해 집니다. 이러한 문제점을 해결하고자 방법이 W3C 공식문서 DID Registry에 담겨 있습니다.

DIF(Decentralized Identity Foundation) 글로벌 조직 DIF는 전 세계의 사용자들이 DID를 보다 쉽게 사용할 수 있도록 지원하기 위해 만든 조직입니다. 주요 가입 회사로는 Sovrin, uport, Civic, MS, IBM, Master Card 등이 있습니다. DID 소유자가 Agent일 때, DID로 Universal Resolver에서 DID Document를 뽑아낼 수 있습니다. 사용자 편의성과 DID 표준을 만들며 활용한 소프트웨어를 만드는 중요한 역할을 하고 있습니다.

DIF 유니버셜 리졸버(DIF Universal Resolver)는 DID 드라이버 컬렉션을 사용하여 구현 및 분산 된 시스템에서 DID에 대한 조회 및 해결의 표준 방법을 제공하고 있습니다. DID와 연결된 DPKI 메타데이터를 캡슐화 하는 DID Document Object(DDO)를 반환하는 서버입니다.

DID 인증(Authentication) DID 인증절차

회사(company)에서 DID소유권자에게 DID의 유무를 확인하기 위해 소유권자에게 challenge 신청합니다. 소유자인 나는 회사에게 response를 줍니다. 회사는 응답받은 DID로 Universal Resolver에서 DID document를 가져옵니다. DID document안에 기록되어 있는 인증정보로 소유자에게 받았던 response를 검사하여 확인합니다. response 검사를 통해 응답한 소유자가 DID를 가지고 있는 것인지 확인합니다. 리다이렉션 [사진] 이미지 출처 : 심재훈 이더리움 연구회 발표 자료 중

위 그림과 같이, 누군가의 신원을 검증하고자 할 때, DID의 소유자의 소유권을 Universal Resolver를 통해서 DID document에서 인증정보를 확인합니다. 소유자가 제시한 DID와 Universal Resolver의 DID document 안에 기록되어 있는 정보를 서로 확인합니다. 이를 통해 소유자가 제시한 정보의 진위여부를 확인하는 절차를 거칩니다.




https://www.slideshare.net/JaehoonJShim/ssi-introduction?qid=285d53be-70da-4868-93b1-8e8a3a52a648&v=&b=&from_search=1
https://www.codestates.com/


© 2022. Byungchan Park. All rights reserved.