DID(分散型ID)とは?基本的な概念を解説!

DIDとは

SSI(自己主権型アイデンティティ)を実現するために新しく提唱された、「グローバルにユニークなID」です。

DIDは以下のような形式をしています。

did:example:123456abcdef…

画像

それぞれの用語の定義

SchemeURIで表現される識別子の種類を指すもので、DIDの場合は常にdidとなります。
DID Methodレジストリに対する読み書きなどの操作の方式を定めています。
DID Method-Specific Identifierレジストリに対する読み書きなどの操作の方式を定めています。

DIDの役割をより詳細に言うと、「DIDサブジェクトとDIDドキュメントを関連付けるURI」となります。

DIDの特徴

DIDはW3Cによって定義されていて、W3Cは以下のようにDIDの設計目的を表しています。

画像

【翻訳バージョン】

分散化
グローバルに一意な識別子、公開検証キー、サービス、その他の情報の登録を含む、識別子管理における中央集権的な当局や単一障害点の要件を排除する。
コントロール人間であれ非人間であれ、エンティティに、外部当局に依存することなく、デジタル識別子を直接コントロールする力を与える。
プライバシーエンティティが、属性やその他のデータの最小限の開示、選択的な開示、段階的な開示など、情報のプライバシーを管理できるようにする。
セキュリティ要求者が要求される保証レベルをDID文書に依存するのに十分なセキュリティを可能にする。
証明ベースDID管理者が他のエンティティとやりとりする際に、暗号学的証明を提供できるようにする。
発見可能性エンティティが他のエンティティのDIDを発見し、それらのエンティティの詳細を知ったり、それらのエンティ
相互運用性相互運用可能な標準を使用し、DIDインフラストラクチャが、相互運用性のために設計された既存のツールやソフトウェアライブラリを利用できるようにする。
移植性システムおよびネットワークに依存せず、DIDおよびDIDメソッドをサポートするあらゆるシステムで、エンティティがデジタル識別子を使用できるようにする。
単純性技術を理解し、実装し、展開しやすくするために、単純な機能のセットを減らす。
拡張性相互運用性、移植性、単純性を大きく妨げない限り、可能な限り拡張性を認める。


DIDがどのように活用されるのか

「DIDが新しいIDみたいなものってことは分かったからどう使われるの?」

実際にSSIなシステムでどのようにDIDが活用されるかを見ていきましょう。

例えば、A大学の卒業証書のVC(VCはDIDと切っても切り離せない関係です。ここではデジタルデータという認識にします)を交付してもらい、次の就職先に卒業証書のデータを提出するシナリオとします。

画像

まず、卒業証書の保持者(生徒)にはDIDという識別子が与えられます。これは通常システムの利用開始時などで与えられます。

このDIDと一緒にDIDドキュメントがレジストリに登録されます。

この時、レジストリはブロックチェーンなど分散型データベースで語られることが多いですが、ブロックチェーンでなくても一般的なストレージなど、何かしらの保管場所を指します。

DIDドキュメントには保持者の公開鍵とDIDが書いてあります。

このように外部に公開されるレジストリにDIDと公開鍵をのみを置くことで、保持者は自分の氏名や大学名、年齢などを公開することなく他者に自分がA大学出身であることを証明することができるのです。

では、例えばB会社がこの保持者がもつ卒業証明書を確認したいときはどのようにするのでしょうか。

B会社は保持者からVCの提示を受けます。VCが交付されるときに、A大学はA大学の秘密鍵で署名がされています。

A大学の公開鍵は保持者と同様にレジストリに保存されているので、A大学の公開鍵を用いて保持者に提出されたVCの署名を検証します。

これで保持者が偽装していないことがわかりますし、A大学出身であることも検証できます。

画像

この仕組みでは、B会社とA大学の間にやりとりがありません。

本来であれば、保持者が本当にA大学出身かを知るためにはA大学に問合わせる必要がありましたが、DID/VCを使った検証ではその必要はないのです。

この仕組みで何がよくなるの?

・検証の際に発行者に直接問い合わせる必要がない。
・保持者しかVCを持っていない。つまり個人情報は保持者しか持ちえない。(システムによってはアカウント登録など、検証の際に個人情報を一部検証者に渡す場合もあります)
・発行者(大学)がなくなってもデータは生き続ける。(ブロックチェーンの場合)