もしa=1の場合、証明者はg=rs mod nを計算して送信します。検証者が送信するランダムビットaに応じて、証明者はgを計算します;
最後に、検証者は受け取ったgを基にxがg^2 mod nに等しいかどうかを検証します。等式が成立すれば、検証者はこの証明を受け入れます。a=0のとき、検証者はg^2 mod nを計算し、右側でxを検証します;a=1のとき、検証者はg^2 mod nを計算し、右側でxvを検証します。
ここで、私たちは検証者が計算したx=g^2 mod nを見ており、これは証明者が検証プロセスを成功裏に通過したことを示しており、同時に彼の秘密の数字sを漏らしていません。ここでは、aが0または1のいずれかしか取れず、可能性は2つだけであるため、証明者が運に頼って検証を通過する確率は50%(、aが0のとき)です。しかし、検証者はその後、証明者にn回挑戦し、証明者は関連する数字を変更し続け、検証者に提出し、常に検証プロセスを成功裏に通過します。この場合、証明者が運に頼って検証を通過する確率は(1/2)^n(が0.0)に無限に近づくため、証明者がある秘密の数字sを知っているという結論が証明されます。この例は、零知識証明システムの完全性、信頼性、および零知識性を証明しています。
ゼロ知識証明技術の進化の40年:基本からZKロールアップまでの包括的な分析
ゼロ知識証明技術の概要と今後の展望
###概要
zk-SNARKs(ZKP)は、重要な暗号技術として、ブロックチェーン分野で分散台帳技術に次ぐ最も革新的なイノベーションの一つと広く認識されています。本稿では、ZKP技術の近40年間の発展の歴史と最新の研究について体系的なレビューを行います。
まず、ZKPの基本概念と歴史的背景について紹介し、回路ベースのZKP技術、具体的にはzk-SNARKs、Pinocchio、Bulletproofsなどのモデルの設計、応用、最適化方法について重点的に分析しました。計算環境に関しては、ZKVMとZKEVMを紹介し、これらが取引処理能力を向上させ、プライバシーを保護し、検証効率を高める方法について探討しました。また、ZK RollupがLayer 2拡張ソリューションとしての動作メカニズムと最適化方法、ハードウェアアクセラレーション、ハイブリッドソリューション、専用ZK EVMの最新の進展についても説明しました。
最後に、本論文はZKCoprocessor、ZKML、ZKThreads、ZK Sharding、ZK StateChannelsなどの新たな概念を展望し、それらがブロックチェーンのスケーラビリティ、相互運用性、プライバシー保護においてどのような潜在能力を持っているかを探ります。
最新の技術と発展動向を分析することによって、本記事はZKP技術の理解と応用に対する包括的な視点を提供し、ブロックチェーンシステムの効率と安全性を向上させる大きな潜在能力を示し、将来の投資決定に重要な参考を提供しています。
目次
前書き
ゼロ知識証明の基礎知識
概要
ゼロ知識証明の例
非対話型のゼロ知識証明
背景
NIZKの提案
フィアット-シャミール変換
イェンス・グロスと彼の研究
その他の研究
回路ベースのゼロ知識証明
背景
回路モデルの基本概念と特徴
ゼロ知識証明における回路設計と応用
潜在的な落とし穴と課題
第四に、ゼロ知識証明モデル
背景
一般的なアルゴリズムモデル
線形PCPと離散対数問題に基づくスキーム
一般人による証明に基づくスキーム
確率論的検証可能な証明に基づくゼロ知識
CPCベースのセットアップステージ分類
ゼロ知識仮想マシンの概要と開発
背景
既存のZKVMの分類
フロントエンドとバックエンドのパラダイム
ZKVMパラダイムの長所と短所
六、zk-SNARKsイーサリアム仮想マシンの概要と発展
背景
ZKEVMのしくみ
ZKEVMの実装プロセス
ZKEVMの特徴
ゼロ知識レイヤー2ネットワークソリューションの概要と開発
背景
ZK Rollupの工作メカニズム
ZK Rollupの欠点と最適化
ゼロ知識証明の今後の展開方向
コンピューティング環境の開発を加速する
ZKMLの提案・開発
ZKP拡張技術の開発
ZKPの相互運用性の開発
まとめ
###イントロダクション
Web3時代の到来に伴い、ブロックチェーンアプリケーション(DApps)は爆発的に成長し、毎日新しいアプリケーションが登場しています。近年、ブロックチェーンプラットフォームは毎日数百万ユーザーの活動を支え、数十億の取引を処理しています。これらの取引から生成される膨大なデータには、ユーザーの身元、取引額、アカウントアドレス、残高などの敏感な個人情報が含まれることがよくあります。ブロックチェーンのオープン性と透明性を考慮すると、保存されたデータは誰にでも公開されるため、さまざまなセキュリティとプライバシーの問題が引き起こされています。
現在、これらの課題に対処するためのいくつかの暗号技術があり、同態暗号、リング署名、安全なマルチパーティ計算、そしてzk-SNARKsが含まれます。同態暗号は、暗号文を解読することなく演算を実行できるため、アカウントの残高や取引額の安全を保護するのに役立ちますが、アカウントアドレスを保護することはできません。リング署名は、署名者の身元を隠す特別なデジタル署名形式を提供し、アカウントアドレスを保護しますが、アカウントの残高や取引額を保護することはできません。安全なマルチパーティ計算は、複数の参加者間で計算タスクを分配することを可能にし、どの参加者も他の参加者のデータを知ることなく、アカウントの残高や取引額を効果的に保護しますが、アカウントアドレスを保護することもできません。さらに、これらの技術は、取引額、アカウントアドレス、アカウントの残高を漏らさずに、ブロックチェーン環境における証明者が十分な取引額を持っているかどうかを検証することもできません。
zk-SNARKs(ZKP)は、より包括的なソリューションです。この検証プロトコルは、仲介データを開示することなく、特定の命題の正当性を検証することを可能にします。このプロトコルは、複雑な公開鍵インフラを必要とせず、悪意のあるユーザーが追加の有用な情報を取得する機会を提供することもありません。ZKPを使用することで、検証者はプライベートな取引データを漏らすことなく、証明者が十分な取引金額を持っているかどうかを検証できます。検証プロセスには、証明者が主張する取引金額を含む証明を生成し、その証明を検証者に渡すことが含まれます。検証者は証明に対して事前に定義された計算を行い、最終的な計算結果を出力することで、証明者の主張を受け入れるかどうかの結論を導きます。証明者の主張が受け入れられた場合、それは彼らが十分な取引金額を持っていることを意味します。上記の検証プロセスは、ブロックチェーン上に記録され、偽造はありません。
ZKPのこの特性は、ブロックチェーン取引や暗号通貨アプリケーションにおいて中心的な役割を果たし、特にプライバシー保護とネットワーク拡張において重要であり、それにより学術研究の焦点となり、分散型台帳技術(、特にビットコイン)が成功裏に実施されて以来、最も重要な技術革新の一つとして広く認識されています。同時に、業界の応用およびリスク投資の主要なトラックでもあります。
このように、ZKPに基づく多くのネットワークプロジェクトが次々に登場しています。例えば、ZkSync、StarkNet、Mina、Filecoin、Aleoなどです。これらのプロジェクトの発展に伴い、ZKPのアルゴリズム革新が次々と現れ、報告によればほぼ毎週新しいアルゴリズムが登場しています。さらに、ZKP技術に関連するハードウェア開発も急速に進展しており、ZKPに最適化されたチップが含まれています。例えば、Ingonyama、Irreducible、Cysicなどのプロジェクトはすでに大規模な資金調達を完了しており、これらの発展はZKP技術の急速な進歩を示すだけでなく、汎用ハードウェアからGPU、FPGA、ASICのような専用ハードウェアへの移行を反映しています。
これらの進展は、zk-SNARKs技術が暗号学の分野における重要なブレークスルーであるだけでなく、より広範なブロックチェーン技術の応用(、特にプライバシー保護と処理能力の向上における重要な推進力であることを示しています)。
したがって、私たちは今後の投資判断をより良く支援するために、zk-SNARKs(ZKP)に関連する知識を体系的に整理することに決めました。そのために、私たちはZKPに関連する主要な学術論文(を関連性と引用回数に基づいてレビューし、順位付けしました)。同時に、私たちはこの分野のリーディングプロジェクトの資料とホワイトペーパー(を資金調達規模に基づいて詳細に分析し、順位付けしました)。これらの包括的な資料収集と分析は、本稿の執筆に確固たる基盤を提供しました。
1. ゼロ知識証明の基礎知識
1. 概要
1985年、学者Goldwasser、MicaliとRackoffは論文《The Knowledge Complexity of Interactive Proof-Systems》で初めてzk-SNARKs(Zero-Knowledge Proof、ZKP)とインタラクティブな知識証明(Interactive Zero-Knowledge、IZK)を提唱しました。この論文はzk-SNARKsの基礎となる作品であり、後続の学術研究に影響を与える多くの概念を定義しています。例えば、知識の定義は「計算不可能な出力」であり、つまり知識は出力でなければならず、計算不可能であることは単純な関数ではなく、複雑な関数である必要があります。計算不可能な計算は通常、NP問題として理解され、解の正しさを多項式時間内に検証できる問題を指します。多項式時間は、アルゴリズムの実行時間が入力サイズの多項式関数で表されることを意味します。これは計算機科学においてアルゴリズムの効率と実行可能性を測る重要な基準です。NP問題の解決プロセスは複雑であるため、計算不可能な計算と見なされますが、その検証プロセスは相対的に簡単であるため、zk-SNARKsの検証に非常に適しています。
NP問題の一つの古典的な例は旅行商問題で、これは一連の都市を訪れ、出発点に戻る最短の経路を見つけることです。最短経路を見つけることは難しいかもしれませんが、与えられた経路が最短であるかどうかを検証することは比較的容易です。なぜなら、特定の経路の総距離を検証するのは多項式時間内で行うことができるからです。
Goldwasserらは彼らの論文の中で「知識の複雑さ」という概念を導入し、インタラクティブ証明システムにおいて、証明者が検証者に漏らす知識の量を定量化しました。彼らはまた、インタラクティブ証明システム(Interactive Proof Systems, IPS)を提案しました。このシステムでは、証明者(Prover)と検証者(Verifier)が複数のインタラクションを通じて、ある命題の真実性を証明します。
以上のように、Goldwasserらがまとめたzk-SNARKsの定義は、検証者が検証プロセス中に文の真理値以外の追加情報を得ることのない特別な相互作用型証明です。そして、次の3つの基本的な特性が提案されています:
1.完全性:もし証明が真実であれば、誠実な証明者は誠実な検証者にこの事実を納得させることができる;
2.信頼性: もし証明者が声明の内容を知らなければ、彼は検証者を欺くことができるのは微々たる確率だけである;
3.零知識性:証明過程が完了した後、検証者は「証明者がこの知識を持っている」という情報だけを得て、追加の内容を得ることはできません。
2.ゼロ知識証明例
零知識証明とその属性をよりよく理解するために、以下は証明者が特定の秘密情報を持っているかどうかを検証するための例であり、この例は設定、挑戦、応答の3つの段階に分かれています。
ステップ1:セットアップ
このステップでは、証明者の目標は、秘密の数字sを知っていることを証明する証拠を作成することですが、sを直接表示しないことです。秘密の数字sを設定します;
2つの大きな素数pとqを選び、それらの積nを計算します。素数pとqを設定し、得られたnを計算します;
v=s^2 mod nを計算します。ここで、vは証明の一部として検証者に送信されますが、それだけでは検証者や他の観察者がsを推測するには不十分です。
整数rをランダムに選択し、x=r^2 mod nを計算して検証者に送信します。この値xは後続の検証プロセスに使用されますが、sは明らかにしません。ランダム整数rを設定し、計算によって得られたx。
第二ステップ: チャレンジ
バリデーターはランダムに位置a(を選択し、0または1)のいずれかになります。そして、プローバーに送信します。この「チャレンジ」は、プローバーが次に取るべきステップを決定します。
ステップ 3: 応答する
バリデーターが発行したa値に基づき、プロバーが応答を行います:
もしa=0の場合、プローバーはg=r(を送信します。ここでrは彼が以前にランダムに選択した数)です。
もしa=1の場合、証明者はg=rs mod nを計算して送信します。検証者が送信するランダムビットaに応じて、証明者はgを計算します;
最後に、検証者は受け取ったgを基にxがg^2 mod nに等しいかどうかを検証します。等式が成立すれば、検証者はこの証明を受け入れます。a=0のとき、検証者はg^2 mod nを計算し、右側でxを検証します;a=1のとき、検証者はg^2 mod nを計算し、右側でxvを検証します。
ここで、私たちは検証者が計算したx=g^2 mod nを見ており、これは証明者が検証プロセスを成功裏に通過したことを示しており、同時に彼の秘密の数字sを漏らしていません。ここでは、aが0または1のいずれかしか取れず、可能性は2つだけであるため、証明者が運に頼って検証を通過する確率は50%(、aが0のとき)です。しかし、検証者はその後、証明者にn回挑戦し、証明者は関連する数字を変更し続け、検証者に提出し、常に検証プロセスを成功裏に通過します。この場合、証明者が運に頼って検証を通過する確率は(1/2)^n(が0.0)に無限に近づくため、証明者がある秘密の数字sを知っているという結論が証明されます。この例は、零知識証明システムの完全性、信頼性、および零知識性を証明しています。
2. 非対話型のゼロ知識証明
####1.背景
zk-SNARKs(ZKP)は、従来の概念では通常インタラクティブでオンラインのプロトコル形式です。例えば、Sigmaプロトコルは通常、認証を完了するために3〜5ラウンドのインタラクションを必要とします。しかし、即時取引や投票などのシナリオでは、複数回のインタラクションを行う機会がないことが多く、特にブロックチェーン技術の応用において、オフライン検証機能が非常に重要になります。
2.NIZKの提案
1988年、Blum、FeldmanとMicaliは初めて非対話型零知识(NIZK)証明の概念を提唱し、複数回の対話なしで、証明者(Prover)と検証者(Verifier)が認証プロセスを完了できる可能性を証明しました。この突破口により、即時取引、投票、そしてブロックチェーンアプリケーションの実現が可能になりました。