[WIP]SSI, DID, VC

SSI
- Self Sovereign Identity
- Sovereign: 主権者
管理主体が介在することなく、自分自身が自らのデジタルアイデンティティを保有、コントロールできることを目指す考え方、概念。
- 従来のアカウント管理の面倒なところ
- サービスの数だけアカウントを作成する必要があり面倒
- 名前とか住所とかも都度入力してるし
- OAuthログインしてた時にそのサービスが終了すると使えなくなる
- 情報漏えいのリスク
- サービスの数だけアカウントを作成する必要があり面倒
- 現状
- IDは企業や政府が管理している
- 現状の課題点
- 個人情報が一箇所に集まっている
- データ流出の危険
- 個人情報が目的以外に利用されたり
- 個人情報が一箇所に集まっている
- どうなればいいか
SSIを実現する仕組み
- Verifiable Credentils
- DID(Decentralized Identity)

DID
A globally unique persistent identifier that does not require a centralized registration authority and is often generated and/or registered cryptographically. The generic format of a DID is defined in 3.1 DID Syntax. A specific DID scheme is defined in a DID method specification. Many—but not all—DID methods make use of distributed ledger technology (DLT) or some other form of decentralized network.
グローバルに一意で分散台帳的なネットワークを利用していて、一般的にはDID Syntaxで定義される。
次世代のデジタルID「DID」
- DIDの形式
- did:example:123456789abcdefghi
- did
- 固定値。DIDであることを示している
- example
- メソッド
- DID を運用する仕組みの種類
- https://w3c.github.io/did-spec-registries/#did-methods
- 123456789abcdefghi
- メソッドの中での識別子
- did
- did:example:123456789abcdefghi
DID Document
- DID DocumentはDIDと共に検証可能なデータレジストリに登録されている必要がある
- seriveにVCへのリンクを設定するのもあり
-
“service”という項目には、このサブジェクトに関連する情報を取得するためのサービスのエンドポイントが記載されます。ここでは、後に解説するVerifiable Credentialの取得場所を記載しています。 https://tech.gmogshd.com/self-sovereign-identity-ssi/
-

ゼロ知識証明

Verifiable Credentials
- データを入れるコンテナのようなもの
- 誰がコンテナに情報を入れたかがわかるもの
- 検証可能なデータ伝達方法
- データそのものが正しいかは分からない。大学が偽の証明書を格納した場合とか。
以下、公式からソース確認したい。
発行者自身を確認できること
VCを提示する際、調整ができ、情報をできるだけ少なくすること
情報共有の同意は、可能な限り詳細に説明し、理想的には、有効期限もあることが良い
所有者は自分のVCを検索・管理・転送・削除ができること
発行者は、修正・取り消しため、トレーサビリティを使用してVCを更新できること
https://coinpost.jp/?p=314527
実態は?
json?JWT?
保存場所は?
- wallet
-
主体からVCsを受け取り、ウォレット上で保有した場合は保有者(holder)と呼ばれ、逆にVCsを提供した主体は上記のように発行者(issuer)と呼ばれる。 https://lastrust.io/2020/10/15/verfiable-credentials-as-containers/
-
- ウォレットでなくてもいい。管理・削除・転送などできる
-
検証可能なクレデンシャルは分散型モバイルアプリ(dApps)などの個人ウォレットに保存できますが、必須ではありません。 例えば、学校は一元化されたストレージスペースを持つこともできます。このように、ユーザーが自分の検証可能なクレデンシャルを管理したり削除したりして、他の場所(例:ウォレット、または別の一元化されたストーレージ)に転送することもできます。 https://coinpost.jp/?p=314527
-
発行するときに有効期限をつけられる?
https://verifiablecredentials.dev/
- type
- "VerifiableCredential" は必須
-
The "VerifiableCredential" is mandatory. https://verifiablecredentials.dev/
-
- "VerifiableCredential" は必須
- issuer
- URI or object
- credentialSubject
- 配列かオブジェクト