6月13日、暗号資産・
ゼロ知識証明
セミナーの解説主旨と当記事の狙い、ダイジェスト
セミナー登壇者・日置玲於奈氏プロフィール
セミナーの登壇者である日置玲於奈
日置氏が開発したINTMAXは、スイスの暗号資産・
- INTMAX – Stateless Layer of Ethereum for Billions
(INTMAX公式サイト) - INTMAX – Medium
(INTMAXの技術ブログ) - Intmax2: A ZK-rollup with Minimal Onchain Data and Computation Costs Featuring Decentralized Aggregators
(7月発表された最新バージョン 「Intmax2」 を解説する日置氏のグループによる論文)
セミナーの解説内容・主旨
セミナーのテーマである
- ゼロ知識証明の歴史と概要
- Ethereumコミュニティが見出したゼロ知識証明の応用方法
- ゼロ知識証明で用いられる数学的な計算処理の一端
- 応用可能性があるビジネスシーン
- ゼロ知識証明を応用するのに向く/
向かない場面 - セキュリティ面における懸念
- ほかの暗号技術との比較
- 変化が激しいゼロ知識証明の手法~手法のトレンドや手法ごとの長所短所
- 今後重要度が増すであろうRecursive ZKP
- ゼロ知識証明の学習手順やビジネスリサーチにおいて意識したい事項
Ethereum開発者として世界の最前線で活躍する日置氏によるゼロ知識証明についてのセミナーは、ゼロ知識証明を応用したEthereum開発動向の全体像を俯瞰できるよう幅広い情報がまとめてられていて、非常に有益で貴重な内容です。
当記事の狙いとダイジェスト
ただ、セミナーの対象受講者は暗号資産・
そこで、当記事は、ゼロ知識証明、およびゼロ知識証明を応用した開発動向をより多くの人に知ってもらえるように、ゼロ知識証明にはどんな特長がありどのような用途で応用が期待されているのか、そしてゼロ知識証明の発展にEthereumを中心とした暗号資産・
また、ゼロ知識証明、およびゼロ知識証明を応用した開発動向に関してより深掘りして調べられるように、ゼロ知識証明を理解するために必要な数学の知識を学習できる解説記事や、注意深くチェックすべきセキュリティレポートなど、日置氏がセミナーで紹介したものを中心に、参考情報を紹介します。
当記事だけ読んでもゼロ知識証明とゼロ知識証明を応用した開発動向の概況を把握できるように解説していますが、セミナーとあわせて読むことで、セミナーでの解説内容がより理解しやすくなるはずです。当記事は、以下のような構成でお届けします。
- 国内外のさまざまな機関・
組織からも注目されるゼロ知識証明 - 国際的なメディア、日本銀行、そして自民党など、国内外のさまざまな機関・
組織による公開情報を挙げながら、ゼロ知識証明の高い注目度を紹介します。
- 国際的なメディア、日本銀行、そして自民党など、国内外のさまざまな機関・
- ゼロ知識証明の概要とプライバシー保護強化に応用される目的や理由
- ゼロ知識証明の概要や特長を説明し、なぜプライバシー保護強化への応用が期待されているのか解説します。
- Ethereumコミュニティが見出した
「スケーリング」 という新たな応用方法 - Ethereum開発者たちが見出した
「スケーリング」 という応用方法、そしてスケーリングを目的に開発された 「zkRoolup」 の概要について、証明者と検証者の役割を単純化しながら説明します。
- Ethereum開発者たちが見出した
- Bitcoin、WorldcoinなどEthereum以外の開発にも応用されるゼロ知識証明
- zkRollup以外にも、Ethereumではゼロ知識証明を応用した開発が活発化します。その影響もあり、BitcoinやWorldcoinなどEthereum以外の暗号資産・
ブロックチェーン開発にも、続々とゼロ知識証明を応用したソリューションが登場します。
- zkRollup以外にも、Ethereumではゼロ知識証明を応用した開発が活発化します。その影響もあり、BitcoinやWorldcoinなどEthereum以外の暗号資産・
- zkSNARKにおける証明の生成プロセスで実行される数学的な計算
- zkSNARKにおける証明の生成プロセスで、どのような数学的な計算が実行されているのか、参考資料とともに簡単に解説します。
- ゼロ知識証明を理解するのに必要な数学の知識とは~日置氏のおすすめ参考情報
- 難解なゼロ知識証明を理解するために必要な数学的知識について、日置氏のおすすめを中心に参考情報を参照します。
- 注意深くチェックすべきセキュリティとそれでも期待されるゼロ知識証明の将来性
- ゼロ知識証明を応用したソフトウェア開発における脆弱性をまとめたレポートを挙げ、セキュリティの動向をチェックできるような参考情報を参照します。
国内外のさまざまな機関・組織からも注目されるゼロ知識証明
ゼロ知識証明は、Ethereum開発者の限られたコミュニティだけで応用の可能性が議論されているわけではなく、国内外のさまざまな機関・
グローバルなテクノロジーメディア「WIRED」による概要解説動画
アメリカ、日本、韓国、イギリス、イタリアなど、グローバルにビジネス・
日本銀行によるレポートでの紹介
- 決済システムレポート別冊
「プライバシー保護技術とデジタル社会の決済・ 金融サービス」 日本銀行 Bank of Japan (日本銀行が定期的に公表している 「決済システムレポート」 の別冊版で、決済システムを巡るプライバシー保護技術を考察した回)
日本では、2022年9月に日本銀行がまとめた
上記レポートによると、イギリスの
自由民主党政務調査会でも取り上げられるゼロ知識証明
- 自民党web3プロジェクトチーム
(Season2) (塩崎彰久衆議院議員のnote)
そのほかの国内の動向としては、Ethereum普及のために活動するEthereum財団でエグゼクティブ・
ゼロ知識証明の概要とプライバシー保護強化に応用される目的や理由
さまざまな機関・
ゼロ知識証明の概要
まず、ゼロ知識証明の概要を述べると、
代表的な例としては、離散対数問題を用いたシュノアプロトコルがあります。また、グラフ理論の3採色問題を題材にしたゼロ知識証明の例も存在します。これらの例では、証明者が検証者に対して主張の証明をするプロセスにおいて、一定の数学的な計算処理を用います。
証明者と検証者間の典型的なやり取り
また概要で
- 証明者
- 証明者は、証明したい主張に関する情報を通信する前段階で、秘匿したい情報を基に一連の数学的な手続きを通じて、一般的に
「証明」 「Proof」 などと呼ばれる値を生成します。この値を証明者は、検証者へ送信します。 - 検証者
- 検証者は受信したProofを使って一定の検算を行い、証明者が主張する真偽を検証しますが、検証者は検証に利用するProofからは、証明者が秘匿したい情報そのものについて知ることはできません[2]。
証明者からすれば、主張する際に他人へ送信するProofをきっかけにして秘匿したい情報が覚知されてしまう恐れがない、ということになるので、この特性を活かしてプライバシー保護強化への応用が期待されています。
プライバシー保護強化として応用する具体例
具体例としては、オンラインサービスで個人情報を認証する場面での利用です。
流出すると不利益が生じてしまう個人情報
ゼロ知識証明における、証明者と検証者間で交わされる典型的なやり取りと、プライバシー保護強化への応用が期待される理由の解説は上記のようになりますが、これは共通鍵暗号方式、公開鍵暗号方式のような、
Ethereumコミュニティが見出した「スケーリング」という新たな応用方法
上記で紹介したゼロ知識証明に焦点を当てた機関・
その別の目的とは
ゼロ知識証明をEthereumのスケーリングに応用する提案がなされたのが、Ethereumの創設者ヴィタリック・
この投稿以前にも暗号資産・
zkRollupにおける証明者と検証者間のやり取り、それぞれの役割
zkRollupでどのようにゼロ知識証明が応用されているのか、前述の
zkRollupでは、
- 証明者
- 「Rollup」
と呼ばれるレイヤー2ソリューションを利用して、Ethereumブロックチェーン (オンチェーン) に従属して並走するオフチェーン。多数のトランザクションの実行結果を1つのバッチ処理に集約して、そのバッチ処理を要約したサマリーをオンチェーンへ送信します。このサマリーの生成とあわせて、 「有効性証明 (validity proof) 」と呼ばれる、バッチ処理に含まれる多数のトランザクションが正しく実行されたことを証明する値を、一定の数学的な計算処理を用いて生成します。有効性証明は、オフチェーンで多数のトランザクションが正しく実行されたことを、計算のプロセスは明かさないまま検証者 (オンチェーン) に対して示す値であり、データサイズは軽量です[3]。
- 検証者
- Ethereumブロックチェーン
(オンチェーン) 。証明者から送信されるサマリー、および有効性証明を受信して、その有効性を検証するための検算を、オンチェーン側のブロックを検証するノードで行います。この検算は、世界中に分散したEthereumのノードで同時に実行しなければなりませんが、証明者による有効性証明の生成に要するコンピューティングリソースと比較すれば、小さく済ませられる計算として設定されています。検算の結果、受信した有効性証明の正しさが確認できれば、 「1回の正しい検算結果の確認だけで、 (オフチェーン上で) 多数のトランザクションが正しく実行できた」 と見なせます。そのため、結果的にEthereumブロックチェーンへ直接トランザクションを記録する回数は増やさずに、実質的に多数のトランザクションを実行でき、Ethereumの処理能力をスケーリングできます。
以上のような設計のもと、多数のトランザクション実行に要する膨大な計算をオフチェーンに委託することで、Ethereumのトランザクション処理能力を大幅に向上させるのです。
ただし、留意事項として、上記は、あくまで証明者と検証者間のやり取り、それぞれの役割分担を単純化した説明のため、zkRollupに関する詳細な仕様の多くを割愛しています[4]。zkRollupにおける証明者と検証者間の通信の順序・
Bitcoin、WorldcoinなどEthereum以外の開発にも応用されるゼロ知識証明
ヴィタリック・
その後、Ethereumの周辺技術としては、zkRollup以外にも、Aztec、zkEVM、zkSync、ZKSpaceなど、ゼロ知識証明を応用してスケーリングを試みるソリューションが続々と開発されます。
そしてEthereum、Ethereumの周辺技術でゼロ知識証明を応用した開発が活発化したことに影響され、Ethereum以外の暗号資産・
日本の株式会社LayerXでは2019年と早い段階から
OpenAIのサム・
さらに、Bitcoinにも、ゼロ知識証明を応用したソリューションが開発されています。zkRollupと同じzkSNARKを用いた
ZeroSyncについては、Bitcoinを中心にブロックチェーン関連技術開発に取り組み、Lightning Network
zkSNARKにおける証明の生成プロセスで実行される数学的な計算
これまでゼロ知識証明やEthereumを中心に多くの暗号資産・
冒頭紹介した日置氏のセミナーでは、zkSNARKにおいて証明が生成されるまでの計算処理について、その一端が解説されています。
まず、Circomという、ゼロ知識証明専用のコンパイラーを用いながら、秘匿したい情報を基にしたコードを
続いて、変換後の
zkSNARKにおける証明の生成に至る計算プロセスは非常に難解であるため、詳細を理解したい方は以下の参考情報をチェックすることをおすすめします。
- Quadratic Arithmetic Programs: from Zero to Hero
- Exploring Elliptic Curve Pairings
- Zk-SNARKs: Under the Hood
ヴィタリック・
ブテリン氏によるzkSNARKを支える技術がどのように機能するかを説明する一連の記事。おもに 「R1CS~QAP」 の生成に関連した情報が解説されています。
- Zero Knowledge Proofs
(アメリカ・ カリフォルニア大学バークレー校が公開している 「ゼロ知識証明」 オンラインコース)
上記コースの
「2. 3. Linear PCP」 では、日置氏のスライドでいう 「Linear PCP~Linear Interactive Proof~zkSNARK」 の過程について解説しており、参考となる解説動画や論文などが掲載されています。
ゼロ知識証明を理解するのに必要な数学の知識とは~日置氏のおすすめ参考情報
上記に限らず、ゼロ知識証明を応用した計算プロセス全体を理解するには高度な数学の知識が求められます。Ethereum開発者コミュニティ内のゼロ知識証明関連の投稿やEthereum.
そこで筆者はセミナーに取材参加していたので、質疑応答の際に
- 楕円曲線の夢の国に住もう!!
(日置氏のMedium)
まず、日置氏自身がまとめたブログ記事ですが、zkSNARKにとどまらず、近年の暗号資産・
「楕円曲線」
zkSNARKだけでなく、読み解くのに高度な数学の知識が求められる暗号資産・
そのほかには、ヴィタリック・
- STARKs, Part I: Proofs with Polynomials
- STARKs, Part II: Thank Goodness It's FRI-day
- STARKs, Part 3: Into the Weeds
ヴィタリック・
ブテリン氏の個人ブログで 「STARKs」 に関して解説した一連の記事
セミナーでは日置氏から、
「暗号資産ZCashのブログ」 と回答いただいていますが、正しくはEthereum財団のブログだったようです。
セミナーでは、終盤に、日置氏がおすすめするゼロ知識証明の学習手順やビジネスリサーチにおいて重要になる事項も紹介されています。
そのほかの参考情報
そのほか、暗号資産・
- Zero-Knowledge Proofs Starter Pack
(Ethereum開発者コミュニティに投稿されたゼロ知識証明をはじめて学ぶ際に役立つ参考情報一覧)
zkSTARK、zkSNARK、Bulletproofsなどを知りたいとき概観を把握できるように関連情報をまとめた投稿。ただし、投稿された日時が2018年12月のため、一部情報が古くなっている点には注意してください。
- StarkWare – Medium
(「StarkWare」 の技術ブログ)
StarkWareは、zkSTARKを用いたソリューションを数多く開発するイスラエル発の企業。zkRollupを活用したEthereumのレイヤー2ソリューション
「Starknet」、dYdXにも利用されているDeFiを中心にした開発用プラットフォーム 「StarkEx」、zkSTARKを用いたプログラムを作成する言語 「Cairo」 などを開発・ 運営しています。上記ブログでは、基本的にStarkWareがローンチしたソリューションに関する情報が中心ですが、有効性証明と不正証明の比較記事 (Validity Proofs vs. Fraud Proofs)、再帰的証明 ( 「recursive proof」。 「recursive ZKP」 「recursion」 などとも呼ばれます) の利点について補足した解説記事 (Recursive STARKs) など、ゼロ知識証明の技術解説記事も発信しています。
- GitHub - jimmysong/
programmingbitcoin: Repository for the book (GitHubで一般公開されている邦題 『プログラミング・ ビットコイン 』の原書ドキュメント)
『Programming Bitcoin』
著者ジミー・ ソング (Jimmy Song) 氏がGitHub上で一般公開しているドキュメント。Bitcoinに実装されているプログラミングの理解を深めることがメインテーマの書籍ですが、第1章には有限体、第2章には楕円曲線、第3章には楕円曲線暗号と、高等数学についてPythonプログラミングの実装を通して学べる構成になっており、ゼロ知識証明に関連した数学の理解を助けるためにも有益な内容となっています。
- herumiさんの記事一覧 | Zenn
(光成滋生氏によるZenn記事一覧)
サイボウズ・
ラボで暗号とセキュリティに関するR&Dに従事する、光成滋生氏 (github) が公開している暗号技術や最適化周りの解説記事一覧。群、楕円曲線、楕円曲線暗号、楕円エルガマル暗号、ペアリングなど、ゼロ知識証明にも関連する暗号技術について解説した記事があります。光成氏は、当社刊行 『図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』 の著者であり、本書 「9章 高機能な暗号技術」 でゼロ知識証明を解説しており、ほかにも参考となる情報を掲載しています。
注意深くチェックすべきセキュリティとそれでも期待されるゼロ知識証明の将来性
日置氏もセミナーでしっかりと補足していますが、ゼロ知識証明を応用した具体的なソフトウェアの実装において、新たな脆弱性が見つかる可能性は否定できず、セキュリティ面で懸念がないわけではありません。
ゼロ知識証明を応用したソフトウェア開発におけるセキュリティについて、深い見識から指摘ができる企業・
- Category Archives: Zero Knowledge | Trail of Bits Blog
(Trail of Bitsによるゼロ知識証明に関するレポート一覧) - Blog - Beosin Smart Contract Security Audit Service | Code Review and Report
(Beosinによるセキュリティレポート一覧。検索欄から 「zk-SNARK」 「vulnerability」 などと入力するとゼロ知識証明関連の脆弱性レポートが表示されます)
ただ、それでも、ゼロ知識証明の基本的な理論は数学的に証明されており、その安全性は高いとされています。ゼロ知識証明を応用したソリューション開発が活発化したのはここ数年と最近であり、ゼロ知識証明がプライバシー保護強化、スケーリングなど、さまざまな応用可能性を持つ有望な暗号技術であることには違いありません。
ゼロ知識証明を応用したソリューションがインターネット上で実際に稼働することで、ゼロ知識証明の新たな脆弱性が見つかりその都度改善が行われるなら、情報技術としては健全な発展のサイクルを経ている、といえるはずです。今後もゼロ知識証明が暗号資産・
ゼロ知識証明は、理解するのに広範囲におよぶ高度な数学の知識が求められ、多くの情報がWeb上で散在している状況です。当記事で解説や紹介ができたのは僅かですが、当記事がゼロ知識証明を知りたいと思う方にとっての学習や理解を助けるきっかけとなれば幸いです。