DID(Decentralized Identity, 탈중앙 신원증명) ?

데이터의 주권이 개개인에게 있고, 개개인의 데이터를 중앙화된 시스템을 거치지 않고 증명할 수 있는 기술이다. 분산원장기술(Distributed Ledger Technology, DLT)을 기반으로 사용자 데이터를 저장하여 안전하고 편리하게 인증할 수 있다.

  • DID는 데이터 저장소(Registry), 데이터 제공자(Provider), 인증기관(Certificate Authorities)을 분리함.

  • 탈중앙화 방식으로 동작할 수 있도록 설계.

  • DID는 SSI의 개념을 탈중앙화 방식의 신원증명을 통해 구현한 것.

    SSI(Self-Sovereign Identity)란, 당사자 본인이 신원 증명에 대한 권한을 갖도록 하는 개념이다.



데이터 주권(W3C)과 DID


W3C의 탈중앙 운동

W3C(World Wide Web Consortium; WWW; W3)

월드 와이드 웹을 위한 표준을 개발 및 장려하는 조직, 팀 버너스 리 중심으로 1994년 10월에 설립.

World Wide Web 창시자 팀 버너스 리는 W3C 재단을 창립하여 HTML을 표준화한다. W3C 활동의 본질적 목적은 웹에서 사용자들이 상호간에 자유롭게 데이터를 주고받게 하기 위함이었다.

→ But, 2000년대 이후, 플랫폼 대기업의 등장. 동시에 플랫폼 서비스 사용자 개개인에 대한 데이터의 주권이 사용자 자신이 아닌 플랫폼 기업에 종속되는 현상 발생. 데이터 주권이 중앙화 되는 것의 발단.

→ 글로벌 플랫폼 기업(구글, 페이스북 등)들은 사용자의 데이터를 독점적으로 차지함. 페이스북은 사용자 데이터를 수집하여 맞춤 광고를 제공하는 방식으로 전체 매출의 90% 이상을 내지만, 사용자는 페이스북이 사용중인 자신의 데이터를 확인 불가능.

데이터의 주권이 특정 기업에 종속되는 현상이 웹 생태계에 만연, W3C에서 문제 의식을 느낀 후 팀 버너스 리와 탈중앙 운동 전개.


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

W3C의 데이터 탈중앙 운동에서 핵심 포인트는 데이터의 연동.

→ 글로벌 플랫폼 기업이 데이터를 독점할 수 있는 원인이 보유한 사용자 데이터를 타 서비스와 연동 불가능한 이유.

→ 사용자가 본인 데이터에 대한 주권을 가지는 탈중앙 생태계를 구축하기 위해서 서비스 간 데이터 연동이 핵심.

→ W3C는 데이터 연동을 위하여 다양한 데이터를 종류별로 분류, 표준화 작업을 진행중에 있다.


W3C와 DID

DID 구현에서 문제점은 중앙화되지 않은 저장소에 개인의 신원을 증명할 수 있는 데이터를 보관하고, 동시에 데이터의 무결성과 보안성을 확보가 어려움.

→ But, 블록체인 기술의 대중화로 DID 구현시, 탈중앙화된 방식을 사용하여 사용자 신원 데이터를 저장 및 증명 방법을 모색하게 됨.

→ 2016년 W3C 블록체인 워크샵에서 블록체인 기반 신원 인증을 표준화하자는 제안이 발의되고, 2019년 DID 워킹그룹이 공식 결성됨. DID 기술의 표준화가 DID 워킹그룹에 의해 진행됨.



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


탈중앙화 식별자(DIDs; Decentralized identifiers) ?

DIDs는 검증가능하고 탈중앙화된 디지털 신원을 위한 새로운 형식의 식별자다. 예를 들면 ID, Password 같은. 누구나 DID 메소드(DID Method)로 자신의 주소 생성 가능.

→ DIDs는 마스터키를 활용하여 만들 수 있음.



DIDs 관련 개념 & 용어

Identity(식별자)

: 개인 혹은 단체(법인)등을 구별할 수 있는 고유 값.

ex. email 계정; A의 이메일 계정 ‘aaa@email.com’이 존재하면, 인터넷에서 해당 이메일 주소를 통해 A라는 사람을 특정 가능. 인터넷 상의 해당 이메일 주소는 오직 하나이며, 해당 이메일 주소 소유주 또한 단 한명. 여기서 해당 이메일은 A를 식별할 수 있게 하는 고유 식별자가 된다.


DID Document(DID 문서)

: 특정 DID를 어떻게 사용하는지에 대해 설명된 문서. 각 DID 문서는 암호학적 요소, 검증 메소드, 서비스 엔드포인트 등으로 표현될 수 있다. DID 식별자와 주체가 상호 작용을 하기 위한 서비스 엔드포인트들을 포함한다.


DID Method(DID 메소드)

: 특정 분산 원장 혹은 네트워크에서 DID 관련 DID 문서들을 생성 / 읽기 / 갱신 / 비활성화 하는 메커니즘.


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 사용이 쉽도록 지원을 위해 만들어진 조직.

  • 가입 회사 : Sovirn, uport, Civic, MS, IBM, Master Card 등.
  • DID 소유자가 Agent일 때, DID로 Universal Resolver에서 DID Document를 뽑아낼 수 있음.
  • DIF는 DID 표준을 만들어 DID를 활용 소프트웨어를 만드는 주요 역할 수행.
    • DIF 유니버셜 리졸버(DIF Universal Resolver); DID 드라이버 컬렉션을 사용하여 구현 및 분산 된 시스템에서 DID를 조회 및 사용하는 표준 방법 제공. → DID와 연결된 DPKI 메타데이터를 캡슐화 하는 DID Document Object(DDO)를 반환하는 서버.

DID Authentication(인증)

[ DID 인증 절차 ]

→ 회사(company)에서 DID 소유권자에게 DID의 유무 확인을 위해 소유권자에게 challenge를 신청한다.

→ 소유자인 당사자는 회사에게 응답으로 인증정보 포함 DID를 전달한다.

→ 회사는 응답받은 DID로 Universal Resolver에서 DID document를 가져온다.

→ DID document 안에 담긴 인증정보로 소유자에게 받았던 response를 검사하고 확인한다.

→ response 검사를 통하여 응답한 소유자가 DID를 소유하고 있는지 확인한다.


⇒ 신원을 검증하고 싶을 때, Universal Resolver에 있는 DID document에서 인증 정보를 가져와 DID 소유자와 소유권 확인 가능.

⇒ 소유자가 제시한 DID와 Universal Resolver의 DID document에 기록된 정보를 대치하여 확인. 이 과정으로 소유자가 제시한 정보의 진위여부를 확인하는 절차를 거친다.