비트코인의 가격이 천정부지이다. 6만 불을 넘어서다 조정을 거치고 있다. 우리나라 돈으로 비트코인 1개의 가격이 7천만 원대에 있으니, 당연 세간의 관심은 비트코인의 가격이 더 상승할지, 1억이 넘을지, 또 다른 가상자산(암호화폐)에 대한 투자를 통해 자산의 증식을 꾀할 수 있을지에 있다.
필자는 암호화폐의 시초, 비트코인에 대한 남다른 애정을 가지고 있다. 기술적 매력, 그리고 솔루션의 혁신에 집중한지 8년이 넘었고 배우고 익힌 것들을 교육 현장에서 전하고 있다.
국내에서도 블록체인에 대한 연구와 기술 개발이 상당히 진행되면서, 이제 어느덧 기본기가 갖춰진 전문가들이 많이 생겨나고 있다. 그런데도 DID 기술에서 보이고 있는 혁신의 내용들이 일반인들에게 잘 전달되지 않을 뿐더러 DID 가치를 제대로 알고 있는 전문가들 또한 많지 않다.
이번 칼럼에서는 DID가 만들어 내는 혁신, 가슴 뜨거운 이야기를 꺼내본다.
“인터넷에서는 당신이 누구인지 증명하는 것은 매우 까다롭기도 하고 어려운 문제이다. 누군가 당신을 대신해서, 로봇이 또는 다른 해커가 당신인 척할 수 있는 수단이 많기 때문이다. 그리고 프라이버시가 보장되지 않은 중앙화된 ID 시스템은 당신이 진정한 당신임을 입증하기 위한 제2의 인증을 강요할 수밖에 없다. 그리고 우리는 중앙화된 ID 시스템에서 벗어나기 위한 근본적인 해결책을 강구해야 한다. 그것이 DID의 출발이다”
DID 무엇인가?
DID는 영어로 하면 Decentralized ID이다. 이 개념을 여러 사람들이 ‘분산 신원인증 기술’로 번역하는 것에 대해 필자는 주저한다. 습관적으로 ‘Decentralized’ 개념을 탈중앙화가 아닌 분산으로 해석하는 습관에서 이렇게 하는 사람들이 많다. 하지만 DID는 그동안 우리에게 익숙한 중앙화된 ID시스템에 대한 문제에서 벗어나 새롭게 해결된 기술이다. 자기 주권 중심의 핵심적 가치를 가진 개념을 분산이라는 작은 개념으로 한정하는 오류를 범하고 싶지 않다.
그러면 어떻게 번역해야 할까? ‘탈중앙화 ID’ 이것이 더 어울리는 용어이다. 그리고 ID에 대한 번역까지 고민해서 세부적인 기술적 해결 방법을 들여다본다면, ID를 ‘신원인증’으로 하기에는 아까운 개념인 것을 알게 될 것이다. 필자는 DID를 ‘탈중앙화 식별 기술’이라고 명명하고 싶다. 기술에 대한 내용을 먼저 살펴본 이후에 이러한 한국식 이름에 대해 첨언하겠다.
DID가 어떤 문제를 해결하는가?
기술적 솔루션들은 대다수 현실에서의 문제(Problem)를 해결하는데, DID 또한 우리가 사용하는 Digital ID 시스템의 큰 문제를 해결하기 위해 태동되었다. 그러면 여러분이 자주 사용하는 디지털 ID는 어떤 문제점을 안고 있는가? 바로 중앙화의 문제를 안고 있다.
대부분 네이버 서버나 구글 서버, 또 여러분이 잘 알고 있는 학교 서버에 의존하여 ID와 비밀번호를 만들고 있다 보니, 이렇게 각각의 커뮤니티에 특화된 디지털 ID는 개인에게 동일하게 관리될 수 없다. 네이버에서 사용하는 내 ID가 다른 서버에서는 이미 다른 사용자가 점유하고 있어 다른 ID를 사용할 수도 있고, 비밀번호의 위험성 때문에 자주 비밀번호를 바꾸라고 강요받기도 하고, 그래서 ID와 비밀번호 세트를 10개 이상 잘 관리하고 있지 않으면 낭패를 보는 경우가 많다.
결국 인터넷에 돌아다는 스미싱 해킹에 의해 비밀번호를 도용당하는 위험이 있다보니 비밀번호를 대문자, 소문자, 숫자를 결합한 10자 이상으로 바꾸도록 권고하고 있고, 필수로 해야 하는 경우도 많아졌다. 모두 서버의 배려일 수도 있고 횡포일 수도 있다.
그러다 보니 3개월 전, 6개월 전에 기억하고 있던 ID와 패스워드를 새로운 권고 기준으로 바꾸고 나면 다른 사이트의 ID와 패스워드와 혼동하여 자주 로그인 실패를 맞보기도 한다. 머리가 어지러울 정도로 중앙화된 ID 패스워드 세트를 전부 기억하기란 쉽지 않고 번거로움을 야기하곤 한다. 뿐만 아니라 자주 사용하지 않는 사이트의 로그인 ID와 패스워드를 기억해내기가 어려워 다시 본인 인증을 거쳐 비밀번호를 재설정을 하는 경우가 다반사다.
더구나 나에게 강요한 개인정보들, 즉 핸드폰 번호나 이메일, 주소, 생년월일과 같은 정보들이 그 서버에 기록되어 있고, 이 개인정보들이 개인의 동의를 거치지 않은 상태에서 다른 목적으로 이용되는 사건들도 자주 언론을 통해 알려지고 있다. 심지어는 페이스북(최근 메타로 바뀌었다) 마저도 원치 않는 개인정보 유출 사고가 발생하기도 했다.
이런 중앙화된 ID 시스템의 문제를 해결해 보고자 나온 중간 해결책이 바로 소셜 로그인 기능이다. 자주 사용하는 SNS ID와 비밀번호를 그대로 사용하여 다른 웹사이트나 앱 서비스에 로그인을 대신하는 경우이다.
그러나 이와 같은 ‘연합 ID’ 기술에 있어서도 일부 문제가 완화되었지만, 근본적으로 신원 증명이나 자격 증명과 같은 또 다른 문제를 해결하는 데는 나이스하지 못하다. 가령, 내가 소셜 로그인하여 내가 근무하는 직장이 어디인지, 또 내가 사용하는 모바일 번호가 무엇인지, 내가 서울시 주민인지 아닌지를 증명하기가 귀찮고 어렵다는 것이다.
모바일 번호나 이메일 인증이나 이런 것들은 그나마 2차 인증을 통해 해당 이메일로 테스트 전송하여 확인 과정을 통하던지, 핸드폰 번호로 문자 번호 안내를 통해 해당 번호를 재입력하면 당사자가 맞는지를 인증할 수있다.
그러나 학교 졸업 증명이나 직장 증명이나, 서울시 주민인지 아닌지에 대한 증명은 더욱 어렵고 까다롭다. 보통의 경우 원본 대조필이 찍혀 있는 서류를 직접 제출하여 서비스 제공자로부터 확인을 받지 않으면 안 되는 경우가 많다.
상기의 문제를 해결할 수 있는 획기적 방식이 있다. 바로 DID, ‘탈중앙화 식별기술’이다.
DID는 어떻게 문제를 해결하는가?
DID 기술을 살펴보겠다. 먼저 DID 기술의 원형이 비트코인에서 기인한 것을 아는 사람은 많지 않다. 최초의 비트코인을 블록체인으로 알고 있고, 그 블록체인은 분산원장이라고 알고 있는 사람들이 흔히 놓치고 있는 개념이 탈중앙화 개념이다.
많은 일반인들은 해시를 사용하는 분산 저장 기술의 분산원장 기술을 블록체인의 핵심기술로 이해하다보니 분산과 탈중앙화를 혼동하여 사용함으로써 발생되는 현상이다. 그래서 많은 언론과 심지어는 정부 관계 기관이나 전문가들 사이에서도 탈중앙화 개념을 분산으로 이해하는 경향이 많다.
이 부분에 대해서는 다른 주제로 더 세부적으로 들여다보기로 하고, 우선 DID가 중앙화의 문제, 개인정보 유출의 문제, 그리고 신원과 자격 증명의 문제를 어떻게 말끔하게 해결하고 있는지를 살펴보자.
1) 탈중앙화의 원리는 비트코인의 방식을 차용했다.
비트코인에서 구현된 여러 가지 기술 중에 해시구조의 분산원장 기술은 널리 알려져 있다. 다른 또 하나의 위대한 발상으로 키, 주소 메커니즘 그리고 디지털 서명을 통한 증명 기술이 있다. 흔히 공개키를 사용한 디지털 서명 기술은 이전부터 우리가 사용하였던 기술이고, 그것이 새로운 기술이 아니라 이미 공인인증서를 통해 우리에게 익숙한 기술이라고 치부하는 사람들이 있다.
이 말은 기본 원리에 있어서는 공통의 기술적 원리를 사용한다는 측면에서 부분적으로는 맞지만, 그렇다고 키의 발생과 주소를 만들어 내는 방식과 결합되어 사용되는 특수한 응용이 상당히 다른 의미와 결과를 만들어 낸다는 측면에서는 어울리지 않는 표현이다.
비트코인에서 탈중앙화로 이루어진 위대한 발명의 기저가 되는 기술이 바로 이것이다. (참조, 〈그림1〉)
개인키를 사용자가 만들고, 그것으로 공개키를 암호화 메커니즘을 통해 만들어서 외부로 유출하게 하고, 또 공개키를 해시 암호화를 통해 비트코인 주소를 만들어냈다. 결국, 주소와 공개키를 통해 우리가 잘 알고 있는 디지털 서명 메커니즘을 통해 원격의 컴퓨터에서 보낸 메시지나 트랜잭션 내용의 진위여부를 가려낼 수 있도록 했다. 혹자는 이것이 탈중앙화와 무슨 관련이 있는지 의아해 할 수도 있다. 바로 이후 과정인 디지털 서명에 의한 검증 과정이 뒤따르는 것을 보면 이해할 수 있다.
위 〈그림2〉에서는 문서로 이해를 쉽게 하기 위해 표현했지만, 사실 이것은 디지털 문서가 아닌 특정의 메시지일 수도 있고, 트랜잭션일 수도 있으며, 신원증명서나 자격증명서와 같은 크레덴셜(Credential)일 수도 있다.
우리가 아날로그 문서에 서명을 통해 내가 작성한 문서가 맞다고 증명하듯이, 디지털 문서 또는 메시지 또한 원격에서 보면 내가 보낸 문서(메시지)가 맞는지에 대해 서명값과 공개키를 통해 증명할 수 있도록 한 기술이 디지털 서명 기술이다.
그래서 앞서 기술했던 키 메커니즘과 디지털 서명 기술이 결합하게 되면 서버의 통제에서 벗어나, 등록을 하지 않은 상태에서 나를 증명할 수도 있고, 내가 작성한 문서 또는 메시지 또는 트랜잭션을 증명할 수 있는 방식이 만들어지게 된다. 최초의 블록체인 응용인 비트코인에서 나온 세상을 깜짝 놀라게 한 가장 기초적인 기술 원리이다.
이것이 분산원장이라고 하는 해시함수를 사용한 위·변조 기술과는 다른 중요한 기술축이다. 이 메커니즘을 차용하여 ID 기술인 식별 기술로 사용한 것이 DID이다. W3C에서 정한 DID의 구문, 즉 DID 구조는 다음과 같다.
DID 구조를 보면 몇 가지 특성을 가지고 있다.
첫째, DID 그 자체로 고유하다. 즉 다른 DID와 충돌되지 않는다. 또 메서드에서 지정된 저장소들마다, 그들의 고유한 식별자 방식을 채택할 수 있다. 그러나 기본적인 원리는 키와 주소 메커니즘에 기반하여 탈중앙화된 식별자를 선택해야 한다. 그래서 외부의 수많은 서비스 제공자들에 연결되어 사용될 때, 상호 충돌이 나오지 않도록 설계되어야 한다.
둘째, DID 식별자는 항상 'DID:xxx:xxxx'로 이름 지어지기 때문에 DID 시스템인지, 사람인지, 기계인지를 인식할 수 있으며, 메서드를 통해 어떤 저장소를 통해 해당 DID에 대한 공개키 값이나 암호 증명 방식을 알 수 있도록 하게 만들었다. 조금 더 복잡하게 ‘DID Document’(DID 문서) 형태로 공개키와 암호 증명 방식을 확인할 수 있도록 DID 표준에서는 규정하고 있다.
셋째, DID는 그야말로 개인정보라고 할 수 있는 어떤 것도 없고, 식별자로 암호화된 값을 주로 사용하고 있어 사람보다는 기계에 더 친숙한 식별자이다. 바로 이 특성으로 인해 프라이버시가 기본적으로 보장되고, 필요시 사용자가 서비스 제공자에게 별도의 신원 증명이나 자격 증명을 선택할 수 있는 수단을 제공하도록 설계되었다.
이 점이 특별히 더 중요하다. 이전에 사용되던 중앙화 ID에서는 기본적으로 시스템 관리자에 의해 이름이나 이메일, 핸드폰 번호와 같은 주요 식별키를 통해 관리되는데 비해, 탈중앙화 ID에서는 근본적인 인덱싱에 있어 다소 까다로운 암호 주소가 사용된다. 결국 인간이 파악하기 어렵고 프라이버시가 최대한 보장되며, 만일의 경우에 추적이 불가능한 것은 아니지만 최후의 보루를 통해 가능하도록 한 것으로 이해하면 된다.
2) 비트코인의 방식을 차용했지만 DID에서는 외부의 저장소를 통해 디지털서명을 검증할 수 있도록 했다. DID 표준을 주도하고 현재도 왕성하게 기술을 리드하고 있는 그룹은 소버린 재단이다. 그래서 DID는 SSI(Self Soverin Identifier)라고도한다. 즉, 자기주권 식별자 기술이라고 한다. 소버린 재단에서는 비트코인에서의 구현된 디지털 서명 메커니즘을 다른 식으로 적용하였다.(참조, 〈그림4〉)
비트코인에서는 Peer to Peer 네트워크 상에서 트랜잭션을 보내는 것을 가정하였지만, 크레덴셜의 증명을 위해 증명서 발급기관 DID와 그리고 나의 DID 그리고 해당 앱이나 웹사이트의 검증자(특정 사이트라고 생각하면 된다) 사이의 디지털증명서(크레덴셜)에 대한 검증이 이루어져야 한다. 그래서 검증이 이뤄지는 사이트에서 참조될 만한 잘 알려진 저장소를 통해 공개키를 확인하는 방법으로 그림을 새롭게 그렸다.
앞서 살펴본 비트코인에서는 트랜잭션에 공개키를 동봉하여 받는 측 피어에서 검증이 이뤄질 수 있도록 하였지만, 소버린 재단에서는 초기에 외부의 저장소를 통해 공개키와 암호 증명 방식을 규정할 수 있도록 제안하여 표준에서는 그 저장소를 블록체인 저장소로 규정하게 되었다.
결국 DID 표준에서 확정된 모델은 〈그림5〉와 같다.
DID 모델에 대해 일부에서 혼동되어 잘못 해석하는 부분은 다음과 같다. 〈그림5〉 하단의 블록체인 저장소를 DID의 핵심으로 보는 경향은 옳지 않다. DID는 공개키를 통해 디지털서명을 검증하는 기술을 근간으로 하고 있고, 이것은 분산원장이 아닌 또 다른 중요한 블록체인 기술 중 하나이다. 단지 〈그림5〉 하단의 블록체인 저장소는 DID 주체들이 널리 잘 알려진 중앙의 저장소 대신에 공개키를 보관하는 외부 공격에 저항성이 있는 블록체인 저장소를 선택한 것에 불과해서 〈그림5〉 하단의 저장소 기능은 주요 기능이 아닌 부수적 장치로 보는 것이 더 적절하다고 판단된다.
그리고 더 중요한 내용으로 개인 정보를 담고 있는 크레덴셜 정보는 발급기관에서 내 지갑으로 그리고 내가 원할 경우, 필요시 내 지갑에서 해당 크레덴셜 인증서를 서비스 기관 사이트에 제출하도록 시스템 구성이 되어 있다는 것이다. 크레덴셜 인증서를 블록체인에 기록하는 것으로 오해하거나, 그 해시값을 블록체인에 저장한다는 식의 잘못된 이해도 수정해야 한다.
3) 크레덴셜 인증서를 자기 주권 하에 선택적으로 제시할 수 있다.
결국 DID에서는 자기 주도하에 개인 정보의 유출이나 프라이버시 레벨을 자신이 통제하는 방식을 구현한 기술이다. 비트코인에서는 익명화된 거래 트랜잭션을 다수의 피어 시스템에 뿌리고 많은 노드에 분산 저장했다면, DID에서는 크레덴셜 정보는 블록체인 저장소와는 상관없이 별도로 필요한 사이트와의 접속을 통해 내 지갑에 있는 크레덴셜 증명서를 해당 사이트에 보내어 검증받도록 해, 프라이버시의 유출을 최소화하였다.
W3C 표준에서 정한 검증 가능한 크레덴셜(VC라고 명명한다)데이터 모델과 가이드라인을 보면 상세 내용을 확인할 수 있다.(참조, 〈그림6〉)
DID 왜 중요한가?
DID 기술이 왜 중요한지에 대해 앞서 프라이버시가 보장된 자기 주권 시대의 도래를 언급했다. 그리고 우리는 여전히 중앙화된 ID 시스템에 익숙해 있지만, 그 한계점에서 수많은 불편함과 번거로움을 참고 있기 때문에, DID는 표준화의 물살을 타고 확산될 것이다.
코인이 관련되지 않은 블록체인의 기초 기술이 내재된 DID는 향후 2025년 또는 그 이후인 2030년에 이르면 당연히 적용되고 상당히 많은 웹과 앱에 필수가 될 수 있을 것이고, 인증서에 대한 검증과 보안은 DID 기술로 구현될 것으로 예측된다.
다만 현재 다수의 DID 솔루션이 나와 있고, 표준 준수 여부도 관건이고, 표준에 따른다고 하더라도 발급기관이나 서비스 사용처, 지갑 등이 서로 다른 주체들이 만들어 놓은 DID 시스템간의 연동 이슈로 상호 호환에 대한 연구와 시범 운용이 테스트되고 있다.
이런 과정을 통해 자기 주권시대에 걸맞고 또한 자신의 신원인증, 자격인증을 안전하고 편리하게 비대면 시장에서 사용할 수 있는 DID 기술이 널리 확산되길 기대한다.
본 기고는 <BBR: Blockchain Business Review> 12월호에서도 보실 수 있습니다.