DID가 다른 식별자와 다른 이유 설명
2019년 9월 일본 후쿠오카에서 열린 W3C DID 워킹 그룹 회의에서 언급한 바와 같이 현재 DID(탈중앙화 식별자) v1.0 핵심 아키텍처, 데이터 모델 및 표현에 대한 W3C 권장 사항으로 게시된 DID 사양 개발에 자금을 지원한 데는 네 가지 이유가 있습니다.
- “영구적(지속적) 식별자” - DID는 지속적으로 설계되었습니다. 이는 “DID 컨트롤러의 동의 없이는 제3자가 DID를 제거하거나 작동할 수 없음”을 의미합니다.
- “확인 가능한 식별자” - DID는 확인 가능한 식별자입니다. 즉, 메타데이터를 검색하는 등 해당 DID와 연결된 항목을 찾기 위해 조회할 수 있음을 의미합니다. DID가 확인하는 정보는 DID 문서입니다.
- “암호화 방식으로 확인 가능한 식별자” - DID는 암호화 방식으로 확인할 수 있는 식별자입니다. 즉 DID, DID 컨트롤러를 제어하는 엔터티가 암호화를 사용하여 식별자를 제어할 수 있음을 의미합니다.
- “탈중앙화 식별자” - DID는 탈중앙화 식별자입니다. 즉, DID를 만들고 관리하는 단일 등록 기관이 없습니다. DID는 확인 가능한 데이터 레지스트리라고도 하는 탈중앙화 네트워크를 사용하여 트랜잭션을 등록하고 기록합니다. 이러한 레지스트리는 분산 원장, 블록체인, 분산 파일 시스템 또는 기타 신뢰할 수 있는 데이터 스토리지일 수 있습니다. DID가 사용할 수 있는 확인 가능한 데이터 레지스트리에는 여러 가지 유형이 있습니다. 사용되는 접근 방식은 DID 메서드에 따라 달라집니다.
이러한 네 가지 이유는 DID의 핵심 속성 역할을 합니다. 이러한 속성 중 일부를 충족할 수 있는 기존 식별자가 있지만 이러한 네 가지 속성을 모두 충족하는 새로운 형식의 식별자는 DID가 처음입니다.
확인 가능한 DID 및 DID 문서
일반적으로 식별자를 생각해보면 식별자는 특정 정보를 제공하거나 상호 작용 또는 통신을 가능하게 하는 애플리케이션의 컨텍스트에서 사용될 때 가치가 있습니다. 예를 들어 식별자의 일종인 URL은 실제로 웹 브라우저에 입력되어 사용할 수 있는 웹 페이지를 반환할 때만 가치가 있습니다. 이 컨텍스트에서 URL은 웹 페이지로 확인됩니다. DID에도 동일한 개념이 적용되지만 웹 브라우저를 사용하여 웹 페이지를 확인하는 대신 DID는 확인자라고 하는 소프트웨어 또는 하드웨어를 사용하여 DID 문서를 반환합니다.
DID 문서는 공개적으로 사용 가능한 데이터 세트로, DID로 식별되는 엔터티를 DID 주체로 설명합니다. DID(탈중앙화 식별자) v1.0에 대한 W3C 권장 사항은 DID 문서의 핵심 속성을 정의합니다. 핵심 속성에는 다음이 포함됩니다.
- 확인 메서드 - 여기에는 암호화 퍼블릭 키와 연결된 메타데이터가 포함됩니다. 예를 들어 암호화 퍼블릭 키를 디지털 서명을 위한 확인 방법으로 사용할 수 있습니다.
- 서비스 - 서비스는 DID 주체와 통신하거나 상호 작용하는 데 사용됩니다. 여기에는 주제가 광고하려는 정보가 포함될 수 있습니다. 이러한 예제에는 확인 가능한 자격 증명 리포지토리 서비스, 파일 스토리지 서비스, 에이전트 서비스 등이 포함될 수 있습니다. 이러한 엔드포인트는 HTTP URL과 같은 네트워크 주소로 표시되는 서비스 엔드포인트로 표시됩니다.
이는 DID 문서에 일반적으로 포함되는 데이터의 몇 가지 예입니다. DID 문서는 DID를 사용하는 애플리케이션 및 서비스에서 사용하는 공개적으로 사용할 수 있는 문서입니다(최종 사용자 사용을 위한 것은 아님). DID 문서에는 퍼블릭 키, 서비스 엔드포인트, 기타 메타데이터와 같은 DID 주체를 설명하는 정보가 포함되어 있지만 주체에 대한 개인 데이터는 포함되지 않아야 합니다. 공개적으로 사용할 수 있는 문서로서 원하는 상호 작용 또는 통신을 지원하는 데 필요한 최소한의 정보를 포함하는 것이 가장 좋습니다.
DID 및 퍼블릭 키 암호화
DID 컨트롤러가 식별자에 대한 제어를 증명하는 방법을 이해하려면 퍼블릭 키 암호화에 대해 조금 알아두는 것이 좋습니다.
DID는 퍼블릭 키 암호화라고도 하는 비대칭 암호화를 사용합니다. 퍼블릭 키 암호화는 퍼블릭 및 프라이빗 키 쌍을 사용하며 암호화를 통해 정보를 보호하고 디지털 서명을 통해 신뢰성 및 동의 증명을 설정하는 데 사용됩니다. 자세한 내용은 암호화 개념 설명을 참조하세요. 퍼블릭 키 암호화를 사용하면 광범위하게 공유되는 퍼블릭 키가 실제로 사기꾼이 아니라 사용자가 예상하는 엔터티에서 온 것인지 확인하는 것이 과제입니다. 즉, 엔터티를 나타내는 식별자에 퍼블릭 키를 어떻게 바인딩할 수 있나요? 기존 퍼블릭 키 암호화에서는 중앙 집중식 PKI(퍼블릭 키 인프라)를 구성하는 신뢰할 수 있는 중앙 집중식 CA(인증 기관)의 디지털 인증서를 통해 이러한 신뢰가 구축됩니다. 그러나 DID의 속성은 탈중앙화되어 있어 CA에 종속될 필요가 없다는 점입니다. DID는 메서드별 식별자가 퍼블릭 키와 관련된 정보에서 직접 또는 간접적으로 파생되므로 이 문제를 해결합니다. 이렇게 하면 DID가 중앙 집중식 CA 없이 기본적으로 퍼블릭 키에 바인딩됩니다. 결과적으로 DID를 제어하는 엔터티는 암호화를 사용하여 해당 식별자에 대한 제어를 증명할 수 있습니다. 이를 통해 DID는 일종의 분산된 퍼블릭 키 인프라를 사용합니다.
DID가 퍼블릭 키를 기반으로 하는 접근 방식은 보안을 위해 암호화 키를 회전해야 하는 경우 DID가 변경되어야 한다는 것을 의미합니다. DID를 변경해야 하는 것은 DID가 영구적이라는 속성과 모순됩니다. DID 문서에서 이 문제를 다룹니다. 키를 변경해야 하는 경우 DID 컨트롤러는 새 퍼블릭 키를 포함하지만 원래 프라이빗 키로 서명된 DID 문서에 업데이트를 게시할 수 있습니다. 원래 공개 키를 DID 문서의 원래 버전으로 다시 추적할 수 있으므로 DID 문서에 대한 업데이트를 인증할 수 있습니다. 이 방법은 업데이트 전체에 신뢰 체인을 구축합니다. 개념적으로 현재 소프트웨어 버전이 하나만 있는 소프트웨어 버전 제어와 유사하다고 생각할 수 있지만 이전 버전에서 다시 추적하여 업데이트된 내용을 확인할 수 있습니다.