마이크로소프트(MS)가 분산화 신원인증(DIDs)을 개발하는 이유
안녕하세요, JOHN입니다.
약 일주일 전 MS가 분산화 신원인증(Decentralized IDs)을 개발하기 위해 블록체인을 활용할 것이라는 발표를 한 바 있습니다. 왜 MS와 같은 거대 기업이 이러한 dApp을 개발하려 하는지, 그 함의는 무엇인지에 대해 써보려고 합니다.
1. 원문(Decentralized Digital Identities and Blockchain – The Future as We See It)
1) 우리가 보는 것(What we see)
- Microsoft Identity Division의 Alex Simons는 MS blog를 통해 '분산화 디지털 신원과 블록체인 – 우리가 생각하는 미래'라는 글을 발표한다. 현대사회는 디지털 사회와 물리적 사회가 서로 얽히고 합쳐지는 디지털 변화를 겪고 있기에, 사람들의 사생활과 보안을 향상시키기 위해서는 디지털 ID에 관한 새로운 모델이 있어야 한다고 주장한다며 그 필요성을 제기한다.
- 그들은 이미 자사의 클라우드 신원확인 시스템을 통해, 수억 명의 사람들이 일하고 놀며 또 더 많은 것을 성취하는 데 기여해왔다고 말한다. 그러나 MS는 현재와 같은 신분증이 없더라도, 수십 억의 사람들이 아이를 기르고, 사업을 시작하며, 삶의 질을 향상시키는 등의 일을 할 수 있는 세상을 꿈꾼다고 한다. 그리고 이를 위해서는 (현재와 같이 어떤 서비스를 이용하기 전에 끊임없는 동의가 필요하거나, 서비스 제공업체에 ID 데이터를 이전시키지 것 없이) 각 개인이 자신의 신원 데이터를 직접 저장하고 통제할 수 있어야 한다고 말한다.
"우리 모두는 디지털 신원을 소유할 필요가 있습니다. 그리고 디지털 ID는 우리 신원에 관한 모든 요소들을 안전하고도 비밀스럽게 저장하고 있어야 하죠. 디지털 ID를 사용하는 것은 편리해야 하며, 동시에 신원 자료에의 접근과 이용 등을 완전히 통제할 수 있는 권한이 주어져야 합니다."
Each of us needs a digital identity we own, one which securely and privately stores all elements of our digital identity. This self-owned identity must be easy to use and give us complete control over how our identity data is accessed and used.
2) 우리가 배운 것(What we've learned)
- MS는 지금까지의 신분확인 시스템의 문제점을 지적하면서, 왜 분산화 ID시스템(DIDs)가 필요한지 다음과 같이 정리한다.
(1) 신원을 직접 소유하고 관리한다(Own and control your Identity)
- 오늘날 사용자가 앱이나 서비스를 이용하려면 자신의 ID에 관한 수집, 이용 및 보관에 관한 광범위한 동의를 요구받는다. 그러나 데이터 유출과 신원 도용 범죄가 빈번하면서도 정교해지고 있는 상황을 고려하면, 사용자는 자신의 신원을 보존할 수단이 필요하다. 그리고 블록체인 기술과 프로토콜이 분산형 ID(DIDs)를 구현하는 데 적합한 기술이라 판단된다.
(2) 철저한 프라이버시 중심정책(Privacy by design, built in from the ground up)
- 오늘날의 앱이나 기업들은 고객들의 ID 데이터에 기반해서 편리하고, 예측 가능하며 좀 더 맞춤화된 서비스를 제공한다. 이때 사용자 개인정보와 통제권을 유지하면서도, 사용자 데이터를 쓸 수 있는 안전한 암호화 허브(ID 허브)가 필요하다.
(3) 개인들이 얻고 공동체가 구축하는 신뢰(Trust is earned by individuals, built by the community)
- 전통적인 신원확인 시스템은 주로 인증 및 액세스 관리에 초점을 두고 있지만, 사용자가 직접 보유하는 ID 시스템은 진실함(authenticity)에 초점을 두고, 커뮤니티가 신뢰를 구축하는 법을 강조한다. 분산화 시스템에서 신뢰는 증명에 기초하고 있다. 즉, 다른 누군가가 나의 존재를 보증하는 것이 곧 자신의 존재를 입증하는 데 도움이 되는 것이다.
(4) 사용자 중심의 앱과 서비스(Apps and services built with the user at the center)
- 오늘날 가장 매력적인 앱들은 사용자의 개인식별정도(Personally Identifiable Information: PII)에 접근권을 얻어 맞춤화된 경험을 제공한다. 이때 분산화 ID(DID)와 ID 허브를 사용할 수 있다면, 개발자가 개인정보 처리과정에서 준수해야 하는 법률 및 규정에 관한 위험을 줄이면서도 더 정확한 증명 집합에 접근할 수 있게 된다.
(5) 개방형-상호운용성 구조(Open, interoperable foundation)
- 모든 사람이 접근할 수 있는 robust한 분산화 ID환경을 만들기 위해, 표준 오픈소스 기술과 프로토콜, 그리고 참조구현 등에 기반해야 한다. 우리는 Decentralized Identity Foundation (DIF)에 참여해 왔으며, 다음 주요 구성요소를 개발하기 위해 협력하고 있다.
1) 분산 식별자(DID: Decentralized Identifiers)
2) ID 허브(암호화된 ID 데이터 저장소)
3) Universal DID Resolver(블록체인으로 DID를 해결하는 서버)
4) Verifiable Credentials(DID 기반 증명을 인코딩하기 위해 문서형식을 정의하는 W3C 사양)
(6) 세계적 규모로의 대비(Ready for world scale)
- 방대한 규모의 사용자와 조직, 그리고 디바이스 등을 지원하기 위해서는 기반기술이 규모와 성능 면에서 기존 시스템과 유사한 수준이 되어야 한다. 몇몇 퍼블릭 블록체인(예를 들어, 비트코인, 이더리움, 라이트코인 등)은 DID를 루팅하고, DPKI 작업을 기록하며 인증을 확인하는 데 신뢰할 만한 플랫폼을 제공할 수 있다. 일부 퍼블릭 블록체인은 블록사이즈를 키우는 방식 등으로 체인 내(on-chain) 트랜잭션 용량을 키우려 하고 있지만, 일반적으로 이런 접근법은 분산화 네트워크의 상태를 질적으로 저하시키며, 세계적인 수준에서 발생할 수 있는 수백만 TPS에 결코 도달할 수 없다. 이러한 기술적 난관을 극복하고자, 퍼블릭 블록체인 상에서 실행할 분산화 Layer 2 프로토콜에 대해 협업하고 있다. 이 경우 세계적인 수준의 DID 시스템 속성을 보존할 수 있을 것이다.
다들 아시겠지만, 비트코인 캐시(BCH)를 저격하는 부분일 수 있습니다.
(7) 모든 사람들이 이용할 수 있는 기능(Accessible to everyone)
- 현재의 블록체인 생태계는 keys, 보안 장치 등을 관리하는 데 시간과 노력 등을 기꺼이 기울이는 초기의 얼리 어답터들이다. 물론 주류 사람들도 이러한 노력을 기울일 것이라 기대할 수는 없다. 그러므로 앞으로 핵심적인 관리문제, 즉 복구, 보안 액세스, 그리고 사용자가 이용하기 편하고 직관적이어야 하는 것 등을 해결해야만 한다.
3) 다음 단계들(Our next steps)
- 향후 분산화 신분확인에 관한 실험을 진행하기 위해, Microsoft Authenticator app에 지원 기능을 추가할 것이다. 사용자의 동의를 받으면, Microsoft Authenticator는 Agent로서 ID 데이터와 암호화 키를 관리할 수 있다. ID만 체인 내(on-chain)에 담기고, ID 데이터는 암호화 키를 통해 암호화된 체인 외의(off-chain) ID허브(마이크로소프트는 볼 수 없는)에 저장되도록 디자인된다.
- 이 기능을 추가하고 나면, 앱은 세부적인 동의를 요청함으로써 공통의 메시지 전달기제를 통해 고객 데이터와 상호 작용할 수 있다.
2. 왜 MS는 DID를 개발하는가 : 분산화 신분인증의 실용적 중요성
현재의 인터넷 기술은 중립적인 정보를 공유하는 데는 유용하지만, 가치를 담고 있는 정보를 공유하는 데는 큰 제약이 있다. 그리고 현실에서 가장 중요한 가치를 담고 있는 정보는 바로 '신원(ID)'에 관한 정보다. 나의 신원정보를 다른 누군가가 마음대로 복제할 수 있게 된다면, 인터넷 환경에서 '나'라는 존재가 무한대로 복제될 수 있음을 뜻한다. 그렇다면 복제본이 진본의 금융계좌를 마음대로 통제할 수 있고, 공적인 서비스마저 서슴지않고 이용할 수 있게 된다. 이러한 이유로 현재의 인터넷 환경에서 신원정보를 공유하려면, 반드시 '신뢰할 수 있는 제 3자 기관(TTP)'이 보증한 인증서가 필요하게 된다. 내가 '진짜 나'라는 사실을 제 3의 기관이 대신해서 입증해주는 것이다. 이 점을 감안해보면, 정부 사이트나 금융 어플리케이션 등에서 일련의 서비스를 이용하는 데 왜 공인인증서를 요구하는지 알 수 있을 것이다.
그런데 현재의 신원정보를 이용하고, 관리하는 데는 상당한 번거로움과 문제점이 존재한다. 첫째, 공인인증서의 발급과 이용상의 불편함이다. 인터넷을 통해 앱과 각종 서비스를 이용하려면 공인인증서를 통한 ID 인증이 필수적인데, 그 인증서를 발급하는 과정과 이용에는 상당한 시간적인 마찰(friction)이 유발된다. 즉, 내가 나임을 입증하는 일에 상당한 자원을 낭비하고 있는 것이다.
둘째, 신원 데이터의 유출과 도용범죄의 우려다. 현재의 인터넷 환경에서 각종 앱이나 서비스를 이용하려면, 서비스 이용자에게 개인정보를 수집하고 이용할 권한 등을 모두 허용해줘야 한다. 이때 사용자에게는 자신의 개인정보를 통제할 능력이나 수단이 존재하지 않지만, 서비스 제공자는 방대한 사용자 개인정보를 중앙서버에 저장해놓게 된다. 이런 경우 어떤 문제가 생길 수 있을까? 그 문제는 이미 우리사회가 수차례 겪었던 문제들이다. 2014년에 일어났던 카드사 개인정보 유출사건을 기억해보라! 이 외에도 옥션, 넥슨, 네이트 등 대기업이 보유한 사용자의 개인정보 유출사고는 빈번하게 일어났다. 현재의 시스템 하에서는 부주의에 의해서든, 악의에 의해서든 사고가 발생하는 것을 미연에 방지할 수 없고, 그 피해는 극심하다. 한 번 개인정보가 유출되고 나면 끈질긴 스팸에 시달리는 것은 예사의 일이며, 극단적으로는 범죄행위의 피해자가 될 수도 있다.
카드사 개인정보 유출사건 : 2014년 신용평가 업체(KCB)의 직원이 'KB국민카드, NH농협카드, 롯데카드 등의 고객개인정보'를 대출광고업체에 불법적으로 유출한 것이 밝혀진 사건이다. 유출된 개인정보의 규모는 약 1억 건으로, 거의 모든 경제활동인구의 정보가 흘러나갔다고 해도 될 법하다. 유출된 정보의 내역도 아래 그림처럼 방대하고, 내밀한 정보들이 모두 포함되어 있었다.
블록체인 기반에서 신원확인(ID)을 지원하는 dApp이 생겨나면, 앞서 본 문제점들을 모두 해소할 수 있다. 개인정보가 왜곡되는 것을 방지할 수 있고, 사용자에게 모든 개인정보를 위탁하지 않고도 신원을 인증할 수 있어 정보유출 문제도 없다. 또 개인이 각자 자신의 신원정보를 통제할 권한마저 보유할 수 있다. 진정으로 각 개인이 자신의 신원정보의 주인이 되는 것이다.
한편 안전하고 효율적인 신원인증 시스템의 가장 큰 수요자는 국가라는 점을 생각해보면, 분산화 신분인증 시스템의 중요성이 더 커진다. 국가는 국경 내에서 활동하는 모든 인구의 개인정보를 생성하고, 보유하며, 관리할 의무가 있다. 나아가 효율적인 정부서비스를 지원하기 위해서는 국민들의 개인정보를 효율적으로 관리할 필요도 있다. 실제의 예를 들어보자. 미국 국세청(IRS)은 소득세 납부 및 환급을 처리할 때, 신원을 확인할 수 있는 개인식별번호(PIN) 코드를 이용한 적이 있다. 그러나 IRS는 해커들에 의해 납세정보가 유출된 적이 잦았고, 해커들은 그 납세정보를 악용해 PIN을 발급받은 후 그들의 은행계좌로 수백건의 세금환급을 받은 바 있다. 만일 블록체인 기반의 분산화 신분인증 기술이 성공적으로 정착된다면, 이런 세금사기를 근절할 수 있고, 더 빠르고 안전한 정부서비스를 제공할 수 있다. 그렇다면 당연히 정부가 DIDs 시스템을 사용하지 않을까?
그렇다면 MS가 DIDs 앱을 개발할 경제적 유인도 충분하다. 생각해보라. 현재 인터넷 환경에서 '구매력'을 요구하는 앱이나, 금융서비스 및 정부서비스 등을 제공받기 위해서는 신원인증이 필수적이다. 그런데 기존의 신원인증은 몹시 느리고, 위험하며, 비효율적이었다. 이런 상황에서 안전하고도 빠른 신원인증 서비스가 생겨난다면, 그야말로 블루오션이 아닐까? MS가 고려하고 있는 기술적 문제(Layer 2 프로토콜 등)가 성공하기만 하면, 단 몇 초만에 은행계좌를 만들고 페이스북에 가입하며, 정부서비스를 제공받을 수 있다. 사용자들의 노력과 시간이 경감되고 비용이 줄어들 수 있다. 자연스럽게 분산화 신원인증의 수요가 늘어날 것이고, 많은 서비스 제공자들로부터 러브콜을 받게 될 것이다. 사실 분산화 신원인증(DIDs) dApp이야말로 모든 앱과 서비스를 연결시킬 킬러앱이라 할 수 있다. 신원인증없이 중요한 서비스를 제공받는 것은 상상할 수 없으니까.
남은 것은 기술적 이슈다. 분산화 신원인증 dApp이 블록체인 기반이기에 안전성은 충족되지만, 충분한 '속도'가 보장되지 않으면 현재의 신원인증 시스템을 결코 대체할 수 없다. 그래서 MS는 라이트닝 네트워크와 같은 '레이어 2 시스템(Layer 2 System)'을 고려하고 있는 것이다. 이때 레이어 2 시스템이란 확장성 문제를 해결하기 위한 해법으로서, 블록체인 위에 추가적인 데이터 레이어를 생성시킨 후 블록체인 정보를 서로 주고 받으면서 트랜잭션 정보를 동기화하는 것이다. 라이트닝 네트워크는 결제 채널을 열고 닫는 두 과정 간의 거래들을 블록체인에 기록하지 않기에, 컨펌을 기다릴 필요 없이 승인을 빠르게 처리할 수 있다. 그렇다면 MS의 DIDs도 유사한 메커니즘으로 움직일 것이다. ID 허브에 저장되어 있는 ID 데이터가 오프체인 트랜잭션으로 신속하게 승인되고, 그 결과만이 블록체인 상에 저장되는 것이다.
분산화 신원인증 시스템이 성공적으로 개발되면, 우리의 삶은 훨씬 더 안전하고 효율적으로 변할 수 있다. 이런 가능성 때문에 MS가 관심을 갖는 것이고, 여러 블록체인들이 앞다투어 개발하려 애쓰고 있다. Brendan Blumer은 현존하는 수많은 퍼블릭 블록체인들 중 가장 먼저 분산화 ID 인증기술을 실현하고, 블록체인 상에 가장 많은 ID를 기록하는 것만이 게임의 승자가 될 것이라 단언한 바 있다. 물론 나도 그 생각에 전적으로 동감한다. 우리가 현재 즐겨 쓰고, 사랑하는 서비스들과 앱들이 머지 않아 블록체인 상에서 구현될 날이 올 것이다. 그 때가 오면 아마 몇 초만에 은행계좌를 만들 수 있고, 안전하고도 즉각적인 정부서비스를 받을 수 있으며, 커뮤니티 상에서 결코 스팸계정이라 오인받을 수 없을 것이다.
- 이것으로 본 포스팅을 마무리하려 합니다. 한 가지 첨언하자면, 본 포스팅에서 언급하지는 않았지만 신원인증(Identity)에 관한 이슈는 철학적인 이슈들로 가득차 있습니다. Identity라는 것은 커뮤니티에서 신뢰(trust)를 보장하는 중요한 요소이고 또 동시에 익명성과 프라이버시, 이 두 가치 간의 상충관계를 다루는 데 있어 중요한 요소이기 때문입니다. 충분하지는 않지만 이 이슈에 관해 포스팅한 적 있으니 관심이 있으신 분은 IDENTITY, 댄 라리머, 그리고 EOS LIFE를 참고하세요! 이 포스팅에는 EOS의 신원인증 dApp 프로젝트, EOS LIFE에 대한 짧은 서술도 있습니다.
좋은 글 감사합니다 :)
저도 늘 좋은 글들 잘 읽고 있습니다. 응원합니다 :)
리스팀 합니다. 담아 놓고 eos life 까지 정독해 봐야겠습니다. 좋은 글 감사합니다.
읽어주셔서 깊이 감사드립니다 :)
리스팀 해서 담아놓고 잘 읽었습니다. 감사합니다 ^^
감사합니다 :)
그렇군요. 다가올 미래에 어떤 것이 더 중요한 것인지 조금씩 눈이 떠지는 느낌입니다. 좋은 글 잘 읽고 또 많이 배웁니다. 감사합니다.
읽어주셔서 감사합니다 :)