자기주권신원과 구성 요소
Self-sovereign Identity의 배경과 이해
Background
하나의 상황을 가정해 보자.
오랜만에 편의점에 들른 나는 맥주를 구입하려고 한다. 점원은 맥주 구입을 위해 신분증을 보여달라고 요청하여 나는 주민등록증을 보여주고 맥주를 구입했다.
이 과정을 조금 자세히 풀어보면 이렇다.
- 맥주를 구입하기 위해서는 19세 이상 성인임을 증명해야 한다.
- 성인임을 증명하기 위해 나는 증명 수단인 주민등록증을 제시했다.
- 주민등록증에는 사진, 이름, 주민번호, 주소, 발급기관 등의 정보가 있다.
- 점원은 내가 성인임을 확인하기 위해 제시한 주민등록증에 있는 모든 정보를 확인할 수 있다.
이 프로세스의 핵심은 내가 19세 이상임을 증명하는 것인 반면, 내가 제시하는 증명은 나에 대한 너무 많은 정보를 준다는 것이다. 맥주를 구입하기 위해 나는 내 이름이 무엇인지, 나이가 몇이고 생일이 언제인지, 어디에 살고 있는지를 전부 노출하게 된다.
만약, 내가 신뢰할만한 어떤 방법을 통해 상황에 맞는 꼭 필요한 정보만을 제시할 수 있다면 위의 문제를 해결할 수 있지 않을까? 위 예시에 적용해 보면 내가 (나이를 알려줄 필요도 없이) 19세 이상이라는 점만 증명할 수 있으면 나에 대한 불필요한 정보를 알려줄 필요가 없게 된다.
Self-sovereign Identity
Self-sovereign Identity는 줄여서 SSI라고도 하는데, 쓰인 단어 그대로 살펴보면 Self (스스로) Sovereign (독립적인, 권한을 가진) Identity (신원, 신분). 즉, ‘스스로 권한을 부여한 신원’ 정도로 해석하면 되겠다.
이것은 신원 증명의 패러다임이 중앙화 된 기관으로부터 인정된 획일화 된 신원 증명 방식이 아닌, 개인이 주권을 가지고 자신의 신원을 관리 및 활용할 수 있는 체제로의 변화한다는 의미이다.
SSI를 구성하는 각 항목에 대한 상세한 내용은 다음 포스팅에서 정리하기로 하고 우선 이러한 SSI System은 아래 도식과 같이 정리된다.
각 구성원들을 위주로 간단히 설명하면 Holder(보유자)는 Verifiable Credential을 보유한 주체, Issuer(발행자)는 Verifiable Credential을 발행하는 주체, Verifier(검증자)는 Verifiable Presentation을 검증하는 주체이다.
Credential이란 Issuer가 검증할 수 있는 Claim(예를 들면 이름, 주민등록번호와 같은 단일 속성 정보)의 집합이며, Presentation은 Holder가 Credential을 기반으로 Claim 중 일부를 조합하여 새로 생성한 정보이다.
여기서 핵심은 Holder가 Credential이 아닌 Presentation을 바탕으로 신원을 증명한다는 점이다. 즉, 핵심 증명 요소가 아닌 모든 정보는 철저히 사용자의 권한을 바탕으로 최소화 하여 공개 여부를 결정할 수 있다는 점이다.
한편 여기서 더 나아가 Derived Predicate(파생 정보)라는 개념은 프라이버시를 한층 보완하기 위한 방식으로 Claim을 바탕으로 아래와 같이 참, 거짓을 표현할 수 있는 방식이다.
- 서현이는 19세 이상의 성인이다 (성인 인증이 필요한 경우)
- 진원이는 서울에 거주하고 있는 서울 시민이다 (청약 시 거주지역 정보가 필요한 경우)
마지막으로 중요한 점은, 이 모든 정보가 Verifiable Data Registry를 통해 검증가능(Verifiable) 하다는 것이다.
Decentralized IDentifiers (DIDs)
한편, 위와 같은 신원 증명은 디지털을 바탕으로 이루어져야 하는데, 기존에 이러한 방식의 적용이 어려웠던 이유는 디지털 정보의 경우 생성, 흐름, 보관 등의 과정에서 위변조의 가능성이 물리적 정보보다 ‘상대적’으로 높았기 때문이었다.
‘디지털 정보의 위변조’라는 문제를 해결하기 위한 방안에 대해 좀 눈치가 빠른 분들은 Blockchain을 떠올릴 수 있을 것이다. Blockchain의 대표적 특징 중 하나인 Immutability가 이러한 문제를 해결할 수 있는 좋은 방안이기 때문이다.
DIDs는 이러한 위변조로부터 안전한 정보를 확인할 수 있도록 하는 식별자(Identifier)로서 블록체인의 DLT(Distributed Ledger Technology) 상에서 신원 증명 내용을 검증할 수 있도록 하는 역할인데, 상세한 내용은 역시 다른 포스팅에서 설명하도록 한다.
Conclusion
Blockchain과 Digital ID의 결합을 통해 Self-sovereign Identity가 가능하게 되었고 이것은 앞으로 프라이버시, 보안, 효율성 등이 요구되는 다양한 분야에서 활용 가능한 좋은 도구가 될 것이라고 생각한다.
신원의 증명은 우리가 알게모르게 꽤 빈번하게 사용되고 있다. 신원증명은 서비스 가입, 로그인, 성인인증 등을 위한 필수요소이기 때문에 W3C, DIF 등 다양한 단체에서 헤게모니를 잡기위해 노력하는 움직임이 보인다.
다행히 아직 Self-sovereign ID의 개념은 완성되지 않았고 개선의 여지도 많은만큼 이러한 개념을 함께 공부하며 뒤쳐지지 않고 오히려 선도하려는 노력이 필요할 것이다.
References
Disclaimer
현재 위 개념은 다양한 방식으로 명명되고, 해석되는 확고한 개념이 아닙니다. 당연히 이 글에서 언급하는 모든 개념도 아직 완전한 개념으로써 제시하는 것이 아닌 학습의 과정에서 필자가 이해한 방식으로 공유함을 이해해 주시길 미리 양해 부탁드린다.
추가) 일부 표준들이 변경됨에 따라 기존 작성된 내용들 중 변경된 사항들로 인해 잘못된 이해를 줄 수 있어 일부 내용을수정하였습니다 (2020.03.27)