DID는 블록체인이 적용될 수 있는 분야 중 필자가 가장 기대하는 분야다. 기존 웹에서 행해지던 인증체계는 많은 문제들이 있었기 때문이다.
특히 서비스 데이터베이스에 이용자 정보를 보관하고 있는 경우에는, 해당 서비스가 공격을 당했을 때 이용자 정보가 같이 탈취당하는 경우가 많다. 대규모 서비스가 공격당한다면 몇 만 명 이상의 대규모 데이터가 악의적인 사용자들에게 넘어갈 수 있다.
그리고 사실 개인정보를 통해 이익을 받는 사람이 각 개인이 아닌, 정보를 보관하고 있는 기업이 가져가는 것도 모순적으로 비춰진다. 개인정보를 제공하면서 얻는 이익은 개인에게 돌아가는게 맞다고 생각한다. DID는 유명한 투자자 워렌 버핏과의 점심 만찬만이 아닌, 일반 사람들의 간단한 설문 조사 참여까지 이익을 공유할 수 있는 힘을 가지고 있다.
Decentralized Identity(탈중앙 신원증명, 이하 DID) 는 데이터의 주권이 개개인에게 있고, 개개인의 데이터를 중앙화된 시스템을 거치지 않고 증명할 수 있는 기술입니다.
-- 코드스테이츠 자료
World Wide Web의 창시자 팀 버너스리는 W3C 재단을 만들어 HTML 표준화를 진행하고 있다. 그리고 플랫폼 기업이 데이터 주권을 가지면서 데이터들이 중앙에서 관리되게 된다. 데이터 주권이 기업에 종속되는 것에 문제의식을 느끼고, W3C는 탈중앙 운동을 벌이며 데이터를 개인화화는 방법을 강구하게 된다.
데이터의 탈중앙 운동에서 가장 중요한 지점은 데이터의 연동이라고 한다. 어떤 서비스에서든 동일한 형태의 데이터가 사용되어져야 하는 것이다.
현재까지는 분산 저장소에서 개인의 신원을 증명하는 데이터를 보관하는 동시에 데이터의 무결성과 보안성을 확보하는 것이 어렵다고만 생각되었다. 하지만 블록체인을 통해 문제해결 방법이 제시되면서 DID 구현에도 속도감이 붙기 시작했다.
개인 혹은 단체(법인) 등을 구별할 수 있는 고유값
DID를 어떻게 사용하는지에 관해 설명해 놓은 간단한 문서. 암호학적 요소, 검증 메소드, 서비스 엔드포인트 등으로 표현 가능하다. DID 인증정보가 포함하고 있는 것이 핵심인데, DID 제어권과 소유권 등을 증명할 수 있는 공개키와 메타 데이터들이 DID 인증정보에 기록된다.
DID와 관련된 DID 문서들을 생성, 갱신, 그리고 비활성화하는 메커니즘.
DIDs 예시
did:example:123456789abcdefghi
SSI는 Self-Soverign Identity
의 약어이다. "자신을 증명할 수 있는 정보를 스스로 관리 및 보관"한다는 개념이다.
DID는 SSI를 탈중앙화된 방식으로 구현한 자기 주권형 신원 증명기술이다.
개별 서비스마다 이용자의 아이디와 패스워드를 저장하고 신원확인 서비스를 제공한다. 이용자가 각각의 서비스마다 따로 ID, Password를 만들어 관리를 해야했다. 서비스 제공자들도 이용자 데이터를 보호하기 위한 보안 문제를 해결하기 위해 많은 비용들 들여야 했다.
거대 플랫폼의 신원확인 서비스를 통하여 신원을 확인하는 모델이다. 사용자가 가입해서 관리해햐 하는 정보들이 적어진 반면, 개인정보가 플랫폼에 종속, 독점되고 유출되면 사고가 크게 나버린다.
개인 자신 스스로 소유하는 개념. 데이터의 주권을 본인이 가지기 때문에 본인에게 데이터에 대한 책임과 의무가 돌아간다. 본인 데이터에 대한 비밀번호를 잃어버리면 복구하기가 거의 불가능하다.
[W3C DID 생태계 구성도]
보유자(Holder)
: 하나 이상의 검증 가능한 Credential을 보유하고, Credential로부터 VP(Verifiable Presentation)을 생성하는 역할을 한다. 예로 학생, 직원, 고객 등이 있다.발급자(Issuer)
: 하나 이상의 주체에 대한 Claim을 확증하고, Claim으로부터 VC(Verifiable Credential)을 생성하여 보유자에게 전달한다. 예로 회사, 단체, 정부, 개인 등이 있겠다.주체(Subject)
: Claim의 대상이 되는 개체. 예로 인간, 동물, 사물이 있다. 보통은 VC의 보유자가 주체이지만 않는 경우도 있다. 부모가 자녀에 대한 VC를 보유할 수도 있고, 애완동물 주인이 애완동물의 VC를 보유할 수도 있다.검증자(Verifier)
: 검증 절차를 위해 하나 이상의 VC 혹은 VP를 받는 역할을 한다. 예로 사이트, 담당자, 직원 등이 있다.검증가능한 데이터 레지스트리(Verifiable data registry)
: VC 스키마, 페기 레지스트리, 발급자 공개 키 등과 같은 식별자, 키 및 기타 관련 데이터의 생성 및 확인을 중재하는 역할을 한다. 신뢰할 수 있는 데이터베이스, 분산된 데이터베이스, 정부 ID 데이터베이스 및 분산 원장이 포함된다.
Credential은 신원 확인에 필요한 정보이다.
주민등록, 운전면허, 여권 등이 포함된다.
[포함 내용]
- 주체를 식별할 수 있는 정보(이름, 사진, 주민등록번호 등)
- 신분증 발급기관 정보
- 발급기관이 보증하는 정보
- 신분증 용도
- 제약조건 정보
[VC 도식화]
DID 에서는 Credential을 VC라고 한다. 위의 구조처럼 Credential Metadata
, Claim
, Proof
로 구성되어진다.
[클레임 도식화]
주체-속성:값
의 구조를 가진다.자기주권신원(SSI)에서 최소한의 정보 공개 원칙을 지키기 위해서는 필요한 정보들만 검증할 필요가 있다. 이외의 데이터는 제공을 하지 않아도 되는 것이다. 필요한 정보들로만 구성된 새로운 형식이 VP이다.