こんにちは。GMOグローバルサイン・ホールディングスCTO室で分散型IDの研究開発をしている神沼@t_kanumaです。
この記事では、Hyperledger Indy/Ariesを中心に、私が観測できた2022年後半から2023前半までのSSIの技術的な動きを述べたいと思います。ToIP Technology Stackのレイヤー2と3、すなわちEntity間の通信(e.g. DIDComm)と、その上での、Issuer/Holder/Verifierで作られる所謂Trust TriangleにおけるVC発行とVP検証のレイヤーにおける話がメインです。
大きな流れとしては、Ariesの脱Indyがあると思います。
1. Indy AnonCredsの現状
Indy/Ariesで使われるVC種別の1つであるIndy AnonCredsは、各種VCと比較して、プライバシー保護機能に最も優れているのが大きな特徴だと考えます。(詳細は後述の備考を参照ください。)
また、現時点で世界で最も広く使われているVC種別であるということをコミュニティは以下で強調しています。
Announcing Hyperledger AnonCreds: Open Source, Open Specification Privacy Preserving Verifiable Credentials
このIndy AnonCredsを含むIndy/Aries全体に対し、Identity Womanとして業界で有名なKaliya Young氏が2022年9月に以下の自身のブログ記事にて、そのチャレンジングな面、および懸念点を表明し、業界で反響を呼びました。
Being “Real” about Hyperledger Indy & Aries / Anoncreds
Young氏は、その中でIndy AnonCredsに関しても懸念点を挙げており一部を抜粋します。(詳細は記事をご参照ください。)
- データフォーマットがW3CのVCs Data Modelに準拠していない。
- 署名アルゴリズムにRSAを用いており古い。
- Indy AnonCreds自体の仕様が明確にドキュメント化されておらず、明確な存在がIndy SDKのコードしかない。
上記に加えたIndy/Ariesに対する諸々の懸念に対し、最近界隈でプレゼンスを発揮しているIndicioのCTO、Sam Curren氏が以下の記事で、いくつか誤解があると同月に反論を出しています。
そのような中でAnonCredsは、以下の記事の通り、2022年11月にその仕様プロジェクトがIndy配下から独立してHyperledger直下に置かれました。記事によれば、今後はW3C VCs Data Modelへの準拠を目指し、さらに国際標準化団体まで持っていくかもしれないということです。また、その仕様には以下の通り、Indy Ledgerに依存しない、すなわちLedger Agnositicの形を目指すことが明記されています。
This is a proposal for version v1.0 of AnonCreds which aims at AnonCreds being ledger agnostic.
- AnonCreds graduate to Hyperledger project for VCs with zero-knowledge proof
- Hyperledger Project: AnonCreds Spec
備考
各種VCの特徴と比較については、以下のコンテンツが参考になります。
- Covid-19 Credentials Initiativeのホワイトペーパー
- Indicioの記事
- Evernymの記事
- Aries RFC 0646: W3C Credential Exchange using BBS+ Signatures
- AnonCreds Specification: 4.Introduction
2. AIP2.0とAries Framework実装
W3CやDIF(Decentralized Identity Foundation)よりも仕様策定が先行していたために結果的に独自的になり、その部分が批判されがちなAriesですが、それは最新ではないAIP1.0(Aries Interop Profile)の話だと考えます。(Profileとは前述のToIP Layer1,2,3を実現するための仕様セットです)
最新のAIP2.0からはDIF持ちの仕様群をインポートしており、相互運用性を高めています。その結果Indy LedgerやAnonCredsに依存しない形を取ることができ、W3C VC Data Model準拠のJSON-LD Credentialsを発行できます。
以下では、その仕様群の関係と、AFJやACA-PyなどのAries Framework実装の現況について述べます。
2.1 オープンスタンダード
W3C、DIF、Aries、OIDCの各仕様の関係の全体像
私が把握した中ではW3C及びDIFが抱えるSSIに関する仕様は現在25個前後あります。
そこにAriesのAIP2.0、さらにOIDC4VCI / VPを加えることで、SSIのオープンスタンダードの全体像が見えてくると考えます。
オランダのTNOという企業が、前述したToIP Technology Stackのレイヤーごとに、これらの団体が保持する各仕様を分類し、互いの関係を整理した結果をGitHubで公開しています。
各仕様に対し、compatible with/competitive toが書かれており、他の仕様との関係がわかるようになっています。SSI/DID/VCの現状の全体像を把握するのに役立つと思います。
例として、以下のように読むことができます。
Layer3において、Ariesから移管されたDIFのIssue Credential Protocol 3.0はDIDCommと共生可能で、OIDFのOIDC4VCIと競合する。
ここからは、Ariesに焦点を絞ります。Ariesの相互運用性の動きは、W3CとDIFに対し仕様のインポートとエクスポートの2面があります。
DIFへのエクスポート
- Layer2のDIDComm v1は、エクポート後、DIFにてv2にアップデートされています。
- Layer3のIssue Credential / Present Proof Protocol v2は、エクスポート後、DIFにてWACI-DIDComm Profileの中でv3にアップデートされています。
W3C/DIFからAIP2.0へのインポート
- DIFでv2にアップグレードされたDIDCommを逆輸入しています。
- W3CのVCs Data Modelに則ったJSON-LD Credentials(とそのVP)を扱うことができます。
- DIFのCredential Manifest: VC発行プロトコル上でのデータモデルの仕様です。主となる概念を記載します。
- Manifest: IssuerがHolderに送るVC発行オファーメッセージのデータモデル
- Application: HolderがIssuerに送るVC要求メッセージのデータモデル
- Fullfilment: IssuerがHolderに送るVC発行メッセージのデータモデル
- DIFのPresentation Exchange: VP提示検証プロトコル上でのデータモデルの仕様です。主となる概念を記載します。
- Presentation Definition: VerifierがHolderに送るVP要求メッセージのデータモデル
- Presentation Submission: HolderがVerifierに送るVP提示メッセージのデータモデル
2.2 各Aries Frameworkの実装状況(本記事公開時点)
AFJ(Aries Framework JavaScript) 0.3.3
- AIP2.0をフルサポートしています。
- 特筆すべき点が2つあります。
- Layer3でAriesと競合するOpenID4VCIのHolder用パッケージの開発が進められています。
- OIDC4VCIのフローの実装は、後述するSphereonのOSSを利用しています。
- 発行されたVCのIssuerによる署名の検証、及びWalletへのVCの保存はAFJのコードで対応しています。
- AnimoSolutions CTOのTimo Glastra氏のツイートで、v0.4からIndy SDK/Ledgerに完全に依存せずにAFJを利用できるとのことです。
- Layer3でAriesと競合するOpenID4VCIのHolder用パッケージの開発が進められています。
ACA-Py(Aries Cloud Agent – Python) 0.8.1
AIP2.0の大部分は実装済みで、現在v1.0のメジャーアップデートに向かっている最中の模様です。v1.0ではAIP2.0を完全に実装するようです。(詳細は以下をご参照ください。)
3. EUDI Walletの動き
EUDI(European Digital Identity) Walletにおいては、これまでIndy/Aries界隈をリードしてきたEvernymを買収したAvastなどにより、既にいくつかのパイロットプロジェクトの開発が進められていると認識してます。(以下の2022年12月の記事をご参照ください。)
EU Digital Identity Wallet Consortium selected for large-scale pilot
その中で2023年2月にEuropean CommissionがEUDI WalletのARF(Architecture and Reference Framework)を発表しました。
このARFは、一般に知られている標準とプラクティスに則り、相互運用性のあるEUDI Walletを開発するための仕様群ですが、その中で前述したOpenID4VCI/VPが採択されています。
その流れを受けて、これまでIndy/Aries界隈をリードしてきた、ヨーロッパの企業、団体であるLissiとIDUnionがOpenID4VCI/VPに対応する動きを見せています。
またヨーロッパとOpenID繋がりの動きでは、オランダのSphereonという企業が、OIDC4VCI/VPの実装をGitHubで公開しています。
おわりに
先月(2023年4月)、世界最大のアイデンティティのカンファレンス/ワークショップであるIIW#36(Internet ID Workshop)が開催されました。この記事の内容から、さらなる進展が成されているのではないかと思います。また情報をキャッチアップしていきたいです。
次回の私の記事では、ACA-PyとAFJを用いて、W3C VC Data Modelに準拠するJSON-LD Credentialsの発行とVP検証を試した記録を発信したいと思います。
以上でこの記事を終わります。
どなたかのお役に立てたならば幸いです。