2024年9月14日土曜日
DIFハッカソンのプレ登録が開始されています
2024年8月2日金曜日
生成AIとトラストとDID/VC
こんにちは、富士榮です。
昨日はDIF Japanの第1回Meetupでした。
参考)以前のポスト
会場は他のMeetupも混ぜこぜで大混乱でしたが盛況だったと思います。
| 写真は三井さんのポストから拝借 |
個別プレゼンはそこそこで大半がパネルディスカッションという形式でしたが、結果的に色々な(勝手な)意見を出し合うことができて個人的には楽しい時間を過ごせたと思います。
ディスカッションのテーマの一つとして「生成AIとデジタルトラストとDID/VC技術が果たす役割」というものがあったので、最近考えていることを。(昨日聞いておられた方はお話しした内容そのままですが)
あくまで個人的見解ですが、以下の2点に強く違和感を感じています。
- 生成AIとデジタルトラストというキーワードが出てくると、「偽情報」「フェイク」が想起されてしまって、すぐに対策の話にいってしまう
- デジタルトラストとDID/VCというキーワードが出てくると、「VCがあると信頼性が向上できるんだ」という気になってしまう
- 生成AIをうまく使ってデータやアイデンティティの信頼性を向上するための取り組みはできないのか?例えば、効率よく周辺情報を集めてきてその人の属性の確からしさを後ろ支えすることはできないのか?
- いい加減、単なる署名付きデータとトラストを分離しようよ。署名を検証できることによって示すことができるのはあくまでデータの真正性+(場合によっては)提示意思くらいじゃないのか?
2024年7月20日土曜日
DIFがDWNサービスを開発者向けに無償提供!
こんにちは、富士榮です。
先日書いた通り、DIF(Decentralized Identity Foundation)がDWN(Decentralized Web Node)に関するイベントを日本時間の19日のAM1時からやりました。
その中で大きな発表がありました。- Google Cloud上で提供される
- DID一つにつき1GBのストレージが用意される
- 7/17-19でベルリンで開催中のWeAreDeveloper World Congress 2024でDanielとMarkusが発表する
触らないといけないものが増えすぎて時間が取れていませんが、余裕ができたらもう少し深掘りしてみようと思います。
2024年7月5日金曜日
DIFがDecentralized Web Nodeのオンラインイベントをやるみたいです
2024年7月4日木曜日
DIF Japanのキックオフイベントが開催されます
こんにちは、富士榮です。
Universal ResolverやPresentation ExchangeやDecentralized Web Nodeで有名なDIF(Decentralized Identity Foundation)の日本支部であるDIF Japanが少し前から活動を開始しているのですが、8月1日に開発者向けのキックオフイベントをやります。
| DIF本国のサイトより |
以下、イベント情報です。
DIF Japan #1 - 開発者集まれ!日本でもDIFが立ち上がったぞ!
日時:2024年8月1日(木)16時00分~19時00分
会場:CIC Tokyo/オンライン
主催:DIF Japan
後援:DIF(Decentralized Identity Foundation)
運営:Venture Café Thursday Gathering
参加費:無料
私も少しお話しさせていただきますのでぜひイベントに来場してDIF Japanでの活動にも参加してください。
2024年5月5日日曜日
DIFのClaims & Credentials WGの新しいワーキングアイテムに関するWebinarがあります
- Reusable KYC credentials
- Age Verification
- Proof of Humanity
2024年4月13日土曜日
Presentation Exchange v2.1のWorking Group Approvalに到達しました
こんにちは、富士榮です。
OpenID for Verifiable Presentationsでも利用されているPresentation Exchangeのversion 2.1がDecentralized Identity Foundation(DIF)のWorking Group Approvalのステージに到達したようです。着々と進んでいるようですね。
Presentation Exchange(ページ上は2.X.Xとなっていますがアナウンスでは2.1となっています)
https://identity.foundation/presentation-exchange/
参考)Working Group Approval
DIFの仕様の開発ステップがこちらに定義されています。Final Approvalの一つ手前ですね。
何が追加されたのか?についてDIFのNews letterには以下の記載があります。
Security Enhancements: We have introduced a "Security Considerations" section, helping users navigate the security implications of the exchange more effectively.
Expanded Use Cases: A new "Use Cases" section has been added. This aims to broaden the understanding and applicability of the Presentation Exchange, providing examples and scenarios where it can be implemented.
Editorial Improvements: To further enhance the readability and clarity of the documentation, we have made various editorial changes throughout the text.
セキュリティの強化: セキュリティに関する考慮事項」のセクションを導入し、交換のセキュリティへの影響をより効果的にナビゲートできるようになりました。
使用例の拡大: 使用例」のセクションが追加されました。これは、Presentation Exchangeの理解と適用範囲を広げることを目的としており、Presentation Exchangeを実装できる例やシナリオを提供しています。
編集の改善: ドキュメントの読みやすさとわかりやすさをさらに向上させるため、本文全体にわたってさまざまな編集上の変更を加えました。
(Deeplで機械翻訳)
なお、Presentation Exchange 1系から2系での変化点は仕様のドキュメントの中にも記載があるので今後実装する方は参考にしていきましょう。https://identity.foundation/presentation-exchange/#what-is-new
2020年7月23日木曜日
[DID]リゾルバあれこれ
完全に個人メモです。
ご存知の通りDID(Decentralized Identifier)の構造は
did:{method}:{method specific identifier}
となっています。
例えば、イーサリアムだったら
did:ethr:0xE6Fe788d8ca214A080b0f6aC7F48480b2AEfa9a6
という感じです。
現状Blockchainの系がバラバラと乱立している状態なので、系の間でユニバーサルに一意に識別できる仕組みがないとDIDがIdentifier(識別子)としての役割を果たせないことはわかるんですが、そもそも論としてメソッド名が識別子の中に入っているって言うのもなぁ、と個人的には思いますが他にいいアイデアが出せるわけではないので自粛しておきます。
話はそれましたがDIDが上記の様な形式になっている以上、系を跨いで識別子(DID)および関連する情報(DID Metadata)を解決する仕組みがないと、DIDを使ったアイデンティティ管理システムが成立しません。ということで今日の本題の「リゾルバ」が必要になるわけで、実質標準になっているのがMarcusがやっている「Universal Resolver」である、というわけです。
元々DID関係はW3CのWeb Payment WG、Verifiable Credentials TF、OASISのXDI TC Registry WGが別々にやっていて、2015年〜2016年あたりでDPKIとかのドラフトとして出てきた中でレゾルバの必要性に注目してUniversal Resolverを作った、みたいな話を2018年のEuropean Identity and Cloud ConferenceでMarkusから聞いたとき、リソルバ自身の信頼性ってどうやって担保するの??みたいな話を聞いた覚えがあります。その時にMarkusはリゾルバ自体はOSSだからプライベート実装しても良いし、アプリに組み込んでも良いよ、みたいな話をしていました。
そんな中でMarkusがサンプル実装として公開したのが先の https://uniresolver.io/ で、他にもベンダが実装してきている例としてMicrosoftが自前のDID Projectで実装したのが、 https://beta.discover.did.microsoft.com/ だったりする、ということなんですね。
と言うことで、それぞれどんな感じなのかみてみようと思います。
登録されているDID method
そもそも現在どんなDID methodが存在しているのか、という話になるのですが、DID methodはW3Cのコミュニティグループで「ゆるく」管理?されています。https://w3c-ccg.github.io/did-method-registry/
今日(2020/07/23)の段階で59個も登録されてるんですね。残念ながらuPortはdeprecatedになってます(単にethrに引っ越しただけですが)。
Universal Resolverの状況
Universal ResolverではメソッドをサポートするためにDriverという単位でプラグインを追加していく形になります。githubのレポジトリを見るとDriverの開発の方法や現在開発されているDriverの一覧を確認することが出来ます。
https://github.com/decentralized-identity/universal-resolver/
同じく今日時点で28種類ある様です。
使い方としては非常にシンプルでUniversal Resolverをデプロイし、エンドポイントに対して
curl -X GET http://localhost:8080/1.0/identifiers/did:sov:WRfXPg8dantKVubE3HX8pw
という感じでGETしてあげればDID metadataが返ってくるという仕掛けです。これをWebで簡単に触れる様にしたのが先に書いた
https://uniresolver.io/
ってことです。
Microsoftの実装は?
前回のポストでも紹介しましたがMicrosoftもDIDの世界に突き進んでいるわけですが、当然マネージドなリゾルバを提供しています。公開されているサンプルソースを掘っていくと、
https://beta.discover.did.microsoft.com/
というURLが出てきます。
ご存知の通りMicrosoftのDID/IONのメソッドは ion で、現在Universal Resolverではサポートされていません。ionメソッドのDIDをUniversal Resolverで解決しようとしてもNFです。
と言うことでMicrosoftのDIDを解決するには上記のリゾルバを使うしかなさそうです。
使い方としては、Universal Resolverと同じで
curl -X GET https://beta.discover.did.microsoft.com/1.0/identifiers/did:ion:EiBo3GQwMgF...
と言う感じです。DID metadataの視認性を上げるためにFirefoxで開いてみます。
ふとした疑問として、どこまでMicrosoftのリゾルバは他のメソッドをサポートしているんだろう?と思って実験してみました。サンプルとして使ったDIDはUniversal Resolverのレポジトリにあるテスト用のものを使いました。
以下が結果です。
| method | support |
|---|---|
| sov | OK |
| btctr | OK |
| v1:test | OK |
| key | OK |
| ipid | NG? Universal ResolverでもTimeoutするのでipid側の不具合かも |
| web | NG? サンプルになっているのがdid:web:uport.meなのでDIDの問題かと |
| ethr | NG. Timeout |
| nacl | OK |
| jolo | NG. Timeout |
| stack | OK |
| erc725 | NG? Universal ResolverでもExceptionが出るのでドライバの問題っぽい |
| hcr | OK |
| neoid | NG? Universal ResolverでもExceptionが出るのでドライバの問題っぽい |
| elem | NG |
| github | NG |
| ccp | OK |
| work | OK |
| ont | OK |
| kilt | OK |
| evan | OK |
| echo | OK |
| factom | OK |
| dock | OK |
| abt | OK |
| trustbloc | NG |
| sirius | NG? Universal ResolverでもExceptionが出るのでドライバの問題っぽい |
| mpg | NG? Universal ResolverでもExceptionが出るのでドライバの問題っぽい |
| trust | NG? Universal ResolverでもExceptionが出るのでドライバの問題っぽい |
| io | NG? Universal ResolverでもExceptionが出るのでドライバの問題っぽい |
ということで完全に自分メモでした。
2019年11月30日土曜日
Hyperledger Indy, Ursa, Ariesのオンラインコースで自己主権型アイデンティティについて学習する
先日開催されたW3C/TPAC@福岡でDID WGが正式に発足したり、DIFやSovrin Foundationが活発に活動していたり、と自己主権型アイデンティティ(Self Sovereign Identity/SSI)や分散型アイデンティティ(Decentralized Identifier/DID)のムーブメントも本格化してきましたね。
そういえば@IdentityWomanことKaliya姉さんがおそらく世界初のSSIの本「A Comprehensive Guide to Self Sovereign Identity」を出版したのも今年の4月だったのでまだ半年ちょっとしか経ってないんですよね。
そんな中、元々Evernym~Sovrin Foundationが開発してきたSSIのための分散台帳技術でLinux Foundationの進めるHyperledgerプロジェクトの一員となったHyperledger Indyや、Wallet間のPeer to peer通信のプロトコルの標準化を進めようとしているHyperledger Aries、暗号化ライブラリであるHyperledger UrsaのオンラインのトレーニングコースがedXで公開されました。
※日本語記事あり:https://crypto.watch.impress.co.jp/docs/news/1220/815/index.html
HyperledgerファミリーとIndy, Ursa, Aries(出典:Evernym)
ざっくりいうと、Indyが分散台帳技術そのものであるのに対して、UrsaはZKP(ゼロ知識証明)などに使う暗号化技術、AriesはWalletやAgent間の通信に関する技術、という整理っぽいですね。(私もまだ勉強中なので間違っていたらすみません)
IndyとAriesの関係の整理(出典:Evernym)
ということで、もう少し深く勉強してみるいい機会なのでコースを受講してみようと思います。(せっかくなので受講証明がもらえる有料コース/99USドルにしました。12/2までならクーポンコード「CYBER20」を入れると20ドルくらい割引になります)
以下、コース登録までの道のりです。(実際の内容はこれからなので、また気づきがあれば書こうと思います)
1.edXのコースサイトを開く
こちらが今回のターゲットとなるコースのURLです。https://www.edx.org/course/identity-in-hyperledger-aries-indy-and-ursa
ここからEnrollを押してスタートしていきます。
2.会員登録を行う
メールアドレスで登録するか、Facebook、Google、Microsoftアカウントでアカウントを作成します。作成が終わると、有料会員に誘われますw。せっかくなのでお金を払ってみようと思います。
3.有料会員登録を行う
会員登録後、誘われるがままに登録をしてみます。どうやら有料登録をすると色々と特典があるようです。(最後のは特典なのか?)
- Unlimited Course Access
- Graded Assignments
- Easily Sharable
- Support our Mission
4.本人確認を行う(eKYC!!)
5.コースの受講を開始する
コース目次は以下の通りです。ゆっくり学習していこうかと。
- Welcome!
- Chapter 1: Something Is Missing
- Chapter 2: Adding a Layer of Trust to the Internet
- Chapter 3: SSI Using Indy, Aries and Ursa
- Chapter 4: A Blockchain for Identity
- Chapter 5: The All-Important Agent, Or Rather, Agents!
- Chapter 6: When Things Go Wrong
- Chapter 7: Possibilities
- Final Exam
2019年5月11日土曜日
European Identity & Cloud Conference 2019でBYOID+DIDの話をします
昨年に引き続き今年もミュンヘンで開催されるEuropean Identity & Cloud Conferenceでお話させていただくことになりました。
公式サイト
https://www.kuppingercole.com/events/eic2019
アジェンダを見ていると、AIとDecentralized Identity(ブロックチェーン)が半々くらいですかね。
私は昨年に引き続きBYOID(Bring Your Own Identity)のテーマでケーススタディ+昨年シンガポールで開催されたConsumer Identity World APACで少し頭出しをしたBYOID+Decentralized Identityのテーマで、動くものを少しお見せしようと思っています。
こんな感じの仕組みです。
外部ユーザを招待してOffice365(Teamsとか)を使ってもらうシナリオの一種ではあるんですが、通常のAzure AD B2Bでゲストの招待だとドメインのホワイトリストやTOU(Term of Use/利用規約)への同意くらいしか相手を確認する方法が無いので、その部分でDecentralized IdentityのVerifiable Claimsを使って証明書を提出させて本人確認を行う、というシナリオです。
このことにより、外部ユーザは組織アカウントでもLINEやFacebookなどの個人アカウントでのサインアップ+証明書を提出することによりTeamsやAzure ADに参加したPCへのログインなどが出来るようになります。この辺りをAzure AD B2CやAzure Functionsなどを使って自動化をしています。
外部IDを受け入れる側の組織ではID管理やパスワード管理をする必要が全くありませんので、組織の形態にもよると思いますが使える場面も出てくると考えています。
こんなことも出来るようになります。
ちなみにID Proofing周りはOSSテクノロジー社のLibJeIDとuPortを使って実装しています。
おいおいこの辺りの話しも解説したいと思います。
(月末に開催されるde:code 2019でも触れる予定です)
2019年4月26日金曜日
自己主権型アイデンティティとブロックチェーンの話し
ちょうど先日のidconでこの辺りの話をしたので、少し自分のためのおさらいの意味も込めて整理しておこうと思います。
まず背景として、昨年度から理事を務めさせていただいているOpenIDファウンデーションジャパンで、本人確認に関する新しいワーキンググループである「KYC(Know Your Customer) WG」を2019年1月に立ち上げ、WGリーダーを務めさせていただいております。
WGでは犯罪収益移転防止法や携帯電話不正利用防止法など各業界における本人確認のルールの調査や、Decentralized Identifier(DID)などの最近KYCと関連づけて語られる技術の調査をしたりしている訳です。
ちょうどパスポートの真正性確認に使う公開鍵を外務省が公開する・しない、という話が盛り上がっているあたりの領域です。
本人確認とアイデンティティとブロックチェーン
そして、何故かこの領域になると、自己主権型アイデンティティ(Self Sovereign Identity/SSI)とか、先ほど出てきたDIDだ、とかいうキーワードがどこからともなく持ち上がってきてやたらとブロックチェーンが銀の弾的に扱われてしまう、というのがID業界?の中の人としても結構な謎だったりするわけです。そもそもブロックチェーンを仮想通貨以外にも適用しよう、という話は数年前からあり、例えば2016年のCloud Identity Summit 2016(CIS、現Identiverse)でもPingIdentityがSwirds社と提携してセッションの正当性の管理にHashgraphを使うPoCをやったりしていました。以前このブログでも少し紹介しましたね。
また、自己主権型アイデンティティという話もUser Centric IdentityとかDoc Sealsが提唱したIntention EconomyのVRMという形で以前からあった文脈と繋がっているものだと思われますので、特にブロックチェーンの出現によって新たに出現した話ではありません。
そして、当然の事ながら本人確認とブロックチェーンにはかなりの距離があります。ブロックチェーンが出てきたから本人確認が劇的に変わるわけでもなさそうですし。
ブロックチェーンで解決できるアイデンティティにまつわる課題とは?
となると、結局ブロックチェーンをアイデンティティの領域に応用することで何がうれしいんだろうか?という話になるわけですが、よく出てくる話としては、- プライバシーの保護
- アイデンティティの証明
あたりがメジャーなのかな?と思います。他にも先のPingIdentity+Hashgraphでシングルサインオンのセッション管理を分散データベースとしてのブロックチェーンで行うことでシングルログアウト問題を解こうとした、というような話はありますがいまいち普及していません。(わかりやすいユースケースだったので個人的には良かったと思うのですが)
それぞれの話題を見ていくと何か見えてくるのか?と思うのですが、まだブロックチェーンの必然性が見えてきていないな、というのが個人的な感覚です。
プライバシーの保護とブロックチェーン
ここはまさに自己主権型アイデンティティという話なわけですが、課題意識としては、「個人が自分の意思でコンテキストに応じた自己像を提示できるようにする」、そして「個人の意思に反してコンテキスト外の自己像を推測されたり形成されたりしたくない」という話なので、必要なこととしては、- ユーザがアプリケーション(Relying Party)へログインする際に、Identity Providerへ認証要求を行うことによる、Identity Providerによるユーザ行動の把握を防ぎたい
- ユーザがアプリケーション毎に提示するアイデンティティを選択的に形成したい(要はどの属性を渡すか、もしくは値そのものを渡さなくてもアプリケーションが要求している属性を満たすことを証明する)
- アプリケーション同士が結託することで属性を補完しあって提示するつもりのないアイデンティティを勝手に形成されることを防ぎたい
というようなことなわけです。
こうなってくると、ブロックチェーンというよりもゼロ知識証明とか仮名(SAMLのnameid-formatのtransientとか、OpenID Connectのsub_type=pairwise)の方がしっくりくる領域です。今更ながら2012年くらいに盛り上がったU-ProveとかIdentity Mixerバンザイです。そういえば昔Kantaraのセミナで話したなぁ。
アイデンティティの証明とブロックチェーン
一方でアイデンティティの証明をするためにブロックチェーンを、という話については見方によってはある程度芽はあるのかもしれません。ブロックチェーンの「一度記録すると変更しにくい」といういわゆるImmutabilityの特徴を考えると、一度発行した属性を過去にさかのぼって改竄する、というような属性値ロンダリングみたいな話は難しくなるのかもしれません。
経済産業省が主催で2月に開催されたブロックチェーン・ハッカソン2019では学位や職歴をブロックチェーンを使って確実に証明できないか?ということがテーマでした(私も審査員+ワークショップの実施という形でかかわらせていただき、非常に面白かったです)。つい先日、調査報告書も公開されたので時間がある方は見てみると面白いです。
ここはEthereum勢はERC725や735という形でこの領域に注目していて、OriginProtocolがPlaygroudを公開していたりもして、今後も発展していく可能性は十分にあるのかな?と個人的には思います。
しかし、よく考えると結局はアイデンティティの発行元がきちんと発行したアイデンティティである、ということの担保はこれまでもデジタル署名でしてきたわけで、ブロックチェーンがあるから劇的にこれが改善するわけではありませんし、ブロックチェーン上に発行されたアイデンティティ(属性の値)そのものを全部公開する、というのはあまりにも乱暴なわけです。
PKIを補完する意味でのブロックチェーン
そうなるとどうやって落としどころをつくるんだ?というだんだん本末転倒な話の方向に進んでくるわけですが、「あー確かにな」という課題の一つである「アイデンティティの発行元が消滅したり、発行元によってアイデンティティを否認や改竄されるリスクへの対応」というユースケースがにわかに持ち上がってくるわけです。この辺りが、ID2020プロジェクトでUNHCRがMicrosoftとAccentureと共同でやっているような難民=国家(アイデンティティ発行者)によってアイデンティティを否認された人々の身元を保証するためにブロックチェーンを活用しよう、という話につながったり、先の経産省のハッカソンの大きなテーマである少子化に伴い教育機関がつぶれていくという予想がつく中で如何にして自分の学位を証明するか(要は卒業した大学が消滅してしまった場合に誰が卒業証明書を発行してくれるのか?)という話がブロックチェーンと繋がって出てくる所以だったりします。
確かに、国家等のアイデンティティの発行元によって自分のアイデンティティが消される、という緊急事態(プライバシーに優先するくらいの状況)において自分のアイデンティティを改竄出来ない状態にする緊急避難先としてブロックチェーンを選ぶのは確かに悪くないかも知れません。
また、同様にアイデンティティ発行者が消滅したとしても以前に発行されたアイデンティティ(署名されたアサーション)の検証をするための公開鍵をブロックチェーン上に保管しておけば、誰かが勝手に「過去にこの大学を卒業した。その証明はこのアサーションである。すでに誰も公開鍵を持っていないから署名検証は出来ないけどね」というようなことを言い張るというリスクへの対応は出来るでしょう。
ブロックチェーンも色々、標準化は?
ある程度ユースケースが見えてきたところで考えないといけないのは、ブロックチェーンも色々、という話です。EthereumもありますしBitcoinブロックチェーンもあります。またパーミッションドなのかパブリックなのか、などの分類も様々です。そして最も重要なのはいかに耐改竄性が高いといってもブロックチェーンの系自体が消滅したりクローズする可能性は当然ゼロではない、というところです。
こうなると、
- 特定の系に依存しない
- 必要に応じて系を引っ越せる














