世界を動かす技術を、日本語で。

「ゼロ知識証明」技術の解放

2025年7月4日原文(blog.google)

概要

  • Google Wallet がZero-Knowledge Proof(ZKP)ライブラリを オープンソース化
  • Sparkasse とのパートナーシップに基づくEUの 年齢認証 対応
  • ZKPは プライバシー保護型アプリケーションデジタルID 開発を促進
  • 開発者・研究者・企業 が自由に活用可能
  • EUDI Wallet 対応やEU規制への貢献

Google、Zero-Knowledge Proof(ZKP)ライブラリをオープンソース公開

  • Google Wallet がZKPライブラリを 一般公開
  • Sparkasse との協力により、EU向け 年齢認証 対応を実現
  • ZKP は個人情報を明かさずに「特定の条件を満たす」ことだけを証明
    • 例:18歳以上であることを証明し、他の情報は一切共有しない仕組み
  • オープンソース化により 民間・公共セクター の開発者が容易に活用可能
  • プライバシー強化型アプリケーション・デジタルIDソリューション 構築を加速
  • Webやアプリのユーザー は、安全かつプライベートなデジタル体験を享受
  • 企業・組織 は、オープンソースのZKPを利用して プライバシー要件 に容易に対応
  • 開発者 はZKPコードベースを自由に利用し、 プライバシー重視アプリ 開発が可能
  • 研究者 は高効率・高性能なZKP実装を活用し、 新たな応用技術 の創出が可能

EU規制とEUDI Walletへの対応

  • EUのeIDAS規則 (2026年施行予定)は、ZKPのような プライバシー強化技術 の導入を推奨
  • 各加盟国 は、今後の European Digital Identity Wallet(EUDI Wallet) にZKPを統合可能
  • Google のZKPツール公開により、 EUDI Wallet の開発と導入を加速

コードベースの入手方法

今後への期待

  • Zero-Knowledge Proof 技術のさらなる普及とイノベーション促進
  • オープンソースコミュニティ暗号技術分野 全体への貢献
  • プライバシー保護型デジタル社会 の実現に向けた新たな一歩

Hackerたちの意見

年齢確認が、政府が発行する(企業の代理を通じて)インターネット利用許可の入り口になるんだね。

確かにそうだけど、10歳の子供がウェブブラウザを開いてから40秒でハードコアBDSMや近親相姦のフェチポルノに直面するのが健康的だとは思えないよ。これが嫌だって気持ちはあるけど、ポルノ業界の自己規制以外に解決策が見つからないのが辛いね。

それに、ユニーク性の保証も必要かも。そうすれば、やっと「インターネットは死んだ」って議論が終わるかもしれないね。

必要ないよ。ウガンダでは、2018年からソーシャルメディア税をエンドユーザーに課していて、ソーシャルメディアサイトにアクセスすると自動的に携帯電話の請求書に追加されるんだ。使用量は1日あたり約2.7セント。[1] ほとんどの人が、ユーザーが住んでいる国で規制されているISPからインターネットを取得しているよ。アメリカで許可制度を導入するのに技術的な障壁はないし、使用に基づく税金があると実際の人とつながることが自己強制的になるんだ。[1] https://www.africanews.com/2018/04/13/uganda-s-social-media-...

うん。これは完全にカキストクラシー・テクノ封建主義の複合体を助長してるね。

非対話型ゼロ知識証明の直感について、誰か良い説明を持ってる?例えば、Diffie-Hellman鍵交換の「ペイントミキシング」アナロジー(https://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange#Ge...)は、数学を「混ぜるのは簡単、元に戻すのは難しい」と理解するのにすごく役立ったんだ。このブログ記事(https://blog.cryptographyengineering.com/2014/11/27/zero-kno...)は対話型ZK証明の良い入門だったけど、非対話型のものについてはまだ見つけられてないんだ。このZK-STARKsと消去符号を比較したブログ投稿はいい感じだけど、頭に残らなかったな:https://vitalik.eth.limo/general/2017/11/09/starks_part_1.ht...

ウィキペディアの記事の「アリババの洞窟」の例が、私にとってはピンときたんだ:https://en.wikipedia.org/wiki/Zero-knowledge_proof。

うん、ここでの詳細にも興味があるけど、リンクされたライブラリのリポジトリは今の私の理解にはちょっと低レベルすぎるかな。例えば、ウェブサイトに年齢証明を提供する場合、誰が検証データを提供するの?(政府?)それはどんな形式になるの?(標準フォーマットのファイル?)誰がその検証データを持ってるの?(ユーザー?)誰が検証ソフトウェアを実行するの?(エンドユーザーのウェブブラウザ?)ユーザーはどんな実装でも証明を提供できるの、それともGoogle Walletみたいな「認可された」実装じゃなきゃダメなの?

同僚のアミットが、Wiredでzkpについての簡単な動画解説を作ったよ。https://youtu.be/fOGdb1CTu5c?si=EyBQS92WyeduIpH- この動画はこの仕組みがどう機能するかを説明してるわけじゃないけど、いいスタートだね。

ペンキ缶レベルのものを探してるなら、マシュー・グリーンの「クレヨンと帽子」を見た方がいいよ。https://blog.cryptographyengineering.com/2014/11/27/zero-kno...

今は見つからないけど、すごく助けになった「ウォーリーを探せ」の説明があったんだ。

直感的な説明としては、ウォーリーを写真の中で見つけられることを証明するけど、彼の正確な場所は明かさないって感じかな。デジタルウォレットは、ユーザーをそのアイデンティティに直接リンクさせる公開鍵の代わりに、第三者が発行したコミットメントCで動作するファンシーな署名スキームとして解釈できるよ。シンプルな署名スキームは、知識の証明PoK{x : pk = g^x}に基づいていて、Fiat-Shamir変換を通じて非対話型のバリアントに変換されるんだ。メッセージがハッシュに追加される感じ。レンジ証明も似たような仕組みで、最もシンプルな形は1ビットのためのものだよ:PoK{(b,r) : C = g^b * h^r & b(b−1)=0}。これでコミットメントCが{0,1}のビットbを含んでいることが証明できるけど、どの値かは明かさないんだ。任意の範囲は、コミットメントのホモモルフィック特性を使って構築できるよ。nビットの範囲の場合、n個の個別のビット証明が必要になる。バレットプルーフはこれをO(log n)の証明サイズに最適化して、実用的なアプリケーションを可能にするんだ。コミットメントCは信頼できる第三者によって発行されて署名され、その後ユーザーは年齢範囲や位置ゾーン(緯度と経度の範囲から構築されたもの)など、サービスプロバイダーに特定の特性を証明できるよ。大きな課題は、同じコミットメントCを再利用するとトラッキング識別子が作成されて、ユーザーのプライバシーが危うくなることだね。

Hacker Newsで議論の続きを見る