분산ID 또는 분산 식별자, 분산 아이덴티티로도 불리는 DID 길라잡이
이 글은 자기주권신원과 분산ID에 대해 알아야 할 거의 모든 것 시리즈의 두번째글입니다.
일상생활에서 우리는 얼굴이나 목소리로 상대방을 다른 사람과 구분하고, 늘 만나던 내 친구 ‘메타' 인 것을 확인합니다.
하지만 디지털 세계에서는 늘 상대방의 얼굴이나 목소리로 상대방을 구분하고 확인할 수 없었기 때문에 우리는 서비스를 사용할 때 늘 ID/PW를 넣어 시스템에 ‘나’는 meta라는 ID를 사용하고 meta만 아는 1212라는 비밀번호를 알고 있음을 인증하였죠.
기존의 이 같은 아이덴티티(개인 정보) 관리 시스템들은 예를 들어, 도메인 네임 레지스트리(DNS, 도메인 이름 저장소)나 전문 인증기관과 같은 중앙화된 기관에 기반하고 있었습니다. 그리고 이 중앙화된 기관들이 시스템의 신뢰성을 담보하고 있었죠.
블록체인(Blockchain) 기술의 등장은 신뢰성을 담보하는 별도의 기관 없이도 저장된 데이터의 신뢰성을 담보 할 수 있는 분산 아이덴티티(개인 정보) 관리 시스템을 구현하고 사용할 수 있는 길을 만들어 주었습니다.
이 시스템에서 개별 개체(개인, 기관 그리고 사물 등이 포함될 수 있음, Entity)는
분산ID(분산 식별자 혹은 Decentralized Identifier, 이하 DID로 표기)로 식별되고
전자서명, 프라이버시가 보호되어 있는 생체 정보 등과 같은 증명(proofs)으로 인증됩니다.
W3C에서 진행되고 있는 DID 연구에서는, DID를 다음과 같이 정의 내리고 있습니다.
“분산 원장 기술 혹은 다른 형태의 분권형 네트워크에 등록되어 있기 때문에 중앙화된 등록 기관에 등록이 필요하지 않은 전 세계적(globally, 이하 글로벌로 표기)으로 유일한 식별자”
DID는 사용자를 중심으로 개인 정보를 생성하고, 사용하고, 삭제하는 등 개인 정보를 관리할 수 있는 시작점을 제공합니다. ‘나'를 구별하고 ‘내'가 ‘나'임을 증명할 수 있는 방법을 제공하죠.
2016년 DID 개발자들은 “URN(Unified Resource Name, 변함없는 영구적인 식별자)의 규격과 동일한 기본 패턴을 바탕으로 여러 블록체인들에 DID를 적용할 수 있다.”라는 크리스토퍼 알렌(Christopher Allen)의 의견에 동의하였고, 본격적으로 이 DID를 발전시키기 시작하였습니다.
DID와 URN의 차이는 URN의 namespace(명칭 공간, 이하 네임 스페이스로 표기) 부분의 구성요소가 DID Method(DID 방법)으로 대체되었고, 이에 따라 DID Method(DID 방법)과 DID Method(DID 방법) 상세를 나타내는 문자열 이 method-specific(방법별 식별자)의 형식을 지정하고 있습니다.
[그림1] URN : UUID : fe0cde11-59d2-4621-887f-23013499f905 (출처: w3c)
[그림2] DID : example : 12345abcde (출처: w3c)
상황에 따라 개체가 여러 신원을 갖고 있어 다르게 식별되어야 할 수도 있고, 다양한 속성을 가져야 할 수 있기 때문에 어떤 개체들도 필요한 만큼 DID(그리고 이에 상응하는 DID Document-DID 문서-와 서비스들)를 보유할 수 있습니다.
DID는 DID documents(DID 문서)를 가리키는데, 이 DID documents(DID 문서)에 대해 w3c는 다음과 같이 정의합니다.
DID Subject(대상)이 자신을 인증하고, DID와의 연관성을 증명하는데 필요한 데이터 집합으로, 공개키 및 익명 처리되어 있는 생체 인식 등의 메커니즘을 포함된다.”
또, “DID 문서는 Subject(대상)을 설명하는 속성이나 Claim(ID정보 또는 클레임)에 대한 내용을 포함하기도 합니다. 이 같은 Documents(문서들)은 일반적으로 [JSON-LD]를 사용하여 표현되지만 다른 호환 가능한 그래프 기반 데이터 형식을 통해서도 나타낼 수 있습니다.”라고 덧붙여 설명합니다.
Subject와 Claim 등과 같은 내용들은 다음 편에서 다룰 예정입니다!
DID Methods(DID 방법)는 DID와 연관되어 있는 DID Document(DID 문서)가 특정 분산 원장이나 네트워크에서 생성되고, 읽어지고, 업데이트되고 비활성화되는 메커니즘입니다.
특정 DID(a particular Decentralized Identifier)가 DID와 DID document(DID 문서)와 관련된 전체 기능들을 사용할 수 있도록 하기 위해서는 DID method(DID 방법) 상세에서 CRUD 작업(생성, 읽기, 업데이트 및 비활성화)을 수행할 수 있는 방법을 지정해야 합니다.
DID와 DID document(DID 문서)는 분산 아이덴티티(신원)의 기반이지만, 이는 전체 주제와 시스템을 설명하는 작은 일부분에 불과합니다. 자기주권신원으로 개인 정보의 관리와 활용의 패러다임이 옮겨 감에 따라 이 패러다임을 현실화하는 데에 더 많은 개념들이 추가되는데, 내가 제공한 ‘정보'가 신뢰할 만한 정보인지를 증명하는 증명가능한 자격증명(Verifiable Claims)의 개념이 그것입니다. 이에 대한 내용을 다음 게시물에서 설명드리겠습니다!
내용에 대한 피드백이 있으시거나, 또 추가로 나누어야 할 주제가 있다면, 언제든 댓글 또는 info@metadium.com 으로 의견 주세요!
참조 문헌:
https://w3c-ccg.github.io/did-primer/
https://w3c-ccg.github.io/did-spec/
자기주권신원과 분산ID에 대한 첫 번째 포스트 바로가기
메타디움에 대한 더 많은 정보를 받아보고 싶으시다면 저희 페이스북, 인스타그램, 트위터 그리고 카카오톡 플러스 친구를 팔로우 해주세요. 메타디움 프로젝트에서 개발하고 있는 가장 최신의 기능들을 만날 수 있는 키핀 앱을 앱스토어 혹은 구글 플레이에서 만나세요.