W3C DID仕様
W3C DID Core仕様の概要と、VeriCerts Zeroでの実装について説明します。
DID Core仕様とは
DID(Decentralized Identifiers)は、W3Cが策定した分散型識別子の国際標準仕様です。2022年7月にW3C勧告として正式に承認されました。
- 仕様名: Decentralized Identifiers (DIDs) v1.0
- 策定団体: W3C (World Wide Web Consortium)
- ステータス: W3C Recommendation(勧告)
- 公式URL: https://www.w3.org/TR/did-core/
DIDの基本構造
構文
DIDは以下の形式で構成されます:
did:method:method-specific-id| 要素 | 説明 |
|---|---|
did | DIDスキーム(固定) |
method | DIDメソッド名(作成・解決方法を定義) |
method-specific-id | メソッド固有の識別子 |
Note: W3C DID仕様レジストリには100以上のDIDメソッドが登録されています。
DIDドキュメントの例
DIDは対応する「DIDドキュメント」を持ちます。DIDドキュメントには、DID主体の公開鍵や認証方法が記述されます。
| プロパティ | 説明 |
|---|---|
@context | JSON-LDコンテキスト |
id | DID本体 |
verificationMethod | 検証メソッド(公開鍵など) |
authentication | 認証に使用する検証メソッド |
assertionMethod | 署名・主張に使用する検証メソッド |
service | サービスエンドポイント |
DID解決
DIDからDIDドキュメントを取得するプロセスを「DID解決(Resolution)」と呼びます。
DID → DID Resolver → DID DocumentVeriCerts Zeroでの実装
DID構造
| DID種別 | 形式 | 用途 |
|---|---|---|
| 組織DID | did:web:zero.vericerts.io:org:{organizationId} | 組織を識別するDID |
| エンティティDID | did:web:zero.vericerts.io:org:{organizationId}:entities:{entityId} | 組織が管理するエンティティ(人、物、システム等)を識別するDID |
| ユーザーDID | did:web:zero.vericerts.io:user:{userId}:{uuid} | ユーザーを識別するDID |
| 信頼レジストリDID | did:web:zero.vericerts.io:tr:{trustRegistryId} | 信頼レジストリを識別するDID |
対応DIDメソッド
VeriCerts Zeroでは、100種類以上あるDIDメソッドのうち実際に多くのサービスで運用がされている以下の主要な3つのDIDメソッドに対応しています:
| メソッド | 説明 | 例 |
|---|---|---|
did:web | Webドメインベース。HTTPSで解決可能 | did:web:zero.vericerts.io:org:abc123 |
did:key | 公開鍵ベース。オフライン生成・検証可能 | did:key:z6MkhaXgBZDvotDkL... |
did:ethr | Ethereumブロックチェーンベース(ERC-1056) | did:ethr:sepolia:0x742d35Cc... |
DIDドキュメントの例
以下はVeriCerts Zeroで生成されるDIDドキュメントの例です:
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "did:web:zero.vericerts.io:org:abc123",
"verificationMethod": [{
"id": "did:web:zero.vericerts.io:org:abc123#key-1",
"type": "Ed25519VerificationKey2020",
"controller": "did:web:zero.vericerts.io:org:abc123",
"publicKeyMultibase": "z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
}],
"authentication": ["did:web:zero.vericerts.io:org:abc123#key-1"],
"assertionMethod": ["did:web:zero.vericerts.io:org:abc123#key-1"],
"service": [{
"id": "did:web:zero.vericerts.io:org:abc123#vc-service",
"type": "VerifiableCredentialService",
"serviceEndpoint": "https://zero.vericerts.io/vc/"
}]
}DIDの解決と確認
VeriCerts Zeroで作成されたDIDは、W3C DID仕様に準拠しているため、Universal Resolver などの外部リゾルバでも解決・確認できます。
Universal Resolverとは
Universal Resolverは、DIF(Decentralized Identity Foundation)が提供するパブリックなDIDリゾルバサービスです。DIDを入力すると、対応するDIDドキュメント(JSON形式)を取得・表示できます。
使い方
- Universal Resolver にアクセス
- 入力欄にDIDを貼り付け(例:
did:web:zero.vericerts.io:org:xxx) - 「Resolve」ボタンをクリック
- DIDドキュメントがJSON形式で表示される
確認できる情報の例
| 情報 | 説明 |
|---|---|
@context | JSON-LDコンテキスト(使用する暗号スイートにより異なる) |
id | DID本体 |
verificationMethod | 公開鍵情報(キータイプ、公開鍵のmultibase表現など) |
authentication | 認証に使用できる検証メソッドへの参照 |
assertionMethod | VC署名など、主張・署名に使用する検証メソッドへの参照 |
service | サービスエンドポイント(VC発行サービスのURLなど) |
なぜ重要か
- 相互運用性の確認: VeriCerts Zeroで作成したDIDが国際標準に準拠しており、外部システムからも認識・検証できることを確認できます
- デバッグ: DIDが正しく公開されているかを確認できます
- 信頼性の証明: 第三者のツールでも解決できることは、標準準拠の証拠となります
関連リンク
- DID/VCとは - DID/VCの基本概念
- W3C VC仕様 - Verifiable Credentials仕様
- W3C DID Core仕様(原文) - 公式仕様書
- DID仕様レジストリ - DIDメソッド一覧
Last updated on