
分散型アイデンティティを教えて!
こういった悩みにお答えします.
本記事の信頼性
- リアルタイムシステムの研究歴12年.
- 東大教員の時に,英語でOSの授業.
- 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部(2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発.
- プログラミング歴15年以上,習得している言語: C/C++,Solidity/Vyper,Java,Python,Ruby,Go,Rust,D,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
- 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」をGitHubにオープンソースとして公開.
こういった私から学べます.
分散型アイデンティティ(Decentralized Identity)
分散型アイデンティティ(Decentralized Identity)とは,個人が自分のアイデンティティの関連情報を管理できるWeb3.0のアイデンティティです.
分散型アイデンティティを利用することで,サービスプロバイダや政府などの中央機関に依存することなく,IDの作成や認証の主張・保持を行うことができます.
分散型アイデンティティの例として,以下が挙げられます.
- Ethereum Name Service(ENS):イーサリアムウォレットアドレス,コンテンツハッシュ,メタデータ等のオンチェーンでの機械読み取り可能な識別子のための分散型ネーミングシステム
- SpruceID:サードパーティのサービスに頼らず,イーサリアムアカウントとENSプロファイルでデジタルアイデンティティをコントロールできるようにする分散型アイデンティティプロジェクト
- Proof-of-Humanity(PoH):イーサリアム上に構築された社会的な身元確認システム
- BrightID:ソーシャルグラフの作成と分析を通じて,本人確認の改革を目指す分散型オープンソース・ソーシャルアイデンティティネットワーク
- Proof-of-Personhood Passport(PoPP):分散型デジタルIDアグリゲータ
ENSを知りたいあなたはこちらからどうぞ.
分散型アイデンティティの解説動画はこちらがわかりやすいです.
分散型アイデンティティを深く理解するためには,まずは以下の用語を理解しましょう.
アイデンティティ(Identity)
アイデンティティとは,ユニークな特性によって定義された個人の自己意識(明確な人間の実体)を意味します.
また,アイデンティティは,組織や権威等の人間以外の実体を指すことがあります.
デジタルアイデンティティは,人間などの主体をコンピュータで処理するためのアイデンティティ情報であり,それぞれの属性情報から構成されます.
識別子(ID:Identifier)
識別子(ID:Identifier)とは,特定のアイデンティティを示すポインタの役割を果たす情報の一部です.
一般的なIDには以下のようなものがあります.
- 名前
- Social Security Number/Tax ID Number(アメリカ),マイナンバー(日本)
- 携帯電話番号
- 生年月日および出生地
- 電子メールアドレス,ユーザ名,アバターなどのデジタルID証明書
これらの従来のIDの例は,中央のエンティティによって発行,保有,管理されています.
名前を変更するには政府の許可が,ハンドルネームを変更するにはソーシャルメディアのプラットフォームからの許可が必要です.
分散型ID(DID)
分散型ID(DID)とは,個人によって発行,保有,管理されるWeb3.0のIDです.
DIDの例として,イーサリアムのアカウントが挙げられます.
誰の許可もなく,中央のレジストリに保存する必要もなく,好きなだけアカウントを作成することができます.
DIDは,分散型台帳(ブロックチェーン)またはPeer-to-Peerネットワークに保存されます.
これにより,DIDはグローバルにユニークで,高い可用性で解決可能であり,暗号的に検証可能です.
DIDは,人,組織,政府機関など,さまざまなエンティティに関連付けることができます.
DIDにより,以下を実現することができます.
公開鍵基盤(PKI:Public Key Infrastructure)
公開鍵基盤(PKI:Public Key Infrastructure)とは,情報セキュリティ対策として,公開鍵と秘密鍵を生成しと秘密鍵を生成する情報セキュリティ対策です.
公開鍵暗号は,ブロックチェーンネットワークにおいて,ユーザIDの認証やデジタル資産の所有権の証明に利用されています.
イーサリアムアカウントのような分散型IDには,公開鍵と秘密鍵があるものがあります.
公開鍵はアカウントのコントローラを識別し,秘密鍵はこのアカウントのメッセージに署名および復号化することができます.
PKIは,すべての主張を検証するために暗号署名を使用して,エンティティを認証し,なりすましや偽のIDの使用を防止するために必要な証明を提供します.
分散型データストア(Decentralized Datastores),いわゆるブロックチェーン
分散型データストア(Decentralized Datastores),いわゆるブロックチェーンは,検証可能なデータレジストリ,つまりオープンで信頼できる分散型の情報保管庫として機能します.
パブリックブロックチェーンの存在により,中央集権的なレジストリにIDを保存する必要がなくなります.
DIDの有効性を確認する必要がある場合は,ブロックチェーン上で関連する公開鍵を調べればよいです.
これは,第三者が認証する必要がある従来のIDとは異なります.
ブロックチェーンを知りたいあなたはこちらからどうぞ.
アテステーション(Attestation)
アテステーション(Attestation)とは,ある実体が別の実体について行う主張(証明)のことです.
ある自動車局(1つのエンティティ)があなたに発行した運転免許証は,あなた(別のエンティティ)が合法的に車の運転を許可されていることを証明するものです.
アテステーションはIDとは異なります.
証明には,特定のIDを参照するためのIDが含まれ,このIDに関連する属性について主張します.
例えば,運転免許証はID(名前,生年月日,住所)を持つが,運転する法的権利に関する証明書でもあります.
アテステーションの解説動画はこちらがわかりやすいです.
分散型アイデンティティにおけるアテステーションの種類は以下になります.
- オフチェーンアテステーション
- 永続的なアクセスによるオフチェーンアテステーション
- オンチェーンアテステーション
- ソウルバウンドトークンとアイデンティティ
オフチェーンアテステーション
証明書をオンチェーンアテステーションに保存することの懸念の1つは,個人が非公開にしたい情報が含まれている可能性があることです.
イーサリアムのブロックチェーンは公開されているため,そのような証明書を保存することは魅力的ではありません.
その解決策として,ユーザはオフチェーンアテステーションとしてデジタルウォレットに保有し,オンチェーンに保存されている発行者のDIDで署名された証明書を発行することにします.
この証明書はJSON Web Tokenとしてエンコードされ,発行者のデジタル署名を含んでいます.
ここで,オフチェーンアテステーションを説明するための仮想シナリオを紹介します.
ある大学(発行者)が証明書(デジタル学術証明書)を生成し,その鍵で署名して,ボブ(ID所有者)に発行します.
ボブは求人に応募し,雇用者に自分の学歴を証明したいので,自分のモバイルウォレットから証明書を共有します.すると企業(検証者)は,発行者のDID(Ethereum上の公開鍵)を確認することで,証明書の有効性を確認することができます.
永続的なアクセスによるオフチェーンアテステーション
オフチェーン認証と永続的なアクセスでは,証明書はJSONファイルに変換され,オフチェーン(理想的にはIPFSやSwarmのような分散型クラウドストレージプラットフォーム)に保存されます.
ただし,JSONファイルのハッシュはオンチェーンに保存され,オンチェーンレジストリを介してDIDにリンクされます.
関連付けられたDIDは,証明書の発行者のものであるか,受信者のものであるかのどちらかです.
この方法により,証明はブロックチェーンベースの永続性を獲得し,請求情報は暗号化され検証可能なまま維持されます.
また,秘密鍵の所有者は情報を復号化できるため,選択的な開示も可能です.
オンチェーンアテステーション
オンチェーンアテステーションは,イーサリアムブロックチェーン上のスマートコントラクトに保持されます.
スマートコントラクト(レジストリとして機能する)は,アテステーションを対応するオンチェーンDID(公開鍵)にマッピングします.
ここで,オンチェーンアテステーションが実際にどのように機能するかを示す例は以下になります.
ある会社(ABC, Inc.)は,スマートコントラクトを使用して所有権を販売することを計画していますが,バックグラウンドチェックを完了した買い手のみを望んでいます.
ABC, Inc.は,バックグラウンドチェックを行う会社に,イーサリアム上でオンチェーン認証を発行してもらうことができます.
この証明書は,個人が個人情報を公開することなく,バックグラウンドチェックに合格したことを証明するものです.
株を売るスマートコントラクトは,レジストリコントラクトでスクリーニングされた購入者の身元を確認し,誰が株の購入を許可されているかどうかをスマートコントラクトが判断することが可能になります.
ソウルバウンドトークンとアイデンティティ
ソウルバウンドトークン(譲渡不可NFT)は,特定のウォレットに固有の情報を収集するために使用される可能性があります.
ソウルバウンドトークンは,特定のイーサリアムアドレスに結びついたユニークなオンチェーンアイデンティティを効果的に作成し,成果(例:特定のオンラインコースを終了,ゲームの目標スコアを達成)やコミュニティへの参加を表すトークンを含むことができます.
ソウルバウンドトークンを知りたいあなたはこちらからどうぞ.
分散型アイデンティティを構成するDIDとアテステーションの役割
分散型アイデンティティを構成するDIDとアテステーションの役割を紹介します.
分散型アイデンティティは,アイデンティティ関連情報が自己管理され,非公開かつポータブルであるべきという考え方であり,DIDとアテステーションが主要な構成要素です.
DIDの文脈では,検証可能な認証(クレデンシャル)は,改ざん防止された,暗号学的に検証可能な発行者の主張です.
エンティティ(組織など)が発行するすべての証明書または検証可能な認証は,そのDIDと関連付けられます.
DIDはブロックチェーン上に保存されるため,誰でもイーサリアム上で発行者のDIDをクロスチェックすることで証明の有効性を検証することができます.
基本的に,イーサリアムのブロックチェーンは,特定のエンティティに関連するDIDの検証を可能にするグローバルディレクトリのように機能します.
DIDが,アテステーションが自己管理され,検証可能である理由となります.
発行者が存在しなくなったとしても,保有者は常に証明書の出所と有効性を証明することができます.
また,DIDによって個人情報のプライバシーを保護するためにも,DIDは極めて重要です.
例えば,個人が証明書(運転免許証)を提出する場合,検証者は証明書の情報の有効性を確認する必要はない.
その代わり,検証者は証明の真正性と発行組織のアイデンティティを暗号的に保証するだけで,証明が有効かどうかを判断することができます.
分散型アイデンティティのメリット
分散型アイデンティティのメリットは以下になります.
- 分散型アイデンティティは,ID情報の個人管理を強化します.分散型IDとアテステーションは,中央集権的な当局やサードパーティーのサービスに依存することなく検証することができます.
- 分散型アイデンティティ・ソリューションは,ユーザアイデンティティの検証および管理のための,信頼性が高く,シームレスで,プライバシーを保護する方法を促進します.
- 分散型アイデンティティは,ブロックチェーン技術を活用し,異なる当事者間の信頼関係を構築し,アテステーションの有効性を証明するための暗号化された保証を提供します.
- 分散型アイデンティティは,アイデンティティデータのポータブル化を実現します.ユーザは,証明書と識別子をモバイルウォレットに保存し,好きな相手と共有することができます.分散化されたIDとアテステーションは,発行組織のデータベースにロックされることはありません.
- 分散型アイデンティティは,個人が何かを所有または行ったことを,それが何であるかを明らかにせずに証明することを可能にする,新しいゼロ知識証明とうまく機能するはずです.これは,投票などのアプリケーションにおいて信頼とプライバシーを結合する強力な方法となる可能性があります.
- 分散型アイデンティティは,1人の人間が複数の人間になりすましてゲームやスパムを行うシビル攻撃に対して,それを識別するためのアンチ・シビル機構を可能にします.
分散型アイデンティティのユースケース
分散型アイデンティティのユースケースは以下になります.
- ユニバーサルログイン
- Know-Your-Customer(KYC)認証
- 投票とオンラインコミュニティ
- シビル対策
ユニバーサルログイン
分散型アイデンティティは,パスワードベースのログインを分散型認証に置き換えるのに役立ちます.
サービスプロバイダはユーザに対して認証を発行することができ,その認証はイーサリアムウォレットに保管することができます.
認証の例としては,保有者にオンラインコミュニティへのアクセスを許可するNFTが挙げられます.
Sign-In with Ethereum機能は,サーバはユーザのイーサリアムアカウントを確認し,そのアカウントアドレスから必要な認証を取得できます.
Sign-In with Ethereum機能により,ユーザは長いパスワードを覚えることなくプラットフォームやウェブサイトにアクセスすることができ,ユーザのオンライン体験を向上させることができます.
Know-Your-Customer(KYC)認証
多くのオンラインサービスを利用する場合,運転免許証やパスポートなどの証明書を提出する必要があります.
しかし,この方法では,個人のユーザ情報が漏洩する可能性があり,サービスプロバイダも証明書の真偽を確認できません.
そこで,分散型アイデンティティにより,企業は従来のKnow-Your-Customer(KYC)プロセスを省略し,検証可能な認証を介してユーザアイデンティティを認証することができます.
これにより,ID管理のコストを削減し,偽の書類の使用を防ぐことができます.
投票とオンラインコミュニティ
オンライン投票とソーシャルメディアは,分散型アイデンティティの新しいアプリケーションです.
オンライン投票の仕組みは,特に悪意のあるアクターが偽のIDを作成して投票する場合,操作の影響を受けやすいです.
個人にオンチェーン認証を提示するよう求めることで,オンライン投票プロセスの完全性を向上させることができます.
分散型アイデンティティは,偽アカウントのないオンラインコミュニティの構築に役立ちます.
例えば,各ユーザはENSのようなオンチェーンIDシステムを使って自分のIDを認証する必要があり,ボットの可能性を減らすことができるかもしれません.
シビル対策
シビル攻撃とは,個々の人間がシステムを騙して複数の人間であると思い込ませ,影響力を増大させることを指します.
2次投票を利用した助成金支給アプリケーションは,より多くの個人が投票することで助成金の価値が上がり,ユーザが多くのIDに分かれて寄付するインセンティブが働くため,このシビル攻撃を受けやすいと言われています.
分散型アイデンティティは,参加者が本当に人間であることを証明する負担を増やすことで,これを防ぐのに役立ちますが,多くの場合,特定の個人情報を明かす必要はありません.
まとめ
個人が自分のアイデンティティの関連情報を管理できるWeb3.0のアイデンティティ「分散型アイデンティティ」を紹介しました.
また,イーサリアムにおける分散型アイデンティティのユースケースを解説しました.
分散型アイデンティティは難しい概念ですが,イーサリアムやWeb3.0でよく頻出するので,きちんと理解しておきましょう!
仮想通貨を取引したいあなたは,まずは国内取引所のCoincheckを開設しましょう!
Coincheckが扱っていない仮想通貨を取引したい場合や低い手数料で取引したい場合は,海外取引所を開設する必要があります.
しかし,海外取引所は日本円が使えないので,国内取引所から仮想通貨を送る必要があります.
そこで,以下のおすすめの仮想通貨取引所(主に海外)で開設して,Coincheckからビットコインやイーサリアムを送りましょう!