💡 DID(Decentralized Indentity, 탈중앙 신원증명)
Decentralized Identity(탈중앙 신원증명, DID) 는 데이터의 주권이 개개인에 있고, 개개인의 데이터를 중앙화된 시스템을 거치지 않고 증명할 수 있는 기술이다. DID는 분산원장기술(Distributed Ledger Technology, DLT)를 기반으로 사용자의 데이터를 저장하여 안전하고 편리하게 인증할 수 있도록 한다. 따라서 DID는 데이터 저장소(Registry), 데이터 제공자(Provider), 인증기관(Certificate Authorities)를 분리하고, 탈중앙화 방식으로 동작할 수 있도록 설계된다. DID의 근간이 되는 개념은 SSI로, SSI의 개념을 탈중앙화 방식의 신원증명을 통해 구현한 것이 DID이다.
* SSI (Self-Sovereign Identity)
자기 자신이 신원 증명에 대한 권한을 갖도록 하는 개념
💻 데이터 주권과 DID (W3C와 DID)
* W3C의 탈중앙 운동
DID 표준 등장의 기술적 맥락을 이해하기 위해서는 W3C (World Wide Web Consortium) 의 탈중앙 운동에 대한 이해가 필요하다. World Wide Web을 창시한 팀 버너스라는 W3C라는 재단을 만들어 HTML을 표준화한다. W3C 활동의 본질적인 목적은 웹에서 사용자들이 상호간에 자유롭게 데이터를 주고받게 하기 위한 것이었다.
* W3C (World Wide Web Consortium)
월드 와이드 웹을 위한 표준을 개발하고 정리하는 조직으로 팀 버너스 리를 중심으로 1994년 10월에 설립되었다.
그러나 2000년대 이후, 거대한 플랫폼의 등장과 동시에 플랫폼 서비스를 이용하는 개개인에 대한 데이터의 주권이 사용자가 아닌 플랫폼 기업에게 종속되는 현상이 발생했다. 즉, 데이터 주권이 중앙화되기 시작한 것이다. 구 페이스북 현 메타와 같은 글로벌 플랫폼 기업들은 사용자의 데이터를 독점적으로 차지하였다. 제삼자는 물론이고, 데이터를 생산한 사용자 역시 데이터를 열람하거나 사용할 수 없게 된다. 예를 들어, 페이스북은 사용자의 데이터를 수집해 맞춤 광고를 제공하는 것으로 전체 매출의 90% 이상을 벌어들이고 있다. 그러나 정작 사용자는 페이스북이 사용하는 자신의 데이터를 확인할 수 없다. 이렇게 데이터의 주권이 특정 기업에 종속되는 현상이 웹 생태계에 만연해지자, W3C에서는 이에 대한 문제 의식을 느끼고 팀 버너스리와 함께 탈중앙운동을 전개하게 된다.
✓ W3C의 데이터 탈중앙화를 위한 표준화
W3C에서 진행하는 데이터 탈중앙 운동에서 가장 중요한 지점은 데이터의 연동이다. 글로벌 플랫폼 기업이 독점적으로 데이터를 보유할 수 있는 이유는 자신들이 가지고 있는 사용자 데이터를 다른 서비스와 연동할 수 없기 때문이다. 따라서 탈중앙 생태계, 사용자가 자신의 데이터에 대한 주권을 가지는 생태계를 만들기 위해서는 서비스 간 데이터 연동이 가장 중요하다. W3C에서는 데이터 연동을 위해 다양한 데이터를 종류별로 나누고, 표준화 작업을 진행하고 있다.
✓ W3C와 DID
DID 구현의 가장 큰 걸림돌은 중앙화되지 않은 저장소에 개인의 신원을 증명할 수 있는 데이터를 보관하면서, 동시에 데이터의 무결성과 보안성을 확보하는 것이 어렵다는 것이었다. 그러나 블록체인 기술이 등장하고 대중화되면서 DID를 구현할 때 탈중앙화된 방식을 사용해 사용자 신원 데이터를 저장하고 증명하는 방법을 모색하게 된다. 2016년 W3C 블록체인 워크샵에서도 블록체인 기반의 신원 인증을 표준화하자는 의견을 개진되었으며, 이 제안이 발전해 2019년 DID 워킹그룹이 공식적으로 결성되었다. DID 기술의 표준화는 현재 DID 워킹그룹에서 진행하고 있다.
💻 W3C표준화 - DIDs (탈중앙화 식별자)
: W3C는 DIDs라는 명칭으로 DID를 실현할 수 있는 기술에 대한 표준화를 설명한다.
DIDs는 검증가능하고 탈중앙화된 디지털 신원을 위한 새로운 형식의 식별자이다. 흔히 우리가 사용하는 ID, Password 로 생각하면 되는데 누구나 DID 메소드로 자신의 주소를 만들 수 있다. DIDs 는 마스터키를 활용하여 만들 수 있다.
✓ Identify (식별자)
식별자는 개인 혹은 단체(법인) 등을 구별할 수 있는 고유 값이다. 쉬운 예로 이메일 계정을 들 수 있다. 우리가 사용하는 이메일 주소는 딱 하나이고, 동시에 이 이메일 주소를 가진 사람 역시 나 한명일 것이기 때문이다. 이 때 이 이메일은 사람을 식별할 수 있는 고유학 식별자가 된다.
✓ DID 문서 (DID Document)
DID 문서는 특정 DID를 어떻게 사용하는지에 대해 설명해 놓은 간단한 문서이다. 각 DID 문서는 암호학적 요소, 검증 메소드, 서비스 엔드포인트 등으로 표현될 수 있다. 즉, DID 식별자와 주체가 상호 작용을 하기 위한 서비스 엔드포인트 등을 포함한다. DID 문서에서 가장 중요한 점은 DID 인증정보가 들어간다는 것이다. DID 인증 정보는 해당 DID 제어권과 소유권을 증명할 수 있는 공개키와 각종 메타데이터를 의미한다.
✓ DID 메소드 (DID Method)
DID 메소드는 특정 분산 원장 또는 네트워크에서 DID와 관련된 DID 문서들을 생성, 읽기, 갱신 그리고 비활성화 하는 메커니즘이다.
✓ DID형식
- did: 문자열이 did 임을 나타내며 이 주소가 did 스키마에 따른 것임ㅇ르 나타낸다. 항상 did로 시작한다.
- example: did 메소드의 이름이고, did는 메소드별로 다르게 처리된다.
- 123456789abcedfghi: did 메소드 안에서 사용되는 고유 아이디이다.
- did 아이디가 주는 가장 중요한 정보는 "DID 문서가 어디에 있는지" 이다.
- ID 와 관련된 정보는 did 문서에 담겨 있다.
✓ DID 문서 내용
: DID 문서 내용의 핵심적인 정보는 id의 제어권, 소유권 등을 증명할 수 있는 공개키와 인증정보이다.
- id: 이 did 문서를 설명하고 있는 id이다.
- 공개키: 이 아이디와 관련된 공개키 리스트이다.
- 인증정보: 이 아이디의 소유권을 증명하기 위한 정보이다.
- 서비스: 이 아이디와 상호작용이 가능한 서비스들의 리스트이다.
중요한 것은 어떤 개인정보도 저장하지 않는다는 점이다.
✓ DID Registry
만약 각 DID 메소드가 다르고, DID를 사용하는 블록체인 플랫폼이 모두 다른 상황에서 DID Document를 가져온다면 굉장히 복잡해진다. 이러한 문제점을 해결할 수 있는 방법 W3C 공식문서의 DID Registry 파트에 담겨 있다.
✓ DIF (Decentralized Identity Foundation) 글로벌 조직
DIF는 전 세계의 사용자들이 DID를 보다 쉽게 사용할 수 있도록 지원하기 위해 만든 조직이다. 주요 가입 회사로는 Sorvin, uport, Civic, MS, IBM, Master Card 등이 있다. DID 소유자가 Agent 일 때, DID로 Universal Resolver에서 DID Document를 뽑아낼 수 있다. DIF는 DID 표준을 만들며 DID를 활용하는 소프트웨어를 만드는 중요한 역할을 하고 있다.
* DIF 유니버셜 리졸버는 DID 드라이버 컬렉션을 사용하여 구현 및 분산된 시스템에서 DID를 조회하고 사용하는 표준방법을 제공하고 있다. DID와 연결되 DPKI 메타데이터를 캡슐화하는 DID Document Object를 반환하는 서버이다.
✓ DID 인증 (Authentication)
DID 인증 절차
1. 회사에서 DID 소유권자에게 DID의 유무를 확인하기 위해 소유권자에게 challenge를 신처한다.
2. 소유자인 나는 회사에게 응답으로 인증정보가 포함된 DID를 전달한다.
3. 회사는 응답받은 DID로 Universal Resolver에서 DID document를 가져온다.
4. DID document 안에 기록되어 있는 인증정보로 소유자에게 받았던 response를 검사하여 확인한다.
5. response 검사를 통해 응답한 소유자가 DID를 가지고 있는 것인지 확인한다.
위 그림과 같이, 누군가의 신원을 검증하고자 할 때, Universal Resolver 에 있는 DID document에서 인증정보를 가져와 DID 소유자의 소유권을 확인할 수 있다. 소유자가 제시한 DID와 Universal Resolver 의 DID document 안에 기록되어 있는 정보를 서로 확인한다. 이를 통해, 소유자가 제시한 정보의 진위여부를 확인하는 절차를 거친다.
'블록체인 > 블록체인이란?' 카테고리의 다른 글
Verifiable Credential(검증가능한 크레덴셜, VC) (0) | 2022.07.26 |
---|---|
SSI는무엇일까? SSI와 DDI, SSI 개념, SSI 요소 (0) | 2022.07.26 |
기존 시스템과 블록체인의 보안적 특징 (0) | 2022.07.22 |
HD 지갑이란? HD 지갑의 구조 (0) | 2022.07.22 |
Minting 플랫폼 (0) | 2022.07.21 |
댓글