分散型アイデンティティのためのBitcoinレイヤー2ネットワーク:Identity Overlay Network(ION)

目次

  • 前提
  • IONの概要
  • 総論

前提

本レポートではMicrosoftおよびDIF(Decentralized Identity Foundation)が共同開発するオープンソースプロジェクトのIdentity Overlay Network(ION:アイオン)について概観します。
IONは、分散型アイデンティティをサポートするためにBitcoinのレイヤー2として実装されているパブリックかつパーミッションレスなDID(Decentralized Identifier:分散型識別子)およびDPKI(Decentralized Public Key Infrastructure:分散型公開鍵基盤)ネットワークです。IONプロジェクトは2016年にそのコア技術の構想が始まっていますが、2019年5月にBitcoinテストネットでテスト版を公開し、2020年現在はBitcoinメインネットでβ版が稼働しています。また本記事執筆時点では2020年内にION v1が公開される予定です。
※文献等によってはDIDをDecentralized Identityの略として使用しているものもありますが、本レポートでは混乱を防ぐためにDIDをDecentralized Identifierの略としてのみ使用します。

分散型アイデンティティとは?

現在のインターネットで一般的に使用されているデジタルアイデンティティにはいくつかの課題があります。
  • ユーザーが新しいアプリケーションやサービスを利用しようとする度に、自分の名前やメールアドレス、生年月日、住所といった属性情報を入力する必要がある
  • パスワード管理が煩雑
  • 多数のアプリケーションやサービスに自分の属性情報が散らばって保存されており、全ての属性情報を適切に更新することは非常に手間がかかる
  • 多くの場合、ユーザーは登録した自分の属性情報に対するコントロール権を確保できず、データを目的外利用される恐れがある(アプリケーションやサービスによってはユーザー情報を削除する機能があるものの、ログやバックアップを含めて本当に情報が削除されていることを検証するのは困難)
  • ハッキングなどによるIDとパスワード、自分の属性情報が漏洩するリスクがある
  • FacebookやGoogleといったアイデンティティプロバイダーによる認証は便利だが、利用規約違反などの理由でアカウントが凍結される可能性があり、アカウントが凍結された場合はデジタル上の活動が大幅に制限されてしまう。また、これらの私企業に多くの情報を渡していることになる
デジタルと現実の世界が融合していき、その境目が曖昧になってきている新しい世界においては、上記の課題を解決できる新しいデジタルアイデンティティが必要となります。それは利便性を高めるだけでなく、個人のプライバシーとセキュリティを強化するものでなければなりません。
その新しいデジタルアイデンティティとして提唱され、研究開発が続けられているのが分散型アイデンティティと呼ばれるものになります。
分散型アイデンティティには下記のような特徴があります。
  • 中央集権的組織ではなく、ユーザーがIDを発行する主体となる
  • グローバルでユニークなID
  • 分散型の公開鍵基盤にリンクしている
  • IDおよび属性情報はユーザー自身がウォレットで管理する
  • ユーザーはIDおよび自分の属性情報に対するアクセスをコントロールできる

Microsoftが分散型アイデンティティに取り組む理由

Microsoft自身もAzure Active DirectoryというクラウドIDシステムを提供する巨大なアイデンティティプロバイダーですが、分散型アイディンティティを推進している理由として下記のように述べています。
Microsoft のクラウド ID システムは既に、何千もの開発者や組織、何十億人ものユーザーの仕事や遊び、生産性の向上を支援するために利用されています。しかし、このような支援のために私たちができることはまだ数多くあります。今なお何十億人もの人々が、信頼できる ID を持たずに生活していますが、Microsoft は、子供の教育、生活の質の向上、新規事業の立ち上げなど、誰もが抱いている夢を叶えることができる世界を目指しています。
このビジョンを実現するには、個人が自分のデジタル ID のすべての要素を所有および管理できるようになることが必要不可欠であると考えています。人々が求めているのは、無数のアプリやサービスの使用条件にほぼ無条件に同意して、自分の ID データを多数のプロバイダーに拡散することではなく、ID データを保管して、それに対するアクセス許可を簡単に制御できる、安全で暗号化されたデジタル ハブです。
世界的な流れとして、国連は持続可能な開発目標(SDGs)の中で「2030年までに、すべての人々に出生登録を含む法的な身分証明を提供する」ことを定めています。また、難民を始めとする身分証明書を持たない11億の人々にアイデンティティへの普遍的なアクセスを提供することで、このSDGsを達成しようとするID2020プロジェクトがあります。MicrosoftはID2020の創設メンバーとして参加しており、この取り組みを自社のミッションを達成するための最重要課題として位置付けています。
引用: https://id2020.org/
Microsoftのミッションと分散型アイデンティティ・ブロックチェーンに対する取り組みについては下記レポートで概観しています。
Microsoft のブロックチェーンに対する取り組みとサービス全体像の概観①
https://hashhub-research.com/articles/2020-08-24-microsoft-blockchain-services-01

分散型アイデンティティの構成要素

Microsoftのホワイトペーパーによれば、分散型アイデンティティは下記コンポーネントから構成されています。
引用: https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2DjfY
  • W3C Decentralized Identifiers (DIDs) 
    • W3Cの仕様に基づく分散型識別子。下記のようにシンプルな文字列で表現されます。
      • 例: did:ion:123456789abcdefghi
  • Decentralized systems (for example, blockchains and ledgers)
    • DIDとDID Documentを記録する分散システム(ブロックチェーンや分散台帳技術)
  • User Agents
    • DIDの作成、データや権限の管理、署名などを行うウォレットアプリケーション
  • Universal Resolver
    • 相互運用性のためにION、Element、Sovrinなど複数ネットワーク間のDIDを解決するサーバー
  • Identity Hubs
    • メッセージ/意思伝達、構成証明管理、ID 固有の計算エンドポイントを備えた、暗号化された ID データストア
  • DID Attestations
    • DIDに関連付けられた証明書
IONは上記のDecentralized systemsを担当しています。そして上記の通り、分散型アイデンティティ=ブロックチェーンという訳ではなく、ブロックチェーンは分散型アイデンティティを構成するための一つのコンポーネントとして利用されているということが分かります。

IONの概要

IONは下記の特徴を持つネットワークとなります。
  • IONは誰でも参加することができ、Microsoftを含めてシステム内のDIDを所有・管理する企業や組織、グループは存在しないパブリックかつパーミッションレスな分散システム
  • Bitcoinブロックチェーン上のSidetreeプロトコル実装
  • Bitcoinのレイヤー2ネットワークとして動作
  • IONは新たなトークンやコインを導入しない
  • IPFS(InterPlanetary File System)にデータを格納
  • IONはサイドチェーンまたはコンセンサスシステムではないため、ノードは追加のコンセンサスメカニズムを必要としない
DIDを管理するためには、DIDの変更履歴を誰もが安全に確認できるグローバルなログが必要となります。グローバルで変更ができず、追加のみできるシステムであり、十分な検閲耐性を実現できるシステムとしてパブリックブロックチェーン(IONの場合はBitcoin)が採用されています。
一方で、DIDを管理する上では、ブロックチェーンが解決するような二重支払いの問題は関係ありません。ユーザーが自身のDIDを消費したり、暗号資産のように取引して他者に所有権を移転したりすることはありません。必要なのはDIDの変更履歴が正確であるかどうかだけです。そのため、ステートの変更が正確に反映されるブロックチェーン上にDIDのシステムが構築されています。
また、IONの中核となるSidetreeプロトコルは、特定のブロックチェーンに依存せずにスケーラブルなDID/DPKIネットワークを作成するためのプロトコル仕様で、全ての処理をレイヤー1のオンチェーンで行うとトランザクション性能に無理があるため、レイヤー2技術として利用できるようになっています。
IONの姉妹プロジェクトとしては、Ethereumのレイヤー2としてSidetreeプロトコルを実装したElementがあります。

Sidetreeプロトコルについて

Sidetreeプロトコルは主にBlockchain Peer Network、Content-Addressed Storage System(CAS)、Sidetree Nodeの3つのコンポーネントから構成されています。
Sidetreeプロトコルのコンポーネント
  • Blockchain Peer Network:DIDやそれに付随したDID SubjectやDID Documentを保存するための基盤
  • Content-Addressed Storage System(CAS):データとポインタをリンクして保存し、一定期間に渡ってデータの更新や修正を行うことができないストレージシステム(Content-Addressed Storage Systemのエンドポイント情報はブロックチェーン上に固定されて保存)
  • Sidetree Node:DID Documentに対するオペレーション(作成、解決、更新、削除等)を行うためのプログラム

IONの構成要素および動作ついて

IONの実装ではそれぞれ構成要素が下記のように対応しています。
SidetreeとIONの構成要素


引用: https://techcommunity.microsoft.com/t5/identity-standards-blog/ion-booting-up-the-network/ba-p/1441552


IONにおける書き込みと検証の動作は以下のようになっています。

【書き込み】

IONノードがDID/DPKI操作をバッチにまとめ、Bitcoinブロックチェーンにアンカリングします。具体的にはDID/DPKI操作が書き込まれたバッチファイルとバッチファイルへのリンクを持っているアンカーファイルの二種類のファイルが作成されます。Bitcoinのトランザクションに書き込まれるのは、アンカーファイルのハッシュであるIPFSのContent ID(CID)になります。同時にDID/DPKI操作のバッチファイルとアンカーファイルをローカルに保存し、IPFSネットワークにもプッシュします。上の図では、左側のPeer 1のノードが書き込みを行っています。また、他のIONノードはBitcoinブロックチェーンに書き込まれたIONのハッシュを探し、見つけ次第、自分のノードに複製して他のノードにも伝えるという動作をします。

【検証】

その他のIONノードはBitcoinのブロックチェーンを定期的にチェックし、DID/DPKI操作のバッチをプッシュしたノードやIPFSネットワークから該当する情報を集めて検証します。上の図では、右側のPeer 2のノードが検証を行っています。
IONでは、単一のBitcoinオンチェーントランザクションに数万のDID/DPKI操作をアンカリングすることが可能です。DIDの変更履歴の合意(DIDの状態にコンフリクトが起きないようにすること)については決定論的なルールに従っているため、レイヤー2でコンセンサスを得る必要はありません。また、各ノードが並行してDID/DPKI操作を処理するため、結果として秒間数万トランザクションを処理することが可能です。
また、IONのノードは前述のバッチファイルとアンカーファイルの両方を保持するフルノードとアンカーファイルのみ保持するライトノードの2種類があります。
IONのGitHubリポジトリにはノードを立ち上げるチュートリアルがあり、誰でもテストネットおよびメインネットで独自のノードを実行して、IONネットワーク上にDIDを作成・公開することができるようになっています。
IONネットワーク上のノードの分散性については、下記のステージが進むにつれて徐々に分散されていく計画になっています。
  1. 初期はMicrosoftやその他のDIFメンバー企業などの大きな組織で安定的にフルノードを運用
  2. IONを利用する主体やアーリーアダプターの組織によるフルノード運用
  3. 幅広く開発者やユーザーがライトノードやフルノードを必要に応じて運用
また、MicrosoftはIONを同社のプロダクトとして所有することは考えておらず、IONのネットワークが同社から完全に独立した形で運用されることを望んでいるとDaniel Buchner氏は語っています。実際にIONはMicrosoftのGitHubリポジトリではなく、DIFのGitHubリポジトリでソースコードが管理されており、Microsoftがコミュニティへコントリビュートする形となっています。また、データを保存するストレージも同社のクラウドサービスではなくIPFSが採用されています。

ユースケースおよび事例

分散アイデンティティのユースケースとしては、学位証明のユースケースが第一に挙げられます。日本国内では少子化などにより大学なども統廃合される時代になっており、学位証明の真正性を保つのは重要な課題となっています。また、グローバル化によって国外の大学から学位証明を取得するケースなども増えています。
日本国内の事例としては、慶應義塾大学の次世代デジタルアイデンティティ基盤の実証実験があります。このプロジェクトは2020年10月から開始されており、学生を対象に在学証明書や卒業見込証明書などをスマートフォンアプリに対して発行します。新型コロナウィルス感染症拡大により、各大学は授業や各種窓口での手続きのオンライン化を進めていますが、本プロジェクトでは単に在学生や卒業生への各種証明書発行手続きをオンラインで完結させるだけでなく、新卒採用を行う民間企業との連携や、転校や編入に伴う地域や国をまたいだ大学間の情報連携も考慮するという広範囲の取り組みとなっています。
そして、下記イメージ図の「分散台帳」の部分でIONが利用されています。
引用:https://prtimes.jp/main/html/rd/p/000000013.000039475.html

シナリオの一例)デジタル学生証を身分証明として提示し、学生割引チケットを発行
引用:https://prtimes.jp/main/html/rd/p/000000013.000039475.html

総論

本レポートではMicrosoftが分散型アイデンティティを実現するために開発し、Bitcoinレイヤー2として稼働するIdentity Overlay Network(ION) について概観しました。分散型アイデンティティは世界的にも重要な取り組みで、数十億人のDIDを格納・処理することが可能で、誰からも管理されないパブリックな基盤としてIONは引き続き動向を注目したいプロジェクトです。また、Bitcoinブロックチェーンのユースケースとしても注目に値すると筆者は考えています。

参照資料

デジタル ID を自分で所有
https://www.microsoft.com/ja-jp/security/business/identity/own-your-identity
ION – Booting up the network
https://techcommunity.microsoft.com/t5/identity-standards-blog/ion-booting-up-the-network/ba-p/1441552
デジタルアイデンティティ ~自己主権型/分散型アイデンティティ~
https://www.nri.com/-/media/Corporate/jp/Files/PDF/service/ips/technology_1.pdf
MSFT ION - Daniel Buchner
https://youtu.be/8kxfOyEelPs
What is DID?
https://medium.com/@onion797jp/what-is-did-8af73a950b25
慶應義塾大学、次世代デジタルアイデンティティ基盤の実証実験を開始
https://prtimes.jp/main/html/rd/p/000000013.000039475.html