見出し画像

【翻訳記事】デジタルな自己主権に向けて: web3アイデンティティスタック(Towards Digital Self-Sovereignty: The Web3 Identity Stack)

本記事は、Nichanan Kesonpat@nichanank)さんが書いた「Towards Digital Self-Sovereignty: The Web3 Identity Stack」という記事を日本語に翻訳したものです。SSIやDIDの技術スタックの全体感をキャッチアップしたい方に良い記事だと思います。(二万字超えているので忙しい方は「結論」や気になる技術スタックの章から読むと良いかもしれません。)

以下本文です

この記事では、以下のような分散型アイデンティティ(Decentralized Identity)のコアコンセプトについて取り上げます。

  • インターネット上のアイデンティティの進化

  • レイヤー別のweb3アイデンティティインフラスタックの概要

  • プライバシー原則の開発

(Proof-of-Personhood<人間であることの証明>、コンプライアンス、およびアプリケーション層については、今後の記事で取り上げる予定です)

Web3 Identity Infrastructure Landscape — January 2023

アイデンティティとは、人間やエンティティ(実体)もしくは物質に関するデータから構成される創発的な性質です。物質世界では、このデータを抽象的な評価や精神的な関連付けの形で脳内に保持しています。デジタル世界では、アイデンティティは2つの要素で構成されます。

「創発」とは、部分の性質の単純な総和にとどまらない特性が、全体として現れること

コトバンク

デジタルアイデンティティの構成要素

  1. 識別子(The identifier / いわゆるID):対象者を識別するためのユニークな文字または数字の集合(例:パスポート番号、Twitter ID、学生証)

  2. データ:対象者に関連するデータ(例:旅行履歴、ツイートやフォロー、学業成績など)

Decentralized Identity(分散型アイデンティティ)とDecentralized Identifiers(分散型識別子 / DIDs)は似ていますが異なるものを指しています。
https://speakerdeck.com/kayato/ssi-dids-vcs-ru-men-zi-liao?slide=5

【訳者メモ】

インターネットのためのアイデンティティ・レイヤーを作ることは、難しい問題です。なぜなら、それがどうあるべきか、どのように実行されるべきかについての合意が欠けているからです。デジタル・アイデンティティはコンテキストに関連しており、私たちは少なくとも多くの異なるコンテキストに存在する多くの種類のコンテンツを通じてインターネットを体験しています。今日、私たちのデジタル・アイデンティティの多くは分断され、一部の関係者の管理下に置かれています。彼らは、自分たちのコンテクストから他のコンテクストへの波及を妨げることに関心を持っています。

ここでのコンテキストは、企業別に発行されたサービスIDとして捉えてます
https://speakerdeck.com/kayato/ssi-dids-vcs-ru-men-zi-liao?slide=8

【訳者メモ】
  • 企業は顧客との関係を重要な資産としてみなしており、顧客との関係を手放そうとしません。いまのところ、その動機となるアプローチはひとつも存在していません。一度限りの限られたアイデンティティですら、企業の支配外のフレームワークを使うことは良いと考えていません。

  • 金融のような特定の業界では、顧客やベンダーとのデジタルな関係を維持する際に、コンプライアンス対応など独自のニーズがあります。

  • 政府には、他の種類の組織とは異なるニーズがあります。例えば、運転免許証やパスポートの管轄がそれにあたります。

このパラダイムは、個人と、私たちのアイデンティティとデータを管理する組織との間に、力の非対称性を生み出しています。それはオンラインとオフラインの両方で一貫した体験を得るために、自分に関する情報を選択的に開示したり、コンテキストを超えてアイデンティティを移植をしたり、同意したりする私たちの自主性を制限するものです。

分散型アイデンティティは、暗号資産やWeb3が台頭するずっと以前から、集団的な取り組みとして行われてきました。その包括的な目標は、中央集権的で画一主義的なゲートキーパーに依存することなく、個人が自分のアイデンティティに対する自主性を取り戻すことです。顧客データの悪用や大企業への信頼の低下により、分散化は次の時代のインターネット・アイデンティティの中心に据えられています。

インターネットアイデンティティの変遷(図部分一部抜粋)

① 中央集権的
・認証
アカウント中心
・所有権
アプリケーションが彼らのユーザーのテーブルとデータを管理します。ユーザーは新しいサービスに訪れるたびにユーザーネームとパスワードを使って新しいアカウントを作ります。ユーザーのデーターはアプリケーション環境ごとにサイロ化します。
・トレードオフ
貧弱なUX: ユーザーは、各サービスで事前のデータ提供がない「まっさらな状態」からスタートします。
セキュリティの低さ: 覚えやすさに比例する。パスワードはアプリケーション間で使いまわされることが多い。
分断:各サイトがユーザーデータを所有。アプリのコンテキストに限定される。
・テクノロジー
X.500, SSL, TLS, HTTPS, PKI, CA

② 連合型
・認証
ユーザー中心
・所有権
アイデンティティ・プロバイダー(IDP)は、アプリケーションのシングルサインオンアプリのシングルサインオンやソーシャルログインを提供し、開発者はユーザーデータや開発者がユーザーデータを管理する手間を省き、ユーザーのパスワード管理を簡素化します。(Google認証やFacebook認証等)
・トレードオフ
UXの向上:ユーザーは、新しいアカウントを作成することなくサインアップすることができます。ユーザーデータを管理する必要がありません。
セミ・ポータブル:ユーザーが自分の基本情報を新しいアプリケーションにインポートすることができます。
中央集権型:IDPモノリスが所有するデータで、ユーザーIDを管理する。その使用方法に関する透明性が低い。
・テクノロジー
SAML, OpenID, connect(OIDC), OAuth2.0 UMA

③ 分散型
・認証
ピア・ツー・ピア
・所有権
第三者が管理するアカウントではなく、アイデンティティ間のP2Pの関係。
データは、あるアイデンティティが他のアイデンティティについて(あるいは自分自身について)主張することによって書き込まれます。
・トレードオフ
自己主権型:データと権限はアイデンティティによって完全に制御される。
全体論的:ユーザは自分のデータをアプリケーション間で移植でき、制約のあるUXに適したPKIツールや教育が必要なため、自分に関する情報を選択的に開示できる。
・テクノロジー
DPKI, DIDs, VCs, DIDComm, ZKP

分散型アイデンティティ(Decentralized identity)のコアコンセプト

分散型識別子【Decentralized identifiers (DIDs)】と認証は、分散型アイデンティティ【Decentralized identity】の主要な構成要素です。

分散型識別子【Decentralized identifiers (DIDs)】は、中央管理されない自主的な「名前空間」として機能する検証可能なデータレジストリ(VDR)に発行・保管されます。ブロックチェーンに加え、分散型ストレージインフラやP2PネットワークもVDRとして機能することができます。

ここでは、エンティティ(個人、コミュニティ、組織)は、従来のWeb PKI(Public Key Infrastructure)とは異なり、Root of Trust (RoT) として中央の認証局(certificate authorities CAs)に依存しない分散型のPKIを使用して、分散型識別子【Decentralized identifiers (DIDs)】の認証、所有権の証明、および管理を行うことができます。

あるアイデンティティが他の(もしくは自分自身の)アイデンティティに対して行う主張(クレーム / claims)の証明として、データはアイデンティティに書き込まれます。主張(クレーム / claims)の検証は、PKIによって実現された暗号署名を用いて行われます。


分散型識別子【Decentralized identifiers (DIDs)】の4つの特性

  1. Decentralized(分散性):中央集権的なものに頼らずに作成できます。ユーザーが求めているアイデンティティ / 人格 / インタラクションの分離を実現するために、ユーザーが望んだ数のエンティティを発行することができます。

  2. Persistent(永続性):一度作成されたエンティティは永続的に割り当てられます。(ただし、一部のDIDsは一過性のアイデンティティのために設計されています)。

  3. Resolvable(解決可能性): 問題のエンティティに関する追加情報を明らかにするために使用することができます。

  4. Verifiable(検証可能性):エンティティは、暗号署名と証明により、第三者に依存することなく、あるDIDの所有権やDIDに関する主張(Verifiable Credentials)を証明することができます。

これらの特性により、DIDsは、ユーザー名(検証不可能)、パスポート(分散型ではない)、ブロックチェーンアドレス(永続的ではなく、解決可能性が限定的)などの他の識別子と区別されます。

World Wide Web Consortium (W3C)は、Webの標準規格を開発するために協力する組織、スタッフ、および一般協力者からなる国際的なコミュニティです。W3CのDID Specは、4つの主要なコンポーネントを定義しています。

  1. Scheme(スキーム):接頭辞 "did "は、他のシステムに対して、URL、電子メールアドレス、製品バーコードのような他のタイプの識別子ではなく、あるDIDと相互作用していることを示します。

  2. DID Method(DID メソッド):他のシステムに対して識別子の解釈方法を指定します。W3Cのウェブサイトには100以上のDID Methodsが掲載されており、多くの場合、独自のVDRに関連付けられ、識別子の作成、解決、更新、無効化のメカニズムが異なっています。

  3. Unique Identifier(ユニークな識別子):DID方式に固有のユニークなID。例えば、特定のブロックチェーン上のアドレスなど。

  4. DID Document:(DID ドキュメント):上記の3つの要素は、DIDドキュメントによって解決されます。このドキュメントには、エンティティが自身を認証する方法、エンティティに関するあらゆる属性/主張、およびエンティティに関する追加データが配置されている場所へのポインタ(「サービスエンドポイント」)が含まれています。


Anatomy of a Decentralized Identifier and DID Document

クリプトの衝撃

公開鍵基盤(PKI)は以前から存在していましたが、クリプトはトークンネットワークにおけるインセンティブメカニズムを通じてその採用を加速させました。かつてはプライバシーに敏感な技術者が主に使用していたものが、今では新しい経済に参加するための必須条件となっています。ユーザーは、資産を自己管理し、Web3アプリケーションと対話するためにウォレットを作成する必要がありました。ICOブーム、DeFiサマー、NFTマニア、トークン化されたコミュニティのおかげで、かつてないほど多くのキーがユーザーの手に渡りました。これに伴い、鍵の管理をより簡単に、より安全にする製品やサービスの活気あるエコシステムが生まれました。クリプトは、分散型アイデンティティのインフラとマスアダプションのための加速装置となりました。

ウォレットを起点に考えてみましょう。ウォレットはまだ金融的な資産管理の文脈で主に考えられていますが、トークン化とオンチェーンの履歴により、私たちの興味(NFTコレクション)、仕事(Kudos、101)、意見(ガバナンス投票)を表現することができるようになりました。秘密鍵を失うことは、お金を失うようなことではなく、パスポートやソーシャルメディアのアカウントを失うようなことになりつつあります。クリプトは、私たちが所有するものと私たちが誰であるかの境界を曖昧にしています。

しかし、私たちのオンチェーン上の活動や保有資産は、私たちが誰であるかという限定的な(そしてプライバシーを保護しない)見方を与えます。ブロックチェーンは、非中央集権的なアイデンティティ・スタックの1つのレイヤーに過ぎません。その他のレイヤーは、次のような重要な問題に取り組むのに役立ちます。

  • 我々は、ネットワークやエコシステムを介して、どのように自分自身を識別し、証明するのか?

  • プライバシーを維持しながら、自分自身に関する事柄(評判、ユニークさ、コンプライアンス)をどのように証明することができるのか?

  • 自分のデータへのアクセスをどのように許可し、管理し、取り消すか?

  • 自分自身でアイデンティティとデータを管理する世界で、どのようにアプリケーションと関わりあうのか?

これらの問題に対する解答は、今後何世代にもわたってインターネットがどのようなものであるかに大きな影響を与えます。

以下のセクションでは、web3アイデンティティスタックのレイヤーごとの概要を説明します。すなわち、検証可能なデータレジストリ、分散型ストレージ、データミュータビリティ(可変性)とコンポーザビリティ、ウォレット、認証、認可、およびアテステーション(証明)を指します。

図の一部翻訳

  • Attestations

    • あるアイデンティティが他の アイデンティティまたは自分自身について主張(Claim)する暗号化された証明です。

  • Access Control & Authorization

    • ユーザがアクセスできるリソースと、それらのリソースで何をすることが許可されているかを定義します。

  • Authentication

    • 1つまたは複数の認証要素に基づいて、ユーザーの身元を確認します。

  • Agents & Key Management

    • アプリとVDRS間の通信、アクセス許可、キーローテーションなどを可能にするインフラとユーザーインターフェイスです。

  • Decentralized Identifiers (DIDs)

    • 自己主権的で暗号的に検証可能な、一意に生成された識別子を1つまたは複数の公開鍵で制御します。

  • Verifiable Data Registry

    • 発行者と検証者が照合可能な識別子とスキーマを保持します。

Web3 アイデンティティスタック

検証可能なデータレジストリ(VRD:Verifiable Data Registries)としてのブロックチェーン

ブロックチェーンの分散性と不変性は、DIDを発行するための検証可能なデータレジストリ(VRD)として適しています。そして実際に、以下のような様々なパブリックブロックチェーン用のW3C DIDメソッドが存在します。

  • Ethereum

    • did:ethr:<public key>はEthereumのアカウントをIDとして表しています。

  • Cosmos

    • did:cosmos:<chainspace>:<namespace>:<unique-id>はCosmosインターチェイン互換のアセットを表します。

  • Bitcoin

    • did:btcr:<btcr-identifier>は、UTXOベースのビットコインブロックチェーン内の取引位置(トランザクションポジション)を参照し、TxRefエンコードされたトランザクションIDを表します。

注目すべきはdid:pkh:<address>で、ブロックチェーンネットワーク間での相互運用を目的に設計された、台帳に依存しないジェネレーティブなDID方式です。<address>は、チェーン間でキーペアを表現するためのCAIP-10標準に従ったアカウントIDです。

Fractal は、ユニークで様々なレベルの KYC済みのユーザーを必要とするアプリケーションのために設計された、アイデンティティ提供および検証用のプロトコルです。活性度やKYCの確認が完了すると、対応するイーサリアムアドレスにFractal DIDが発行され、適切なリストに追加されます。FractalのDIDレジストリはEthereum上のスマートコントラクトであり、カウンターパーティはFractal DIDとその検証レベルを調べることができます。

KiltDockSovrinは、自己主権型アイデンティティ(SSI:Self-Sovereign Identity)のためのアプリケーション特化型ブロックチェーンです。この記事の執筆時点では、主に企業がエンドユーザーにアイデンティティやクレデンシャルを発行するために利用されています。ネットワークに参加するノードには、DID/クレデンシャル発行などのトランザクション処理、クレデンシャルスキーマの定義、失効更新の実行のために、ネイティブトークンのステークが要求されます。

分散型データストレージ(Decentralized Data Storage)

汎用的なブロックチェーンは、資産所有やトランザクション履歴などの不変のユーザーデータのデータソースとしても機能しますが(ポートフォリオトラッカーや「DeFiスコア」アプリなど)、大量の情報を書き込んで定期的に更新するのは運用コストが高く、またデフォルトでデータ公開されプライバシーが損なわれるため、ユーザーに関するほとんどのデータ保存には不向きと思われます。

とはいえ、Arweave*のように永久保存を目的としたアプリケーション特化型のブロックチェーンも存在します。Arweaveは、ネットワーク上に保存された情報を複製する代わりに、ブロック報酬と取引手数料をマイナーに支払っています。マイナーは、新しいブロックを追加するために「Proof-of-Access」を提供することが要求されます。また、手数料の一部は永久基金に支払われ、将来、保管コストがインフレと手数料で賄えなくなったときに、マイナーに支払われることになります。

EthereumとArweaveは、ブロックチェーンに基づくデータ永続化のアプローチの一例です。Ethereumでは、各フルノードがチェーン全体を保存する必要があります。Arweaveでは、新しいブロックと新しいトランザクションを処理するために必要なすべてのデータは、個々のブロックの状態にメモリーされ、新しい参加者は、その信頼できるピアから現在のブロックのみをダウンロードすることによってネットワークに参加できるようになります。

コントラクト基盤の永続性は、データを複製して各ノードが永久に保存することはできないと感覚的に理解できます。その代わりに、データの一部を一定期間保持することに同意する複数のノードとのコントラクト(契約)を通じてデータが永続化され、永続化されたデータを保持し続けるためには、契約期間が切れるたびに更新する必要があります。

IPFSは、P2Pネットワークにおいて、検証可能なコンテンツアドレス付きのデータの保存と転送を可能にします。ユーザーは自分のIPFSノードに必要なデータを保存したり、専用のノードグループを利用したり、PinataInfuraweb3.storageなどのサードパーティの「ピン留め」サービスを利用したりすることができます。あるノードがデータを保存している限り、データはネットワーク上に存在し、他のノードが要求したときにそれを提供することができます。IPFSの上にはFilecoinCrust Networkなどの暗号経済層があり、長期的なデータ保存のための分散市場を作ることで、ネットワークにデータを保存するインセンティブを与えるように設計されています。

個人識別情報(Personally Identifiable Information : PII)については、ネットワークに保存されたデータをユーザーが削除できるため、パーミッションド IPFSGDPR/CCPAの忘れられる権利に準拠するために使用される可能性があります。アイデンティティ・ウォレットNuggetsはこのアプローチを採用し、加盟店やパートナーが専用ノードを運営することでさらに分散化を進めています。

コントラクトベースの分散型ストレージソリューションとしては、他にもSiaや、ネットワーク上の複数のノードで個々のファイルを暗号化・分割するStorjなどがあります。どちらも、一部のノードがオフラインになってもデータの可用性を確保するためにErasure Coding(ファイルを提供するストレージノードのサブセットのみを必要とする)を使用し、ネイティブトークンを使用してストレージに対するインセンティブ構造を内蔵している。

※ Erasure Coding:消失訂正符号:高度な数学を活用して、ファイルシステムソフトウェアが既知のデータと呼ばれる部分を使用して欠落データを再生成できるようにするストレージデータ保護方法

イレイジャーコーディングとRAIDの説明:データ保護の方法

データ可変性とコンポーザビリティ

汎用ブロックチェーン、Arweave、IPFSはすべて不変性を保証しており、静的なNFTアートや永久記録のようなデータには有効な特性です。しかし、今日のほとんどのアプリケーションとのインタラクションは、継続的にデータを更新しています。Web3のプロトコルは可変的データのために設計され、その下にある分散型ストレージレイヤーを活用することで、まさにそれを可能にするために作られました。

Ceramicは分散型データの可変性とコンポーザビリティのためのプロトコルであり、IPFSやArweaveのような永続的データストレージネットワークから不変ファイルを取り出し、動的データ構造に変換することで機能します。Ceramicでは、これらの「データストリーム」は独自の可変性台帳のようなものです。プライベートデータは、外部プライベートストレージにルーティングするDIDデータストアに接続されたCeramic上でインデックス化されたスキーマで、オフチェーンに保存することができます。

Ceramicを搭載したアプリケーションでユーザーがプロフィールを更新すると、プロトコルはそれらの更新をストリームに検証し、以前の状態の変化を追跡しながら新しい状態へと変換します。Ceramic上のすべての更新は、複数のアドレスにマッピング可能なDIDによって検証され、ユーザーがサーバーなしでデータを更新する道を開きます。

今日、Web2のモノリス達は、UIとバックエンドを所有し、ユーザーデータを保存し、管理しています。GoogleとFacebookはこのデータを使って、彼らのプラットフォームでの体験をアルゴリズムでパーソナライズし、彼らが収集したデータをさらに製品化しています。新しいアプリケーションは、オンボーディングプロセスをゼロから始めなければならず、最初からパーソナライズされた体験を提供することができないため、市場の競争力が低下しています。

Web3は、データを民主化し、新しい製品やサービスのための競争の場を平準化し、実験のためのオープンな環境とアプリのための競争市場を創出します。ユーザーがプラットフォーム間でデータを持ち運べる世界では、アプリ開発者はユーザーにパーソナライズされた体験を提供するために、何もない状態から始める必要がありません。ユーザーは自分のウォレットでログインし、アプリに自分が完全にコントロールできる「データ保管庫」への読み取り/書き込みを許可することができます。

Ceramic上のComposeDBは、アプリケーション開発者がGraphQLを使用してコンポーザブルなデータモデルを発見、作成、再利用できるようにする分散型グラフデータベースです。グラフのノードはアカウント(DIDs)またはドキュメント(データストリーム)です。グラフ内のエッジはノード間の関係を表します。

モデルは、ドキュメントのデータ構造、検証ルールリレーションディスカバリー情報などのメタデータを格納するCeramic Streamsです。開発者は、モデルを作成、合成、リミックスして、アプリケーションのデータベースとして機能するデータコンポジット(Composite)を形成することができます。これは、UIDと(サイロ化された)関連データを集中管理する従来のユーザーテーブルを置き換えるものです。 アプリケーションは、独自のサイロ化したテーブルを管理する代わりに、ユーザーが管理する公開データセットの上に構築することができます。

アプリケーションは、与えられたコンテキストに対して使用するスキーマを許可なく定義できるため、最も有用なデータモデル(ソーシャルグラフ、ブログ投稿などの定義されたスキーマ)のシグナルを提供するキュレーションマーケットが重要になるのです。このようなデータモデルに関するマーケットプレイスがあれば、アプリはそのデータモデルにシグナルを送ることができ、より消費しやすいものになります。これにより、より優れた分析や情報グラフを生成する公開データセットが奨励され、その上で製品がさらにイノベーションを起こすことができます。

Tablelandは、可変的な構造化リレーショナルデータのためのインフラストラクチャであり、各テーブルはEVM互換チェーン上のNFTとしてミントされます。NFTの所有者は、テーブルにアクセス制御ロジックを設定し、第三者が適切な書き込み権限を持っていれば、データベース上で更新を実行できるようにすることができます。Tablelandは、テーブルの作成とその後の変更を管理するオフチェーンバリデータネットワークを実行します。

オンチェーンおよびオフチェーンの更新は、baseURIとtokenURIを使用してTablelandネットワークを指し示すスマートコントラクトによって処理されます。Tablelandでは、NFTメタデータは(アクセス制御を使用して)変更でき、(SQLを使用して)照会でき、(Tablelandの他のテーブルと)コンポーザビリティーがあります。

ERC-20やERC-721のようなスマートコントラクト規格が、トークンの作成と転送のための共通言語を提供したように、データモデル標準は、プロファイル、評価、DAO提案、ソーシャルグラフなどのデータについてアプリ間で共通理解を提供します。誰でも登録できるオープンレジストリにより、このデータは複数のアプリケーションで再利用することができます。

アプリケーションをデータレイヤーから切り離すことで、ユーザーは自分のコンテンツ、ソーシャルグラフ、およびレピュテーションをプラットフォーム間で移植することができます。アプリケーションは同じデータベースを利用し、それぞれのコンテキスト内でそれを使用することができ、ユーザーはコンテキスト間でコンポーザビリティーのあるレピュテーションを得ることができます。

ウォレット

大まかに言えば、ウォレットは、鍵管理、通信(保有者、発行者、検証者間のデータ交換)、請求項の提示と検証のためのインターフェースと基礎インフラで構成されています。

クリプトウォレット(MetaMask、Ledger、Coinbase Walletなど)とアイデンティティウォレットを区別することは価値があります。クリプトウォレットはブロックチェーンネットワークに固有の暗号鍵を保管し、トークンの送受信やトランザクションの署名を行うために設計されています。アイデンティティ・ウォレットは、アイデンティティを保管し、ユーザーがアプリケーションやサービス間でアイデンティティ・データを提示できるようなクレーム(Claim)を作成し、提示できるようにするものです。

アイデンティティウォレットの例としては、ONTONuggetsPolygon ID Walletなどがあります。Fractalのような一部のアイデンティティウォレットは、オンボーディングフローの一部として活性度チェックとKYCを備えており、ユーザーはそのような要件を持つアプリケーションに提示するクレーム(Claim)を持つことができます。これはクリプトウォレットではあまり一般的ではありません。アイデンティティウォレットは、DID、Verifiable CredentialsDIDCommのW3Cが認めた実装や、web3以外のユースケースをサポートする可能性も高いです。

アイデンティティウォレットの例

WalletConnect*は、ウォレット同士やDappsをつなぐ通信プロトコルです。ミニマルでユニークなプロトコルとして、すでに数百万人のクリプトユーザーに利用されているWalletConnectは、DIDCommに代わる自己主権型ID基盤の普及を加速させる強力な手段となる可能性を秘めています。サービスプロバイダーからのホスティングメディエーターインフラを必要とするDIDCommとは異なり、WalletConnectはリレーネットワーク内の「クラウドメールボックス」にメッセージを保存し、ウォレットがオンラインに戻ると、これらのメッセージをプッシュします。

認証(Authentication)

認証は、1 つまたは複数の認証要素に基づいてユーザーの身元を確認します。認証要素は、ユーザーが所有するもの(デジタル署名、IDカード、セキュリティ・トークン)、ユーザーが知っているもの(パスワード、PIN、秘密の答え)、生体認証(指紋、音声、網膜スキャン)などがあります。

インターネットの認証の進化

分散型アイデンティティパラダイムでは、ユーザは自分のウォレットを使って自分自身を認証することができます。バックグラウンドで、ウォレットは保存しているキーを使用してデジタル署名を生成し、そのアカウントに関連する秘密鍵を所有していることを「証明」する役割を果たします。クリプトウォレットは署名を生成できるため、Web3ログインを提供するアプリケーションでは、ユーザーがMetamaskまたはWalletConnectで認証できるようにすることができます。

長年、クリプトネイティブは「Connect Wallet」という、どのアカウントで利用するかを指定する基本操作でDapps(分散型アプリケーション)とやりとりしていた。Dappsは接続したユーザーについて何も記憶しておらず、サイトを訪れるたびにまっさらな状態として扱われます。

今日、ユーザーとDappsのインタラクションはより深いものになっています。その際、分散型アイデンティティのインフラは、アプリケーションがユーザーのコンテキストにアクセスすることで、個人が自分のデータをコントロールしながら、パーソナライズされた体験を提供するために役立ちます。

ユーザー設定、プロフィール、プライベートチャットメッセージの読み込みなど、よりリッチなコンテクストインタラクションを行うためには、アプリケーションはまず、そのアカウントの実際の鍵の所有者と通信していることを確認する必要があります。"Connect Wallet"はこの保証を提供しませんが、認証規格はこの保証を提供します。認証は、ユーザーとのセッションを確立し、アプリケーションがユーザーのデータを安全に読み書きできるようにします。

Sign-In with EthereumSIWE)は、SpruceENSEthereum Foundationが主導している認証規格です。SIWEは、ブロックチェーンベースのアカウントを使用してユーザーがサービスにログインするためのメッセージ形式(jwtに似ている)を標準規格化しています。Sign-In with X (CAIP-122) はこれを基に、SIWEをイーサリアムに特化したSIWxの実装とし、ブロックチェーン間で動作するように規格を一般化したものです。

個人にとっては、ユーザー名とパスワードを作成することなく、Web3ウォレットでサインアップまたはログインできることを意味し、オンラインアイデンティティに対する主権を維持しながら、ソーシャルログインのような「数クリック」のUXを備えています。 アプリケーションは、Web3ネイティブの視聴者のための市場参入戦略としてこれを組み込むことができ、ユーザーがいる場所で会うことができます。

中期的には、クリプトウォレットを使用してDappsやその他のWeb2サービスに署名する機能は、Web3ネイティブのUX改善として機能します。しかし、この場合、web2で問題となった相関や追跡の問題が発生する可能性があります。Peer DIDs自己認証識別子(self-certifying identifiers)による認証は、この問題の代替ソリューションとなりえます。

上記の「バニラ」DIDとは異なり、Peer DIDsは2人以上の既知の当事者間で使用されるように設計されています。これらは、各サービスや相互作用のための一意の識別子として使用することができます。そのデジタルアイデンティティ内のクリプトウォレットアドレスは、各加盟店やサービスとのやり取りにおける検証の証明として、VCと共に保存することができます。

承認(Authorization)とアクセスコントロール

認証(Authentication)はユーザーの身元を確認するものですが、承認(Authorization)は、あるエンティティがどのリソースにアクセスできるか、そしてそのリソースで何をすることが許可されるかを決定します。この2つは別々のプロセスですが、UXフローではしばしば手を取り合って行われます。ソーシャルログインでサードパーティーのサービスにサインイン(authenticating:認証)した後、ユーザーは次のような承認(Authorization)の要求を求められることがあります。

承認プロンプトの例

連合アイデンティティ(federated identity)のパラダイムでは、Google のような アイデンティティプロバイダーが、アプリのリストとそれらのアプリに許可した関連権限を管理し、サードパーティのアプリに自分のデータを表示または更新する権限を付与します。Web3の承認(authorization)インフラと規格は、同じ目標を達成するのに役立ちます。ただし、ここでは自己主権型のデータを持ち、中央集権的な仲介者なしで、各サードパーティに復号/読み取り/更新の権利を与えることができます。

トークン化されたコミュニティの台頭に伴い、Collab.LandGuildTokenproof などの Web3 トークンゲート製品が登場しました。これらのツールの主な用途は、メンバー専用の Discord チャンネルへのアクセス制御や、役割やレピュテーションに基づくよりきめ細かいアクセスです。手動でアクセス権を与える代わりに、コミュニティはトークン保有量、チェーン上での活動、またはソーシャル検証に基づいてプログラム的にアクセス権を付与することができます。

Lit*は、MPC技術を利用して、Litネットワークノード間で秘密鍵の「共有」を行う分散型の鍵管理・アクセス制御プロトコルです。公開鍵と秘密鍵のペアはPKP(Programmable Key Pair)NFTによって表現され、その所有者が鍵ペアの唯一のコントローラーとなります。PKPの所有者は、任意に定義された条件が満たされたときに、自分の代わりに鍵ペアを集約してファイルの復号やメッセージの署名を行うようネットワークを起動させることができます。

アクセスコントロールの文脈では、Litは、ユーザーがオフチェーンリソースへのアクセスを与えるオンチェーン条件を定義することを可能にします。 例えば、DAOはArweaveやAWSにファイルをアップロードし、それをLitで暗号化し、一連の条件(例えばNFTの所有権)を定義することができます。署名者が条件を満たしていることを確認するためにブロックチェーンをチェックし、条件を満たしている場合にファイルを復号するために署名者のキーシェアを集約するプロトコルノードに、適格なウォレットが署名してメッセージをブロードキャストします。この同じインフラを使用して、Shopifyの割引、トークンゲートのZoomルームやGathertownスペース、ライブストリーム、Google DriveへのアクセスなどのWeb2エクスペリエンスをアンロックすることができます。

Keplerは、ユーザーが管理するデータ保管庫(「Orbits」)を中心にデータを整理します。これは、ホストの鍵だけがコントロールできるスマートコントラクトとして、そのデータの指定されたホストのリストを表します。これらのデータ保管庫は、信頼できる当事者、ホスト間の合意形成メカニズム、リソース所有者、および許可有効性によって管理することができます。 SIWEを利用する人は誰でもすぐにプライベートデータ保管庫を利用し、自分のプリファレンス、デジタル認証情報、プライベートファイルを保管することができます。複数のストレージバックエンドに対する「Bring your own storage」サポートにより、ユーザーはセルフホストまたはホストされたバージョンを使用することができます。

これまでに述べた構成要素を組み合わせて使用するアプリケーションの例をいくつか紹介します。

  • Orbisは、データの保存と更新にCeramicを使用するSNSアプリで(「web3 Twitter/Discord」)、DMは保存前にまずLit経由で暗号化されます。

  • Litを分散型暗号化システムとして使用し、Tableland データを復号化できる権利を委任(デリゲート)します。

  • Keplerは、 Ceramic Documentsをビーコンとして、プライベートストレージにルーティングすることができます。

  • アプリケーションのCeramic streamを「所有」するLit PKPを作成し、Lit Actions(IPFS上のコード)に、任意の条件が満たされた場合に署名し、データベースを更新する機能を付与します。

CACAOは、Sign-in-With Xを用いて作成される、連鎖にとらわれないオブジェクト能力(OCAP)を表現するための規格です。SIWxの署名操作の結果をIPLDベースのオブジェクト能力(OCAP)として記録する方法を定義しており、認証のイベント受信だけでなく、検証可能な承認のための複製可能で再生可能な承認のレシートも作成することができます。

認可メソッドによって、ユーザーはアプリに対して、自分のデータを表示/更新するための、詳細で、適切にスコープされ、検証可能な能力を付与することができます。さらに、更新のたびにメッセージに署名する必要がなく、アプリ上でリッチなインタラクションを行い、セッションの終了時に一度だけ署名するようなセッションベースとすることができます。

証明書(Attestations) & 資格証明書(Credentials)

ここで、分散型アイデンティティのインフラストラクチャのスタックの最上位は次のように表されます。

いくつかの技術:

  • 証明書(Attestations):記録された事象を独自に検証する必要性から生まれたもので、主張(Claim)と署名が有効であることを証明するものです。

  • 資格証明書(Credentials):あるエンティティに関する情報の一部を詳細に記述した文書で、他のエンティティまたは彼ら自身によって書かれ、署名されたものです。クレデンシャルは改ざん不可能であり、暗号学的に検証可能です。これらはウォレットに保存することができます。

Verifiable Credential (VC) は、W3C Verifiable Credentials 仕様で定義された、暗号的に検証可能なデジタル・クレデンシャルの標準データ・モデルおよび表現形式です。

  • Issuers(発行者):クレデンシャルの発行する人・組織です。(例:大学)。

  • Holders(保有者):クレデンシャルを所有している人です。(例:学生)。

  • Verifiers(検証者):クレデンシャルを検証する人です。(例:これから採用を行う人)

  • Verifiable Presentations(検証可能なプレゼンテーション):ユーザーがデータを第三者と共有する場所であり、第三者はクレデンシャルが実際に発行者によって署名されているかどうか検証できます。

ここでは、「発行者」、「保有者」、「検証者」という用語は相対的なものであることに注意してください。誰もが自分のDIDとクレデンシャルのコレクションを持っています。

クレデンシャルとは、レピュテーションを構成する要素です。クレデンシャルはコンテキストによって様々な変化する社会的な事象です。クレデンシャルの 1 つまたは複数の組み合わせは、エンティティの資格、能力、または権威の代理とし て使用することができます。誰でも「自分は有名大学を優秀な成績で卒業した」と自己主張することができますが、それは他の人々にとってはあまり意味がありません。正当な、あるいは一流の資格として認められているクレデンシャルを保持しているのは大学なのです。

web3ネイティブのバッチ付け(badging)やproof-of-Xプロジェクトは、すべてがW3CのVC標準に準拠しているわけではありませんが、上記のシステムとの類似性を見いだすことができます。

  • 最も分かりやすい例は、譲渡不可能なNFTバッジで、オンチェーンでの活動を完了したウォレットによってのみミントされるものです。すべての取引履歴がオンチェーンにあるため、最初から検証可能で改ざんができないようになっています。DegenScoreは、DeFiプロトコルとのインタラクションを集計することであなたの猿っぽさ(ape-ishness)を数値化し、スマートコントラクトに書かれたルールを使ってスコアを出力します。これをミントして、クリプトウォレットに保有する「DeFi Credential」として扱うことができます。もし、あるスコアを持つ人に限定したDegen DAOがあれば、このNFTをDAOに提示し、トークンゲートプロトコルがそれを保持していることを確認すれば、Proof of Degen(没頭度の証明)が出来上がります。

  • POAPs*は、あるイベントに参加したこと、またはIRLで誰かと出会ったことを証明するものです-Proof of Attendance(出席証明) / Proof of Encounter(遭遇証明)。

  • OtterspaceはDAOが何を意義のある仕事と判断し、そのメンバーにntNFTバッジを発行することを許可しています。ProvedはDAOのメンバーがDAO固有のNFTバッジをミントできるようにする前に、その主張に「署名」しなければなりません - Proof of Contribution(貢献証明)

  • 101は、オンラインコースの最後に行われるテストに合格すると、ntNFTを発行します。

  • Kleoverse、GithubのデータをもとにTypescript、Rust、Solidityのコンピテンシーバッジをユーザーに発行 - Proof of Skill(スキル証明)

上記のアクセス制御のユースケースに加えて、Lit PKP は暗号公証人として動作し、Lit アクションはクレデンシャルにサインオフする前にチェックを実行することも可能です。例えば、分散型教育プラットフォームでは、コース作成者がテストに合格するための条件を定義し、その条件をLitアクションとして展開し、PKPを使用してその条件に基づいてプログラム的にVCを発行することが可能です。

ここで2つの疑問が生じます。これらのクレデンシャルデータポイントのうち、どれに意味があるのか、そしてレピュテーションのためにどのように集約するのか?

Orange Protocolは、このようなデータポイントをモデルプロバイダー(Model Providers)を通じて明確に定義されたスキーマへ統合することで、一つの解決策を提供します。Orangeでは、MP(Model Providers)は一般に、評判評価のための手段をシステム内に持つプラットフォームです。 「データプロバイダーは、モデルプロバイダーが設計したモデルの入力として、そのデータを使用することを許可します。MPは、計算方法を追加し、様々なエンティティにレピュテーションマーカーを割り当て、そのモデルを他の人が使えるようにします。Dappsは、これらの評価モデルをキュレーションし、ユースケースにプラグインすることができます。これまでにAaveGitcoinSnapshotDAOHausなどがOrangeにデータをプロビジョニングしています。このデータは、DeworktalentDAOCrypto Sapiensなどの他のプロジェクトによってモデル化され、メンバーにntNFTを提供し、CollabLandやGuildを使ったDiscord許可の改善からSnapshotのレピュテーション加重ガバナンスまで、幅広い機会を開放しています。

プライバシー

アイデンティティ インフラストラクチャの議論は、プライバシーへの配慮とそれを可能にする技術的な基礎を抜きにしては成立しない。プライバシーは、スタックのすべての層でファクターとなっています。過去10年間のブロックチェーンの採用により、zk-proofsのような強力な暗号プリミティブの研究開発が加速しました。このプリミティブは、ロールアップのようなスケーリング技術への応用に加えて、アイデンティティが公に検証可能な情報に関して細やかなプライバシー保護宣言を行うことを可能にします。

プライバシー保証は、完全な透過的データ(transparent data)を使って信頼できる主張を行うことから生じる負の外部性を回避するのに役立ちます。これらの保証がなければ、第三者が本来の取引とは関係のない範囲外のやり取り(広告や嫌がらせなど)をはじめてしまう可能性があります。暗号とzk技術を使うことで、相互作用とデータ共有が、明確に定義されたコンテキストに関連するスコープ内で「サンドボックス化」されたIDシステムを構築することができます。

「バニラ」な検証可能クレデンシャルは、JSON-JWT または JSON-LD 形式で提供され、それぞれ外部証明または埋め込み証明(デジタル署名)により、改ざん防止および発行者が作成したものとして検証可能なものとなっていることが多いです。

Zk-proofや新しい署名方式は、W3C VCを次のようなプライバシー保護特性で強化します。

  • Anti-Correlation(反相関):保有者がクレデンシャルを共有するたびに、この識別子が共有されるため、クレデンシャルを提示するたびに、検証者が共謀して保有者がクレデンシャルを提示した場所を確認し、それを特定した人物に三角測量することが可能であることを意味します。シグネチャ・ブラインディングを使えば、署名そのものを共有することなく、毎回ユニークな証明を共有することができます。

  • Selective Disclosure(選択的開示):VCから必要な属性のみを共有し、残りは隠します。JSON-JWT クレデンシャルと JSON-LD LD-Signature クレデンシャルはともに、保有者が検証者とクレデンシャル全体を共有することを要求しており-「部分」共有はできない。

  • Compound Proofs:(複合証明):複数のVCの属性を1つの証明にまとめることで、発行者に問い合わせたり、新たなVCを生成したりすることなく、証明できます。

  • Predicates(断定):検証者が提供する値を使った操作で、隠された値を使用できるようにします。例えば、保有者の口座残高がある閾値以上であることを、残高を明らかにすることなく証明したり、よく言われるのは、生年月日を明らかにせずに合法的な飲酒年齢であることを証明するシナリオなどです。

ZKPがクレデンシャルにおいてどのようにプライバシーを保護できるかを示す簡略図

有望なアプローチとして、もともと2020年にMATTRが提案したBBS署名方式があります。この提案では、BBS署名をVCで一般的に使われているJSON-LD形式で使用できるようにしました。保有者は、元々署名されたクレデンシャルから選択的に明細を開示することができます。この方式で生成される証明は、署名のゼロ知識証明であり、検証者はどの署名が証明の生成に使われたかを判断できないため、共通の相関関係のソースを取り除くことができます。

Iden3 は、zk-Native ID プロトコルであり、zk-ID プリミティブ、認証、クレームの証明生成のためのプログラマブルな zk フレームワークオープンソースライブラリを提供しています。このプロトコルは、Baby Jubjub楕円曲線を用いて各IDの鍵ペアを生成し、IDの所有権と主張を証明するために用いられるzk-SNARKsとプライバシー保護された方法で効率的に動作するように設計されています。PolygonIDは現在、このプロトコルを自社のIDウォレットに利用しています。

応用zkpは、過去数年間、暗号コミュニティから多くの興奮を築いた、活発な研究・実験分野です。web3では、すでに以下のようなアプリケーションで利用されているのが確認されています。

  •  プライベートエアードロップ:Stealthdrop

  • プライバシーを守りつつ、信頼性の高い証明書を発行:Sismo (所有権), Semaphore (メンバーシップ)

  • 匿名メッセージング: heyanon

  • 匿名投票:Melo

結論

この調査から得られた一般的な知見をいくつか紹介します。

  • クリプトがDPKIの開発と採用を促進したように、オンライン/IRLアクセス権を付与するComposable reputation(コンポーザビリティーのある評判)は、分散型アイデンティティのインフラの触媒となるでしょう。クレデンシャル発行(proof-of-x)プロトコルは、現在、ユースケースやブロックチェーン・ネットワークで分断されています。2023年には、これらの集約レイヤー(プロファイルなど)が成熟し、統一インターフェースとして採用されるでしょう。特に、イベントへのアクセスや電子商取引の割引など、クリプトを超えた体験に利用できる場合はなおさらです。

  • 鍵の管理は、単一障害点(single points of failure)の影響を受けやすい課題として残ります。ほとんどのクリプトネイティブにとって使いにくい体験であり、ほとんどの消費者にとって全くアクセスしにくいものです。Federated Identityは、Web 1.0のパラダイムに対するUXの改善であり、各アプリケーションのユーザー名とパスワードに代わるシングルサインオンを可能にしました。Web3認証のUXは改善されつつありますが、シードフレーズを必要とする劣悪なUXを提供し、キーを紛失した場合の代替手段を提供することはまだありません。MPC技術のようなものが成熟し、個人や機関の間で普及するにつれ、この点についても改善が見られるでしょう。

  • Web3の基礎はWeb2アプリケーションやサービスと統合され、大衆に分散型アイデンティティをもたらし始めています。例えば、Collab.LandとNuggetsの統合により、RedditユーザーはVCとしての評判を利用してアクセス権を獲得することができるようになりました。Auth0認証認可ミドルウェアはSIWEをIDプロバイダとして統合し、彼らの2kの企業顧客はSSOに加えてウォレットサインオンを提供することができるようになりました。

  • データが民主化されるにつれて、キュレーションの仕組みは実証される必要があります。インデックス作成プロトコルのThe Graphがキュレーターとデリゲーターのネットワークを使用して最も有用なサブグラフ(オンチェーンデータ用のAPI)に信号を送る方法のように、CeramicやOrangeのようなプロトコル上のユーザーと評判に関するデータモデルは、DAOや暗号化ユースケースを超えて成熟するには時間とコミュニティの参加が必要になるでしょう。

  • プライバシーへの配慮。プロジェクトは、スタックを選択する際に、公開または永久保存の意味を慎重に検討する必要があります。「純粋な」パブリックデータntNFTは、プライバシー保護VC、エフェメラルDIDとピアDID、および選択的開示、鍵回転、相関防止、取り消し可能などの機能を提供するオン/オフチェーン活動のZKPを組み合わせたユースケース(例えば、あるオンチェーン活動の抽象化)に適していると思われます。

  • zkSNARK のような新しい暗号化ツールは、次世代 ID インフラの重要な構成要素になるでしょう。現在、ZKPは孤立したユースケースに適用されていますが、アプリケーションのデザインパターン、暗号プリミティブのためのZK回路の実装、回路セキュリティツール、開発者ツールに収束するには、ボトムアップで集合的な研究開発努力が必要となります。今後の展開に注目したいです。

分散型アイデンティティは、1つのチームよりもはるかに大きなメガプロジェクトです。標準に収束し、プリミティブを繰り返し、設計上の決定の意味を互いに確認するためには、エコシステム全体の取り組みが必要です。

今回は分散型IDスタックのインフラ部分をカバーしましたが、次回はここで紹介したビルディングブロックによって実現されるプロファイル、耐シビル性、コンプライアンス、アプリケーション層について紹介します。

この領域で構築している方、あるいはこのトピックについてさらに考えをお持ちの方は、ぜひご連絡ください。

*1kxの投資先企業を示す

Joel Thorstensson, David Sneider, Humpty Calderon, Seema Khinda Johnson, Alastair Johnson, the PolygonID team, pet3rpan, Accel XR, Robert Koschig, Dmitriy Berenzonにこの原稿をレビューしていただき、多大なる感謝を申し上げます。

【翻訳者】拙い翻訳でしたが最後までお読みいただきましてありがとうございました!

その他学習ソース

この記事が気に入ったらサポートをしてみませんか?