# zk-SNARKsとデジタルID:複数のジレンマと可能な解決策デジタルIDシステムにおいて、プライバシーを保護するためにzk-SNARKs技術を適用することは主流の手法となっています。さまざまなzk-SNARKsに基づくデジタルIDプロジェクトが、ユーザーが身分の詳細を明らかにすることなく、有効な身分証明を所有していることを証明できるユーザーフレンドリーなソフトウェアパッケージを開発しています。生体認証技術を採用し、zk-SNARKsによってプライバシーを保護するWorld IDのユーザー数は最近1000万を突破しました。台湾地区のデジタルID政府プロジェクトもzk-SNARKsを活用しており、EUのデジタルID領域における取り組みもこの技術にますます注目しています。表面上、zk-SNARKs技術のデジタルID分野での広範な応用は、去中心化加速主義(d/acc)の大きな勝利のように見える。これは、プライバシーを犠牲にすることなく、私たちのソーシャルメディア、投票システム、さまざまなインターネットサービスをウィッチハントやロボット操作から保護することができる。しかし、事は本当にそんなに簡単なのだろうか?zk-SNARKsに基づく身分証明には依然としてリスクが存在するのか?この記事では、以下の見解を述べる。- zk-SNARKsパッケージ技術は多くの重要な問題を解決しました。- ゼロ知識証明でパッケージ化された身分証明にはまだリスクがあります。これらのリスクは生体認証やパスポートとはあまり関係がないようで、主に「一人一身分証明」属性の厳格な維持から生じています。- もう一つの極端なアプローチは「富の証明」を使用してウィッチアタックを防ぐことですが、これはほとんどのアプリケーションシナリオでは不十分です。そのため、私たちは何らかの「身分証明」の解決策が必要です。- 理論上の理想的な状態は、N個の身分証明を取得するためのコストがN²であることです。- この理想的な状態は実践で実現するのが難しいが、適切な「多元身份」がそれに近づくため、最も現実的な解決策となる。多元身份は明示的な(、例えば、ソーシャルグラフに基づく身份)、または隠れた(複数のタイプのzk-SNARKs身份が共存し、どのタイプも市場シェアが100%に近いことはない)。! [ヴィタリック:デジタルアイデンティティ+ ZKテクノロジーの下での複数のジレンマ](https://img-cdn.gateio.im/social/moments-1fa15b87f0dad953ff390e1ff4499f3d)## zk-SNARKsで包装された身分証明はどのように機能しますか?あなたが眼球をスキャンしてWorld IDを取得するか、携帯電話のNFCでパスポートを読み取って、zk-SNARKsに基づくパスポートの身分証明を取得したと仮定します。本論の議論に関して、この2つの方法の核心的特性は一致しています。あなたのスマートフォンには秘密の値sが保存されています。グローバルなオンチェーン登録簿には、それに対応する公開ハッシュ値H(s)があります。アプリにログインすると、そのアプリに特有のユーザーID、すなわちH(s、app_name)が生成され、zk-SNARKsを通じて検証されます。このIDは登録簿内のある公開ハッシュ値が同じ秘密の値sから派生していることを証明します。したがって、各アプリに対して各公開ハッシュ値は1つのIDしか生成できず、特定のアプリ専用のIDがどの公開ハッシュ値に対応しているかは決して漏洩しません。実際の設計はもう少し複雑になる可能性があります。例えば、World IDでは、アプリ専用IDは実際にはアプリIDとセッションIDのハッシュ値を含んでいるため、同じアプリケーション内の異なる操作も相互に関連を解除できます。ゼロ知識証明パスポートの設計も同様の方法で構築できます。この身分証明の種類の欠点を議論する前に、まずその利点を認識する必要があります。零知识证明身份(ZKID)のニッチな領域を超えて、身分証明を必要とするサービスに対して自分を証明するために、人々は法定の身分を完全に開示しなければなりません。これは、コンピュータセキュリティの「最小権限の原則」に重大な違反をもたらします:プロセスは、そのタスクを完了するために必要な最小限の権限と情報のみを取得すべきです。サービスは、あなたがロボットでないこと、18歳以上であること、特定の国からのものであることを証明するだけで済みますが、それによって得られるのはあなたの完全な身分の情報です。現在実現可能な最良の改善策は、電話番号やクレジットカード番号などの間接トークンを使用することです。この場合、あなたの電話/クレジットカード番号とアプリ内の活動に関連する主体、そしてあなたの電話/クレジットカード番号と法定身分に関連する主体(の会社または銀行)は相互に分離されています。しかし、この分離は非常に脆弱です。電話番号や他のさまざまな情報と同様に、いつでも漏洩する可能性があります。そして、zk-SNARKsを利用した包装技術により、上述の問題は大いに解決されました。しかし、次に議論すべきはあまり言及されていない点です。まだ解決されていない問題がいくつか存在し、特にこのようなソリューションにおける「一人一身份」の厳格な制限によって、さらに悪化する可能性があります。! [ヴィタリック:デジタルアイデンティティ+ ZKテクノロジーの下での複数のジレンマ](https://img-cdn.gateio.im/social/moments-18e125ae671fbd46a8f4b809256f301e)## ゼロ知識証明自体は匿名性を可能にしません仮に、あるzk-SNARKs身分証明(ZK-identity)プラットフォームが完全に期待通りに動作し、上記のすべての論理を厳密に再現し、さらには中央集権的機関に依存せずに、非技術ユーザーのプライバシー情報を長期的に保護する方法を見つけたとします。しかし同時に、現実に即した仮定をすることもできます: アプリケーションはプライバシー保護に積極的に協力しないでしょう。それらは「実用主義」の原則を守り、「ユーザーの利便性を最大化する」という名目で採用される設計案は、実際には常に自らの政治的および商業的利益に偏っているようです。このようなシーンでは、ソーシャルメディアアプリは頻繁にセッションキーをローテーションするなどの複雑な設計を採用せず、各ユーザーにユニークなアプリ専用IDを割り当てます。また、身分証明システムが「一人一身分証明」ルールに従うため、ユーザーは1つのアカウント(のみを持つことができ、これは現在の「弱い身分証明」と対比されます。例えば、Googleアカウントでは、普通の人が簡単に約5つの)を登録できます。現実世界では、匿名性の実現には通常複数のアカウントが必要です: 一つは「通常の身分証明」に使い、他はさまざまな匿名の身分証明に使用されます。したがって、このモデルでは、ユーザーが実際に得られる匿名性は現在のレベルよりも低くなる可能性があります。このように、たとえ零知识证明によって包装された「一人一身分証明」システムであっても、私たちはすべての活動が単一の公開身分証明に依存しなければならない世界に徐々に向かう可能性があります。リスクがますます高まる時代において、匿名性を通じて自分を守る選択権を奪うことは、深刻な負の影響をもたらします。## zk-SNARKs自体は、あなたを脅迫から守ることはできませんたとえ自分の秘密値sを公開しなくても、誰もあなたの各アカウント間の公開された関連性を見ることはできませんが、もし誰かがあなたに公開を強制したらどうでしょうか?政府は、すべての活動を確認するために秘密値を開示するように強制する可能性があります。これは空談ではありません:アメリカ政府は、ビザ申請者に自分のソーシャルメディアアカウントを公開するように求め始めています。さらに、雇用主も、完全な公開情報を開示することを雇用条件として要求することが容易です。さらには、特定のアプリも技術的に他のアプリでの身分を開示することをユーザーに要求することがあり、そうしなければ登録を許可しない場合があります。同様に、これらの状況において、zk-SNARKsの特性の価値は消え去りますが、「一人一口座」という新たな特性の欠点は依然として存在します。私たちは、デザイン最適化によって脅迫リスクを低減できるかもしれません。例えば、マルチパーティ計算メカニズムを用いて各アプリ専用のIDを生成し、ユーザーとサービス提供者が共同で参加するようにします。こうすることで、アプリ運営者が参加していない場合、ユーザーはそのアプリ内での専用IDを証明できなくなります。これにより、他人に完全な身分を開示させることが難しくなりますが、この可能性を完全に排除することはできず、またこのようなプランには他の欠点もあります。例えば、アプリ開発者がリアルタイムで活動している実体でなければならず、受動的なオンチェーンスマートコントラクトのようではない必要があります。! [ヴィタリック:デジタルアイデンティティ+ZK技術の下での複数のジレンマ](https://img-cdn.gateio.im/social/moments-5c5e98a8645b7a2cc02bf3f26d7bf4d7)## zk-SNARKs自体は非プライバシーリスクを解決することはできませんすべての身分証明の形式には境界ケースが存在します:- 政府が発行する身分証明に基づいており、パスポートを含むが、無国籍者をカバーしておらず、また、こうした証明書をまだ取得していない人々も含まれていない。- 一方で、政府に基づくこのような身分証明体系は、多重国籍保持者に独自の特権を与える。- パスポート発行機関がハッカー攻撃を受ける可能性があり、敵対国の情報機関が数百万の偽の身分証明を偽造する可能性さえあります。- 傷病によって関連する生体特徴が損なわれた人にとって、バイオメトリックIDは完全に無効となります。- 生体認証は偽造品に騙される可能性が高いです。もし生体認証の価値が非常に高くなった場合、私たちは「大量生産」するために人体の器官を専門に培養する人々を目にするかもしれません。これらのエッジケースは「一人一身份」属性を維持しようとするシステムにおいて最も危険であり、プライバシーとは全く関係ありません。したがって、zk-SNARKsには何の力もありません。! [Vitalik:デジタルアイデンティティ+ ZKテクノロジーの下での複数のジレンマ](https://img-cdn.gateio.im/social/moments-4ee3f0f2fb93f4937527d660b75452b7)## "富の証明"に依存してウィッチ攻撃を防ぐことは問題を解決するには不十分ですので、私たちは何らかの形の身分証明システムが必要です。純粋なサイバーパンクコミュニティの中で、一般的な代替手段は「資産証明」に完全に依存して魔女狩り攻撃を防ぐことであり、どのような形の身分証明システムも構築しないことです。各アカウントに一定のコストを発生させることで、誰もが簡単に大量のアカウントを作成するのを防ぐことができます。この手法はインターネット上ではすでに先例があり、例えばSomethingawfulフォーラムでは、登録アカウントに対して10ドルの一回限りの手数料を要求しており、アカウントが停止された場合、この手数料は返金されません。ただし、これは実際の運用において真の暗号経済モデルではありません。なぜなら、新しいアカウントを作成する最大の障害は10ドルを再度支払うことではなく、新しいクレジットカードを取得することだからです。理論的には、支払いに条件を持たせることも可能です: アカウント登録時に、資金をステークするだけで、アカウントが封鎖されるという極めて稀な状況でのみ、その資金を失うことになります。理論的には、これにより攻撃コストが大幅に上昇します。この方案は多くのシーンで効果を発揮しますが、特定のタイプのシーンでは全く機能しません。私は二つのタイプのシーンに重点を置いて議論します。暫定的に「類全民基本收入シーン(UBI-like)」と「類治理シーン(governance-like)」と呼ぶことにします。### クラウドファンディングのような(UBI-like)における身分証明の必要性いわゆる「類全民基本收入シナリオ」とは、非常に広範囲(の理想的には全体)ユーザーグループに対して、一定量の資産やサービスを配布し、その支払い能力を考慮しないシナリオを指します。Worldcoinはまさにこの点を体系的に実践しています: World IDを持っている人は誰でも、定期的に少量のWLDトークンを受け取ることができます。多くのトークンエアドロップも、より非公式な方法で類似の目標を達成しようとし、できるだけ多くのユーザーに少なくとも一部のトークンを届けようとしています。私個人としては、この種のトークンの価値が個人の生計を維持できるレベルに達するとは思えません。人工知能によって駆動され、富の規模が現在の千倍に達する経済体においては、この種のトークンは生計を維持する価値を持つかもしれませんが、それでもなお、自然資源の富に支えられた政府主導のプロジェクトは、経済的により重要な地位を占めるでしょう。しかし、私はこの種の「小型国民基本所得(mini-UBIs)」が実際に解決できる問題は、人々が基本的なオンチェーン取引やオンライン購入を行うために十分な量の暗号通貨を得ることだと思います。具体的には、次のようなものが含まれる可能性があります:- ENS 名を取得する- チェーン上にハッシュを公開して、特定のzk-SNARKs身分証明を初期化する- ソーシャルメディアプラットフォームの費用を支払うもし暗号通貨が世界的に広く採用されれば、この問題は解消される。しかし、暗号通貨がまだ普及していない現状では、これが人々がブロックチェーン上の非金融アプリケーションや関連するオンライン商品サービスにアクセスする唯一の方法である可能性がある。さもなければ、彼らはこれらのリソースに完全にアクセスできないかもしれない。さらに、同様の効果を実現する別の方法があります。それは「全民基本服务(universal basic services)」で、特定のアプリ内で限られた数の無料取引を送信する権限を持つ身分証明を持つ人々に提供することです。この方法は、インセンティブメカニズムにより適合する可能性が高く、資本効率も向上します。なぜなら、この採用から利益を得るアプリケーションは、非ユーザーに対して費用を負担することなくこのように行えるからです。しかしながら、これはある程度のトレードオフを伴い、普遍性が低下し、(ユーザーはこのプログラムに参加しているアプリへのアクセス権を保証されるだけです。それでも、ここにはシステムが攻撃を受けないようにするための身分証明ソリューションが必要です。
ゼロ知識証明のアイデンティティには隠れた懸念がある 複数のアイデンティティが最善の解決策になるかもしれない
zk-SNARKsとデジタルID:複数のジレンマと可能な解決策
デジタルIDシステムにおいて、プライバシーを保護するためにzk-SNARKs技術を適用することは主流の手法となっています。さまざまなzk-SNARKsに基づくデジタルIDプロジェクトが、ユーザーが身分の詳細を明らかにすることなく、有効な身分証明を所有していることを証明できるユーザーフレンドリーなソフトウェアパッケージを開発しています。生体認証技術を採用し、zk-SNARKsによってプライバシーを保護するWorld IDのユーザー数は最近1000万を突破しました。台湾地区のデジタルID政府プロジェクトもzk-SNARKsを活用しており、EUのデジタルID領域における取り組みもこの技術にますます注目しています。
表面上、zk-SNARKs技術のデジタルID分野での広範な応用は、去中心化加速主義(d/acc)の大きな勝利のように見える。これは、プライバシーを犠牲にすることなく、私たちのソーシャルメディア、投票システム、さまざまなインターネットサービスをウィッチハントやロボット操作から保護することができる。しかし、事は本当にそんなに簡単なのだろうか?zk-SNARKsに基づく身分証明には依然としてリスクが存在するのか?この記事では、以下の見解を述べる。
! ヴィタリック:デジタルアイデンティティ+ ZKテクノロジーの下での複数のジレンマ
zk-SNARKsで包装された身分証明はどのように機能しますか?
あなたが眼球をスキャンしてWorld IDを取得するか、携帯電話のNFCでパスポートを読み取って、zk-SNARKsに基づくパスポートの身分証明を取得したと仮定します。本論の議論に関して、この2つの方法の核心的特性は一致しています。
あなたのスマートフォンには秘密の値sが保存されています。グローバルなオンチェーン登録簿には、それに対応する公開ハッシュ値H(s)があります。アプリにログインすると、そのアプリに特有のユーザーID、すなわちH(s、app_name)が生成され、zk-SNARKsを通じて検証されます。このIDは登録簿内のある公開ハッシュ値が同じ秘密の値sから派生していることを証明します。したがって、各アプリに対して各公開ハッシュ値は1つのIDしか生成できず、特定のアプリ専用のIDがどの公開ハッシュ値に対応しているかは決して漏洩しません。
実際の設計はもう少し複雑になる可能性があります。例えば、World IDでは、アプリ専用IDは実際にはアプリIDとセッションIDのハッシュ値を含んでいるため、同じアプリケーション内の異なる操作も相互に関連を解除できます。ゼロ知識証明パスポートの設計も同様の方法で構築できます。
この身分証明の種類の欠点を議論する前に、まずその利点を認識する必要があります。零知识证明身份(ZKID)のニッチな領域を超えて、身分証明を必要とするサービスに対して自分を証明するために、人々は法定の身分を完全に開示しなければなりません。これは、コンピュータセキュリティの「最小権限の原則」に重大な違反をもたらします:プロセスは、そのタスクを完了するために必要な最小限の権限と情報のみを取得すべきです。サービスは、あなたがロボットでないこと、18歳以上であること、特定の国からのものであることを証明するだけで済みますが、それによって得られるのはあなたの完全な身分の情報です。
現在実現可能な最良の改善策は、電話番号やクレジットカード番号などの間接トークンを使用することです。この場合、あなたの電話/クレジットカード番号とアプリ内の活動に関連する主体、そしてあなたの電話/クレジットカード番号と法定身分に関連する主体(の会社または銀行)は相互に分離されています。しかし、この分離は非常に脆弱です。電話番号や他のさまざまな情報と同様に、いつでも漏洩する可能性があります。
そして、zk-SNARKsを利用した包装技術により、上述の問題は大いに解決されました。しかし、次に議論すべきはあまり言及されていない点です。まだ解決されていない問題がいくつか存在し、特にこのようなソリューションにおける「一人一身份」の厳格な制限によって、さらに悪化する可能性があります。
! ヴィタリック:デジタルアイデンティティ+ ZKテクノロジーの下での複数のジレンマ
ゼロ知識証明自体は匿名性を可能にしません
仮に、あるzk-SNARKs身分証明(ZK-identity)プラットフォームが完全に期待通りに動作し、上記のすべての論理を厳密に再現し、さらには中央集権的機関に依存せずに、非技術ユーザーのプライバシー情報を長期的に保護する方法を見つけたとします。しかし同時に、現実に即した仮定をすることもできます: アプリケーションはプライバシー保護に積極的に協力しないでしょう。それらは「実用主義」の原則を守り、「ユーザーの利便性を最大化する」という名目で採用される設計案は、実際には常に自らの政治的および商業的利益に偏っているようです。
このようなシーンでは、ソーシャルメディアアプリは頻繁にセッションキーをローテーションするなどの複雑な設計を採用せず、各ユーザーにユニークなアプリ専用IDを割り当てます。また、身分証明システムが「一人一身分証明」ルールに従うため、ユーザーは1つのアカウント(のみを持つことができ、これは現在の「弱い身分証明」と対比されます。例えば、Googleアカウントでは、普通の人が簡単に約5つの)を登録できます。現実世界では、匿名性の実現には通常複数のアカウントが必要です: 一つは「通常の身分証明」に使い、他はさまざまな匿名の身分証明に使用されます。したがって、このモデルでは、ユーザーが実際に得られる匿名性は現在のレベルよりも低くなる可能性があります。このように、たとえ零知识证明によって包装された「一人一身分証明」システムであっても、私たちはすべての活動が単一の公開身分証明に依存しなければならない世界に徐々に向かう可能性があります。リスクがますます高まる時代において、匿名性を通じて自分を守る選択権を奪うことは、深刻な負の影響をもたらします。
zk-SNARKs自体は、あなたを脅迫から守ることはできません
たとえ自分の秘密値sを公開しなくても、誰もあなたの各アカウント間の公開された関連性を見ることはできませんが、もし誰かがあなたに公開を強制したらどうでしょうか?政府は、すべての活動を確認するために秘密値を開示するように強制する可能性があります。これは空談ではありません:アメリカ政府は、ビザ申請者に自分のソーシャルメディアアカウントを公開するように求め始めています。さらに、雇用主も、完全な公開情報を開示することを雇用条件として要求することが容易です。さらには、特定のアプリも技術的に他のアプリでの身分を開示することをユーザーに要求することがあり、そうしなければ登録を許可しない場合があります。
同様に、これらの状況において、zk-SNARKsの特性の価値は消え去りますが、「一人一口座」という新たな特性の欠点は依然として存在します。
私たちは、デザイン最適化によって脅迫リスクを低減できるかもしれません。例えば、マルチパーティ計算メカニズムを用いて各アプリ専用のIDを生成し、ユーザーとサービス提供者が共同で参加するようにします。こうすることで、アプリ運営者が参加していない場合、ユーザーはそのアプリ内での専用IDを証明できなくなります。これにより、他人に完全な身分を開示させることが難しくなりますが、この可能性を完全に排除することはできず、またこのようなプランには他の欠点もあります。例えば、アプリ開発者がリアルタイムで活動している実体でなければならず、受動的なオンチェーンスマートコントラクトのようではない必要があります。
! ヴィタリック:デジタルアイデンティティ+ZK技術の下での複数のジレンマ
zk-SNARKs自体は非プライバシーリスクを解決することはできません
すべての身分証明の形式には境界ケースが存在します:
これらのエッジケースは「一人一身份」属性を維持しようとするシステムにおいて最も危険であり、プライバシーとは全く関係ありません。したがって、zk-SNARKsには何の力もありません。
! Vitalik:デジタルアイデンティティ+ ZKテクノロジーの下での複数のジレンマ
"富の証明"に依存してウィッチ攻撃を防ぐことは問題を解決するには不十分ですので、私たちは何らかの形の身分証明システムが必要です。
純粋なサイバーパンクコミュニティの中で、一般的な代替手段は「資産証明」に完全に依存して魔女狩り攻撃を防ぐことであり、どのような形の身分証明システムも構築しないことです。各アカウントに一定のコストを発生させることで、誰もが簡単に大量のアカウントを作成するのを防ぐことができます。この手法はインターネット上ではすでに先例があり、例えばSomethingawfulフォーラムでは、登録アカウントに対して10ドルの一回限りの手数料を要求しており、アカウントが停止された場合、この手数料は返金されません。ただし、これは実際の運用において真の暗号経済モデルではありません。なぜなら、新しいアカウントを作成する最大の障害は10ドルを再度支払うことではなく、新しいクレジットカードを取得することだからです。
理論的には、支払いに条件を持たせることも可能です: アカウント登録時に、資金をステークするだけで、アカウントが封鎖されるという極めて稀な状況でのみ、その資金を失うことになります。理論的には、これにより攻撃コストが大幅に上昇します。
この方案は多くのシーンで効果を発揮しますが、特定のタイプのシーンでは全く機能しません。私は二つのタイプのシーンに重点を置いて議論します。暫定的に「類全民基本收入シーン(UBI-like)」と「類治理シーン(governance-like)」と呼ぶことにします。
クラウドファンディングのような(UBI-like)における身分証明の必要性
いわゆる「類全民基本收入シナリオ」とは、非常に広範囲(の理想的には全体)ユーザーグループに対して、一定量の資産やサービスを配布し、その支払い能力を考慮しないシナリオを指します。Worldcoinはまさにこの点を体系的に実践しています: World IDを持っている人は誰でも、定期的に少量のWLDトークンを受け取ることができます。多くのトークンエアドロップも、より非公式な方法で類似の目標を達成しようとし、できるだけ多くのユーザーに少なくとも一部のトークンを届けようとしています。
私個人としては、この種のトークンの価値が個人の生計を維持できるレベルに達するとは思えません。人工知能によって駆動され、富の規模が現在の千倍に達する経済体においては、この種のトークンは生計を維持する価値を持つかもしれませんが、それでもなお、自然資源の富に支えられた政府主導のプロジェクトは、経済的により重要な地位を占めるでしょう。しかし、私はこの種の「小型国民基本所得(mini-UBIs)」が実際に解決できる問題は、人々が基本的なオンチェーン取引やオンライン購入を行うために十分な量の暗号通貨を得ることだと思います。具体的には、次のようなものが含まれる可能性があります:
もし暗号通貨が世界的に広く採用されれば、この問題は解消される。しかし、暗号通貨がまだ普及していない現状では、これが人々がブロックチェーン上の非金融アプリケーションや関連するオンライン商品サービスにアクセスする唯一の方法である可能性がある。さもなければ、彼らはこれらのリソースに完全にアクセスできないかもしれない。
さらに、同様の効果を実現する別の方法があります。それは「全民基本服务(universal basic services)」で、特定のアプリ内で限られた数の無料取引を送信する権限を持つ身分証明を持つ人々に提供することです。この方法は、インセンティブメカニズムにより適合する可能性が高く、資本効率も向上します。なぜなら、この採用から利益を得るアプリケーションは、非ユーザーに対して費用を負担することなくこのように行えるからです。しかしながら、これはある程度のトレードオフを伴い、普遍性が低下し、(ユーザーはこのプログラムに参加しているアプリへのアクセス権を保証されるだけです。それでも、ここにはシステムが攻撃を受けないようにするための身分証明ソリューションが必要です。