分散型の識別子(DID)を理解する
前提条件
DIDとは
DID(Decentralized Identifier)とは以下のような新しいタイプの識別子のことです:
- グローバルにユニーク
- 高可用性を備えた解決可能な識別子
- 暗号化された検証が可能
- 永久に発行される(所有者によって取り消されない限り)。
DIDは通常、公開鍵などの暗号材料や、安全な通信チャネルを確立するためのサービスエンドポイントと関連付けられます。DIDは、個人の識別子、組織の識別子、Internet-of-Thingsの識別子など、自分で管理できる暗号的に検証可能な識別子を必要とするあらゆるアプリケーションに有効です。
SSL/TLS protocolが、暗号化されたウェブトラフィックの世界へのゲートを開くことで、インターネットの利用を永遠に変えたのと同じように、ウェブを安全に保つHTTPSプロトコルの基礎となっています。同じように、DIDは、分散型金融などのブロックチェーンの世界における検証プロセスを強化します。
DIDは、対象者を分散的に参照することで、ユーザーのアイデンティティを表現する新しい規格です。DIDは、次のような対象を参照する識別子です:
- 人
- 組織
- オブジェクト
DIDのユースケースは以下の通りです:
- 人、組織、物を識別する
- 多くのセキュリティとプライバシーを保護する保証を実現する
DIDは、DIDの解決方法と、その所有者を表すブロックチェーンアドレスを指定するユニークな識別子です。例えば、LTOネットワークに保存されているArnoldsのDIDは、DIDのURL(ポインタ)が以下のように設定されています:
例
スキーム:使用方法-ユーザーのID
このようなLTO Network上で検証可能なユニークな分散型識別子は、以下のようなフォーマットになります:
did:lto:3JuijVbbserasr48h8rz8451RTyeL
上記のDIDの例は、DIDコントローラによってDIDドキュメントに解決され、その最小の例は以下の通りです:
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -
{
// context explicitly defines the subject — i this case, DID
“@context”: “https://www.w3.org/ns/did/v1",
“id”: “did:lto:3JuijVBB7Nrasr48h8rz8451RTyeL”,
“authentication”: [{
// used to authenticate as did
“id”: “did:lto:3JuijVbbserasr2Ea5hCDz8451RTyeL#keys-1”,
“type”: “Ed25519VerificationKey2020”,
// A DID Controller is an entity that has the capability to make changes to a DID document
“controller”: “did:example:123456789abcdefghi”,
“publicKeyMultibase”: “zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV”
}]
}
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
DID文書には、DID管理者が対象者であること/所有していることを証明するための関連する暗号情報(公開鍵など)が含まれています。これは、全ての識別子がユーザの秘密鍵で署名されていることにより可能となるものです。公開鍵は、秘密鍵と一意に対になっており、分散型台帳に公開されます。
DIDが解決されると、抽出された公開鍵は、ブロックチェーンに保存されている公開鍵と比較されます。DID文書は、DIDに格納された情報とブロックチェーンに格納された情報との間の「ブロックチェーンハンドシェイク」のような機能性を持ちます。
LTOネットワーク上でDIDを適切に機能させるためには、どのDIDもまずインデックスを作成する必要があります。インデックス化とは、公開アドレスを関連する公開鍵と結びつけるプロセスです。アドレスの所有者は、自分のDIDが適切にインデックス化されるように、簡単なアンカーリング・トランザクションを使用してこれを行うことができます。
これは、ブロックチェーンのアドレスが一方向性ハッシュ関数を用いて公開鍵から生成されるため、アドレスから公開鍵を抽出することができないことが原因です。
アンカリング・トランザクションがなければ、アドレスの公開鍵は不明のままとなります。
実世界のIDとの一体化
DID と、機関により発行された ID の証明を組み合わせることで、DID の機能が強化されます。DIDは、デジタル証明書、ID、卒業証書などの役割を果たす検証可能な証明書(VC)の一部とすることができる。このようにして、人や物の身元を確認することができ、また、これらの物に価値を付加することもできます。複数の不動産物件に関する情報を含むDID付きVCを使用することで、これらのオブジェクトの所有権と価値を証明することができます。
また、DIDとVCを組み合わせることで、ユーザーの認証情報を非公開にすることができます。例えば、DIDと認証局(CA)が発行した証明書を組み合わせることで、トラストネットワークでの協力を希望する企業にとって、CAが発行した証明書によってアイデンティティが主張されるという優れたツールとなる事が可能なのです。DIDをCAが発行した証明書(x509タイプ)と組み合わせることで、企業の認証情報を公開することができ、企業の信頼性を手動で検索する時間を節約することができます。
サマライズ
DIDを使用すると、分散した方法で主題を参照することができ、DIDはDIDドキュメントに解決することができます。DIDドキュメントは、コントローラが対象者であること/所有していることを証明することができます。LTO Networkは、少なくとも1回のTXを行ったすべてのLTOアカウントに対して、これらのドキュメントを生成します。これらのアカウントは、DIDに関連する証明書を発行することで作成され、DIDと実世界のIDとの間に関連性を持たせることができます。DIDは検証可能な認証情報(VC)の一部となることができるようになります。
次週は「検証可能な証明書の理解」についての学習記事をお送りします!