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