오늘날 신원 증명은 사실상 삶의 모든 부분을 뒷받침하고 있습니다. 온라인 서비스 이용, 은행 계좌 개설, 선거 투표, 재산 구매, 고용 보장 등 이 모든 활동에는 신원 증명이 필요합니다.
그러나 기존 신원 관리 시스템은 오랜 기간동안 중앙 집권적인 중개자에게 의존해 왔으며, 중개자가 귀하의 신원과 인증 정보를 발급, 소유 및 증명했습니다. 즉, 귀하의 신원 관련 정보를 직접 관리하거나 개인 식별 정보(PII)에 누가 얼마나 접근할 수 있는지 또한 귀하가 제어할 수 없다는 것을 의미합니다.
이 문제를 해결하기 위해 이더리움과 같은 공개 블록체인에 분산 신원 증명 시스템이 도입되었습니다. 분산 신원 증명으로 개인이 직접 자신의 신원 관련 정보를 관리할 수 있습니다. 분산 신원 증명 솔루션을 통해 서비스 제공자나 정부 등 중앙 기관에 의존하지 않고도 자신의 식별자를 직접 제작하고 인증 정보를 획득, 소유할 수 있습니다.
신원이란 무엇인가요?
신원은 개인의 고유한 정보를 바탕으로 정의되는 개인 증명 수단입니다. 신원은 개인, 즉 구별되는 인간 개체를 의미합니다. 또한 신원은 조직이나 기관과 같은 인간이 아닌 주체를 의미할 수도 있습니다.
식별자란 무엇인가요?
식별자는 특정 신원의 포인터 역할을 하는 정보입니다. 일반적인 식별자는 다음과 같습니다.
- 이름
- 주민등록번호 및 납세자 식별 번호
- 휴대 전화 번호
- 생년월일 및 출생지
- 이메일 주소, 사용자 이름, 프로필 사진 등의 디지털 신원 정보
이러한 기존 식별자는 중앙 기관에 의해 발급, 소유, 관리됩니다. 이름을 바꾸기 위해서는 정부의 허가가 필요하고, 닉네임을 바꾸기 위해서는 소셜 미디어 플랫폼의 허가를 받아야 합니다.
증명이란 무엇인가요?
증명이란 한 개체에 의해 만들어진 다른 개체에 대한 주장입니다. 예를 들어, 미국에 거주하는 경우 미국의 도로 교통 공단(한 주체)에서 발급한 운전 면허증은 본인(다른 주체)이 법적으로 자동차를 운전할 수 있음을 증명합니다.
증명은 식별자와 다릅니다. 증명은 특정 신원을 파악할 수 있도록 신원 정보를 포함하며 그 신원과 관련된 정보를 주장합니다. 즉, 운전 면허증은 식별자(성명, 생년월일, 주소)를 포함할 뿐만 아니라 운전할 수 있는 법적 권리에 대한 증명이기도 합니다.
분산 식별자는 무엇인가요?
법적 이름 또는 이메일 주소 같은 기존 식별자는 정부와 이메일 제공자 같은 제3자에 의존합니다. 분산 식별자(DID)는 다릅니다. 중앙 개체에 의해 발급, 관리, 제어되지 않습니다.
분산 식별자는 개인이 발급, 소유, 관리합니다. 이더리움 계정은 분산 식별자의 예시입니다. 누군가의 허락 없이 원하는 만큼 많은 계정을 만들 수 있으며, 중앙 저장소에 보관해야 할 필요도 없습니다.
분산 식별자는 분산 원장(블록체인) 또는 P2P 네트워크에 저장됩니다. 이는 DID를 유일하고, 높은 가용성과 활용성을 지니며, 암호화 검증이 가능(opens in a new tab)하게 만듭니다. 분산 식별자는 개인, 조직 또는 정부 등 다른 개체와 연결될 수 있습니다.
분산 식별자는 어떻게 가능한가요?
1. 공개 키 기반 구조(PKI)
공개 키 기반 구조(PKI)는 특정 주체를 위해 와 를 생성하는 정보 보안 장치입니다. 공개 키 암호화 기법은 블록체인 네트워크에서 사용자의 신원을 인증하고 디지털 자산의 소유권을 증명하는 용도로 사용됩니다.
이더리움 계정과 같은 일부 분산 식별자에는 공개 키와 개인 키가 있습니다. 공개 키는 계정의 제어자를 식별하는 반면, 개인 키는 이 계정의 메시지에 서명하거나 메시지를 해독할 수 있습니다. PKI는 주체를 인증하는 데 필요한 증명을 제공하고, 암호화 서명(opens in a new tab)을 통해 모든 주장을 검증함으로써 명의 도용 및 허위 신원 사용을 방지합니다.
2. 분산형 데이터 보관
블록체인은 검증 가능한 데이터 레지스트리의 역할을 합니다. 즉, 개방되어 있고, (주로 중앙 집권적인) 특정 주체를 신뢰하지 않아도 되며, 탈중앙화된 정보 저장소입니다. 공용 블록체인은 중앙 집권적인 레지스트리에 식별 정보를 저장해야 할 필요를 제거합니다.
분산 식별자의 유효성을 확인해야 하는 경우, 블록체인에서 연관된 공개 키를 조회해 볼 수 있습니다. 이것이 인증에 제3자가 필요한 기존의 식별자와 다른 점입니다.
분산 식별자와 증명이 어떻게 분산 신원 증명을 가능하게 하나요?
분산형 신원 증명은 신원 관련 정보는 소유자 본인이 제어하고 보호 및 이동 가능한 형태여야 한다는 아이디어를 분산형 식별 정보와 증명을 주요 기반으로 구현한 것입니다.
분산형 신원 증명의 관점에서 증명(= 검증 가능한 인증 정보(opens in a new tab))이란, 발행자가 만든 위조 불가능하고 암호학적으로 검증 가능한 주장을 말합니다. 한 주체(예: 조직)에서 발급하는 모든 증명 또는 검증 가능한 인증 정보는 해당하는 DID에 연계됩니다.
DID는 블록체인에 저장되기 때문에 누구든지 이더리움에서 발급자의 DID를 대조하여 증명의 유효성을 검증할 수 있습니다. 본질적으로 이더리움 블록체인은 특정 주체에 연계된 DID를 인증할 수 있게 하는 글로벌 디렉터리와 같은 역할을 합니다.
분산형 식별 정보는 증명이 자체적으로 제어되고 검증될 수 있기 때문에 가능한 것입니다. 발급자가 더 이상 존재하지 않더라도 소유자는 언제든지 증명의 경로와 유효성을 검증할 수 있습니다.
분산형 식별 정보는 또한 분산형 신원 증명을 통해 개인 정보를 보호하는 데에도 중요한 역할을 합니다. 예를 들어, 개인이 증명(운전 면허증 등)을 제출하는 경우 검증하는 주체는 증명에 포함된 정보의 유효성을 확인하지 않아도 됩니다. 대신, 검증자는 증명의 진위와 발급 기관의 신원에 대한 암호화 보증만 확인하면 증명이 유효한지 판단할 수 있습니다.
분산형 신원 증명에서 증명 방식의 종류
이더리움 기반 신원 증명 생태계에서 증명 정보가 보관되고 제공되는 방법은 기존의 신원 관리 시스템과 다릅니다. 분산형 신원 증명 시스템에서 증명을 발급, 저장 및 인증하기 위한 다양한 접근 방식은 다음과 같습니다.
오프체인 증명
온체인으로 증명을 저장할 때 발생하는 문제점 중 하나는 해당 정보에 개인이 비공개로 유지하고자 하는 정보가 포함될 수도 있다는 부분입니다. 이더리움 블록체인은 공개적이라는 특성이 있기 때문에 이러한 증명을 저장하기에 부적절해 보일 수 있습니다.
이 문제는 사용자가 디지털 지갑에서 오프체인으로 보유하고 있지만 온체인에 저장된 발급자의 DID로 서명된 증명을 발급함으로써 해결할 수 있습니다. 해당하는 증명은 JSON 웹 토큰(opens in a new tab)으로 인코딩되고 발급자의 디지털 서명을 포함하므로, 간편하게 오프체인 클레임의 인증에 사용될 수 있습니다.
다음은 오프체인 증명을 설명하는 가상 시나리오입니다.
한 대학교(발급자)가 증명(디지털 학위 증명서)을 생성한 후 대학교의 키로 서명하고, 이를 Bob(ID의 소유자)에게 발급합니다.
Bob이 회사에 지원하기 위해 학위를 증명해야 할 때 모바일 지갑에서 해당 증명을 꺼내 회사에 제출할 수 있습니다. 회사(검증자)는 발급자의 DID(예: 이더리움 상의 공개 키)를 확인하여 증명의 유효성을 검증할 수 있습니다.
영구 액세스 권한이 있는 오프체인 증명
오프체인 인증 방식에서 증명은 JSON 파일로 변환된 후 오프체인(이상적으로는 IPFS 또는 Swarm과 같은 탈중앙화된 클라우드 스토리지 플랫폼)에 저장됩니다. 한편, 해당 JSON 파일의 값은 온체인으로 저장되며 온체인 레지스트리를 통해 DID에 링크됩니다. 연계되는 DID는 해당 증명의 발급자의 것이거나 수신인의 것일 수도 있습니다.
이러한 방식은 증명이 블록체인 기반으로 영구 보관되는 동시에 민감한 정보는 암호화되어 필요시 검증할 수 있게 합니다. 또한 해당 증명은 개인 키의 소유자만이 복호화하여 정보를 확인할 수 있으므로, 선택적인 공개를 가능하게 합니다.
온체인 증명
온체인 증명은 이더리움 블록체인의 스마트 계약에서 이루어집니다. 스마트 계약(레지스트리 역할)은 해당하는 온체인의 분산형 식별 정보(공개 키)에 증명을 매핑합니다.
아래는 온체인 증명이 실제로 어떻게 작동하는지를 보여주는 예시입니다.
한 기업(XYZ 회사)이 스마트 계약을 통해 주식을 판매하고자 하며, 신원이 증명된 사람에게만 구매를 허용하려고 합니다.
XYZ 회사는 이더리움의 온체인 증명을 통해 개인의 신원 조회를 진행할 수 있습니다. 이러한 증명은 개인 정보를 노출하지 않고 개인의 신원 조회가 가능하게 합니다.
주식을 판매하는 스마트 계약은 레지스트리 계약에서 선별된 구매자의 신원을 확인할 수 있으므로 스마트 계약이 누가 주식을 살 수 있는지 여부를 결정할 수 있습니다.
소울바운드 토큰과 신원 증명
소울바운드 토큰(opens in a new tab)(양도 불가한 NFT)은 특정 지갑에 국한된 고유한 정보를 수집하는 데 사용될 수 있습니다. 이는 개인적인 성취(특정 온라인 강의 완료 또는 게임에서 높은 점수 획득 등)나 특정 커뮤니티에 참여 등을 증명하기 위한 토큰과 같은 온체인 신원 증명이 특정 이더리움 주소에만 고유하게 소속될 수 있게 만듭니다.
분산형 신원 증명의 장점
분산형 신원 증명은 식별하는 정보에 대한 개인의 관리 권한을 강화합니다. 분산형 식별 정보 및 증명은 중앙 집권적인 기관이나 제3자 서비스에 의존하지 않고도 확인될 수 있습니다.
분산형 신원 증명 솔루션은 사용자 신원 관리 및 검증이 더욱 원활하고, 보호적이며, 특정 기관에 대한 신뢰 없이 이루어질 수 있게 합니다.
분산형 신원 증명은 블록체인 기술을 활용함으로써, 서로 다른 주체 간에 신뢰 관계를 구축하고, 증명의 유효성을 검증할 수 있는 암호화 기법을 제공합니다.
분산형 신원 증명은 신원 데이터를 휴대 가능하도록 합니다. 사용자는 증명 및 식별 정보를 모바일 지갑에 저장하고, 필요할 때 원하는 상대방과 공유할 수 있습니다. 분산형 식별 정보와 증명은 발행 기관의 특정 데이터베이스에 고정되지 않습니다.
분산형 신원 증명은 개인이 특정 정보를 공개하지 않고도 자신이 소유하거나 실행한 작업을 증명할 수 있게 하는 새로운 영지식 기술과 원활하게 작동합니다. 이는 투표와 같은 애플리케이션에 대한 신뢰와 개인 정보를 결합하는 강력한 방법이 될 수 있습니다.
분산형 신원 증명을 통해 반시빌(anti-Sybil) 메커니즘을 사용하여 한 사람이 게임 상에서 여러 사람인 것처럼 속이거나 특정 시스템을 스팸하는 행위를 식별할 수 있습니다.
분산형 신원 증명 사용 사례
분산형 신원 증명은 다양한 곳에 사용될 수 있습니다.
1. 보편적 로그인
분산형 신원 증명은 비밀번호 기반 로그인을 탈중앙화 인증(opens in a new tab)으로 대체할 수 있게 합니다. 서비스 제공자는 사용자에게 증명을 발행할 수 있으며, 해당 증명은 이더리움 지갑에 저장됩니다. 증명의 예시로, 소유자가 특정 온라인 커뮤니티에 액세스할 수 있게 하는 NFT가 있을 수 있습니다.
그 후 이더리움 로그인(opens in a new tab) 기능은 서버가 사용자의 이더리움 계정을 확인하고 해당 계정 주소로부터 필요한 증명 정보를 가져올 수 있도록 합니다. 즉, 사용자는 긴 비밀번호를 기억하지 않고도 플랫폼이나 웹사이트에 액세스할 수 있으며, 이는 사용자의 온라인 환경을 향상합니다.
2. KYC 인증
다양한 온라인 서비스를 사용하려면 개인은 운전면허증이나 여권과 같은 증명을 제공해야 합니다. 이러한 방식은 사용자의 개인 정보가 노출될 수 있고, 서비스 제공 업체가 자체적으로 증명을 인증할 수 없다는 문제가 있을 수 있습니다.
분산형 신원 증명을 통해 회사는 기존의 KYC(Know-Your-Customer)(opens in a new tab) 절차를 건너뛰고, 이른바 "검증 가능한 인증 정보"를 통해 사용자 인증을 진행할 수 있습니다. 이는 신원 관리 비용을 절감하는 한편 허위 문서의 사용 등을 방지합니다.
3. 투표 및 온라인 커뮤니티
온라인 투표와 소셜 미디어는 분산형 신원 증명을 사용한 가장 놀라운 예시입니다. 온라인 투표는 특히 악의적인 사용자가 허위 신원을 만들어서 투표할 수 있기 때문에 조작에 취약합니다. 이때 개인이 온체인 증명을 제공하도록 요청한다면 온라인 투표 과정의 신뢰도를 개선할 수 있을 것입니다.
분산형 신원 증명은 허위 계정이 불가능한 온라인 커뮤니티를 만들 수 있게 지원합니다. 예를 들어, 각 사용자가 ENS(이더리움 이름 서비스) 등의 온체인 신원 증명 시스템을 사용하여 신원을 증명하게 함으로써 허위 계정을 막을 수 있습니다.
4. 반시빌(Anti-Sybil) 보호
시빌(Sybil) 공격은 개인이 자신의 영향력을 늘리기 위해 여러 사람인 것처럼 시스템을 속이는 행위를 말합니다. 2차 투표(opens in a new tab)를 사용하는 보조금 제공 애플리케이션(opens in a new tab)은 이러한 시빌 공격에 취약합니다. 더 많은 개인이 투표할 때 보조금의 가치가 증가하므로 사용자가 기여금을 여러 ID로 분할하도록 유도하기 때문입니다. 분산형 신원 증명은 특정 개인 정보를 공개하도록 요구하지 않는 경우가 많지만, 각 참가자가 실제 사용자임을 증명해야 하는 부담을 줌으로써 이를 방지하는 데 도움이 됩니다.
분산 신원 증명을 사용하세요
분산 신원 증명 솔루션을 위한 기반으로 이더리움을 사용하는 야심 찬 프로젝트가 많이 있습니다.
- 이더리움 이름 서비스(ENS)(opens in a new tab) - 이더리움 지갑 주소, 콘텐츠 해시, 메타데이터 등 온체인 기반 컴퓨터용 식별 정보를 위한 탈중앙화 이름 시스템입니다.
- SpruceID(opens in a new tab) - 사용자가 제3자 서비스에 의존하지 않고 이더리움 계정과 ENS 프로필을 이용하여 디지털 신원을 직접 관리할 수 있도록 하는 분산 신원 증명 프로젝트입니다.
- EAS(Ethereum Attestation Service)(opens in a new tab) - 모든 것에 대한 온체인 또는 오프체인 증명을 만들 수 있는 탈중앙화된 장부/프로토콜입니다.
- 인간 증명(opens in a new tab) - 인간 증명(PoH: Proof of Humanity)은 이더리움 기반의 소셜 신원 증명 시스템입니다.
- BrightID(opens in a new tab) - 소셜 그래프를 만들고 분석함으로써 신원 증명을 개혁하고자 하는 탈중앙화된 오픈소스의 소셜 신원 증명 네트워크입니다.
- 개인 증명 여권(opens in a new tab) - 탈중앙화 디지털 신원 정보 종합 플랫폼입니다.
더 읽을 거리
문서
- 블록체인 사용 사례: 디지털 신원 증명 블록체인(opens in a new tab) — ConsenSys
- 이더리움 ERC725란 무엇인가요? 블록체인의 자기 주권 신원 관리(opens in a new tab) — Sam Town
- 블록체인은 어떻게 디지털 신원 문제를 해결하는가(opens in a new tab) — Andrew R. Chow
- 분산 신원이란 무엇이며, 왜 중요한가?(opens in a new tab) — Emmanuel Awosika
영상
- 분산 신원 증명 (보너스 실시간 세션)(opens in a new tab): Andreas Antonopolous의 분산 신원 증명에 대한 설명 영상
- Ceramic, IDX, React, 3ID Connect를 사용하여 이더리움과 분산 신원 증명에 로그인하기(opens in a new tab): Nader Dabit의 이더리움 지갑을 사용하여 사용자 프로필을 생성, 조회, 업데이트하기 위한 신원 관리 시스템을 구축하는 유튜브 튜토리얼
- BrightID - 이더리움의 분산 신원 증명(opens in a new tab): 이더리움을 위한 분산 신원 증명 솔루션인 BrightID에 대해 얘기하는 Bankless 팟캐스트 에피소드
- 오프체인 인터넷: 분산 신원 증명 & 검증 가능한 증명서(opens in a new tab) — Evin McMullen의 2022년 EthDenver 발표
커뮤니티
- GitHub의 ERC-725 연합(opens in a new tab): 이더리움 블록체인에서 신원 관리를 위한 ERC 725 표준의 지원자
- SpruceID 디스코드 서버(opens in a new tab): 이더리움 로그인을 개발 중인 개발자와 매니아의 커뮤니티
- Veramo Labs(opens in a new tab): 애플리케이션의 검증 가능한 데이터를 위한 프레임워크 개발자의 커뮤니티