SSI を実現する技術

Hiroki Gondo
Nayuta エンジニアブログ
6 min readNov 17, 2022

Self-sovereign identity(SSI)は、個人が自身の ID とデータ(属性データ(アイデンティティ)、その他のデータ)を管理できるようにするための技術である。Decentralized Identifier(DID)と Verifiable Credential(VC)は SSI を実現するための技術で、W3C で規格化されている。

DID

個人は DID とそれに紐づく DID Document を生成する。DID Document には、公開鍵やその使用目的、サービスエンドポイントなどが記載される。当該 ID に関わる操作は秘密鍵を知っている個人が証明を作成することにより承認される。

DID の例
// DID Document の例
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
]
"id": "did:example:123456789abcdefghi",
"authentication": [{ // 使用目的
"id": "did:example:123456789abcdefghi#keys-1",
"type": "Ed25519VerificationKey2020",
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV" // 公開鍵
}]
"service": [{ // サービス
"id":"#dwn",
"type": "DecentralizedWebNode",
"serviceEndpoint": {
"nodes": ["https://dwn.example.com", "https://example.org/dwn"]
}
}]
}

DID と DID Document は一般に公開される。任意の DID から DID Document を求めることを解決という。DID の規格(DID Core)では DID の生成および解決についての汎用的な枠組みのみが定義されており、それを実現する具体的な方法(DID Method)は定義されていない。

Sidetree/ION

DID Method の一つに ION(did:ion)がある。これは一般的な分散型台帳を利用した Sidetree プロトコルを、Bitcoin 上に実現したものである。

VC

ある個人(Holder)の資格情報を、他の主体(Issuer)が保証するために VC を発行する。VC は、Issuer の DID に紐づいた秘密鍵で署名される。Holder から当該 VC を受け取った第三者(Verifer)は、当該資格情報が Issuer から保証されていることを検証することができる。

DID の考慮事項

DID を使用する際に様々なセキュリティ、プライバシー上の考慮事項がある。

DID Method の トラストレス性と分散性

使用する DID Method において、トラストレスに、グローバルで一意な DID が生成され、DID Document を解決できないといけない。また、DID Method の実装が規格通りであることを使用者が確認できないといけない。

DID Method が特定のステークホルダーによって毀損されないために、DID Method の運用や規格策定プロセスは十分に分散化されていないといけない。DID Method Rubric は DID Method の分散性評価レポートを作成するための基準である。例えば、ION についての評価レポートがここにある。

プライバシー

DID Document には、個人情報やそれを推測できるデータを含めてはならない。特にサービスエンドポイントの URL が、既存のサービスに依存して、個人情報を推測できる表現になっていてはいけない(例えば URL にアカウント名や居住地が含まれる)。

個人が複数の DID を管理している場合、それらを関連付けることができるデータを DID Document に含めてはいけない。あらゆる相関分析手法が適用される可能性がある。

SSI の信頼モデル(LESS Identity vs. Trustless Identity)

Christopher Allen 氏が指摘するように、SSI には LESS Identity と Trustless Identity の2つのトラックがある。LESS Identity は Tim Bouma 氏が主張した概念で、なんらかの法的な裏付けのある SSI のことである。このシステムの信頼モデルは既存の集中型の PKI によるものと基本的に変わらない。Trustless Identity はそのようなものに依存しない、分散型信頼モデル(Web of Trust)である。

Web5

Web5 は Block 社の TBD 部門が発表した分散 Web プラットフォームで、この上に分散プロトコル/アプリが構築される。Web5 の主要コンポーネントは DID/VC と Decentralized Web Node(DWN)である。DWN は DIF で規格化が進んでいる。

DWN

DWN はデータの保存とメッセージのリレーを行う。VC やその他の個人のデータは DWN に保存され、これらのデータへのアクセス制御権は個人にある。個人は複数の DWN を使用することができ、それらは同期される。DWN のサービスエンドポイントは DID Document に記載される。

tbDEX

tbDEX は Web5 上に構築される資産交換プロトコルである。ユーザはアセットの流動性を提供する Participating Financial Institution(PFI)を発見し、取引を交渉(ASK/BID)し、DID/VC で信頼関係を確立する。実際の支払いはプロトコルの範囲外である。

--

--