オリジナル著者: @renkingeth
まとめ
ゼロ知識証明 (ZKP) は、分散台帳技術以来の最も重要な技術革新の 1 つとしてブロックチェーン分野で広く認識されており、ベンチャー キャピタルの注目分野でもあります。この記事では、過去 40 年間のゼロ知識証明テクノロジーに関する歴史的文献と最新の研究を体系的にレビューします。
まず、ゼロ知識証明の基本概念と歴史的背景を紹介します。次に、zkSNARK、Ben-Sasson、Pinocchio、Bulletproofs、Ligero などのモデルの設計、適用、最適化方法を含む、回路ベースのゼロ知識証明技術の分析に焦点が当てられます。コンピューティング環境の分野では、この記事では ZKVM と ZKEVM を紹介し、それらがトランザクション処理能力を向上させ、プライバシーを保護し、検証効率を向上させる方法について説明します。この記事では、レイヤ 2 拡張ソリューションとしてのゼロ知識ロールアップ (ZK ロールアップ) の動作メカニズムと最適化方法、さらにハードウェア アクセラレーション、ハイブリッド ソリューション、専用 ZK EVM の最新の進歩についても紹介します。
最後に、この記事では、ZKCoprocessor、ZKML、ZKThreads、ZK Sharding、ZK StateChannels などの新たな概念に注目し、ブロックチェーンのスケーラビリティ、相互運用性、プライバシー保護の可能性を探ります。
この記事は、これらの最新のテクノロジーと開発トレンドを分析することで、ゼロ知識証明テクノロジーの理解と応用に関する包括的な視点を提供し、ブロックチェーン システムの効率とセキュリティを向上させる大きな可能性を実証し、将来の投資決定に重要な参考資料を提供します。
序文
現在、インターネットが Web3 時代に突入するにつれて、ブロックチェーン アプリケーション (DApps) が急速に発展しており、ほぼ毎日新しいアプリケーションが登場しています。近年、ブロックチェーン プラットフォームは数百万のユーザーのアクティビティをホストし、毎日数十億のトランザクションを処理してきました。これらの取引によって生成される大量のデータには、ユーザー ID、取引金額、口座アドレス、口座残高などの機密の個人情報が含まれることがよくあります。ブロックチェーンのオープン性と透明性を考慮すると、これらの保存されたデータは誰にでも公開されるため、セキュリティとプライバシーに関するさまざまな問題が生じます。
現在、準同型暗号化、リング署名、安全なマルチパーティ計算、ゼロ知識証明など、これらの課題に対処する暗号技術がいくつかあります。準同型暗号化では、暗号文を復号化せずに操作を実行できるため、口座残高や取引金額のセキュリティの保護に役立ちますが、口座アドレスのセキュリティは保護できません。リング署名は、署名者の身元を隠すことができる特殊な形式のデジタル署名を提供するため、アカウント アドレスのセキュリティは保護されますが、アカウント残高と取引金額は保護できません。安全なマルチパーティ計算により、参加者が他の参加者のデータを知ることなく、コンピューティング タスクを複数の参加者に分散できます。これにより、アカウント残高と取引金額のセキュリティが効果的に保護されますが、アカウント アドレスのセキュリティも保護できません。さらに、準同型暗号化、リング署名、および安全なマルチパーティ計算は、取引金額、口座アドレス、および口座残高を明らかにすることなく、ブロックチェーン環境の証明者が十分な取引金額を持っているかどうかを検証するために使用することはできません (Sun et al., 2021) )。
より包括的な解決策はゼロ知識証明です。これは、介在するデータを明らかにすることなく特定の命題の正しさを検証できる検証プロトコルです (Goldwasser、Micali、Rackoff、1985)。このプロトコルは複雑な公開鍵機能を必要とせず、その繰り返しの実装によって悪意のあるユーザーが追加の有用な情報を取得する機会が提供されることはありません (Goldreich、2004)。 ZKP を通じて、検証者はプライベートな取引データを明らかにすることなく、証明者が十分な取引額を持っているかどうかを検証できます。検証プロセスには、証明者が主張した取引金額を含む証明を生成し、その後、検証者が証明に対して事前定義された計算を実行し、最終的に証明者の声明を受け入れるかどうかを決定する最終計算結果を生成することが含まれます。 。証明者の陳述が受け入れられれば、十分な取引金額があることを意味します。上記の検証プロセスは、偽造することなくブロックチェーンに記録することができます (Feige、Fiat Shamir、1986)。
ZKP のこの特性により、特にプライバシー保護とネットワーク拡張の観点から、ブロックチェーン トランザクションと暗号通貨アプリケーションで中心的な役割を果たすことができます。ZKP は学術研究の焦点となっているだけでなく、自己配布型であるとも広く考えられています。台帳技術、特にビットコインは、その実装が成功して以来最も重要な技術革新の 1 つです。また、これは業界アプリケーションとベンチャーキャピタルにとって重要なトラックでもあります (Konstantopoulos、2022)。
その結果、ZkSync、StarkNet、Mina、Filecoin、Aleoなど、多くのZKPベースのネットワークプロジェクトが次々と登場しました。これらのプロジェクトの発展に伴い、ZKPに関するアルゴリズムの革新が次々と生まれており、ほぼ毎週のように新しいアルゴリズムがリリースされていると報告されている(Lavery, 2024; AdaPulse, 2024)。また、ZKPに最適化されたチップなど、ZKP技術に関連するハードウェア開発も急速に進んでいます。たとえば、Ingonyama、Irreducible、Cysic などのプロジェクトは大規模な資金調達を完了しています。これらの開発は、ZKP テクノロジーの急速な進歩を示すだけでなく、汎用ハードウェアから GPU や FPGA などの専用ハードウェアへの移行を反映しています。 、および ASIC (Ingonyama、2023 ; Burger、2022)。
これらの開発は、ゼロ知識証明技術が暗号化分野における重要なブレークスルーであるだけでなく、特にプライバシー保護と処理能力の向上において、より広範なブロックチェーン技術の応用を可能にする重要な要素であることを実証しています(Zhou et al、2022)。
したがって、将来の投資決定をより適切に行うために、ゼロ知識証明 (ZKP) の関連知識を体系的に整理することにしました。この目的を達成するために、私たちは ZKP に関連する主要な学術論文を包括的にレビューしました (関連性と引用数に従って分類) 同時に、この分野の主要なプロジェクトの情報とホワイトペーパーも詳細に分析しました (関連性と引用数に従って分類しました)。融資規模)。これらの包括的なデータ収集と分析は、この記事を書くための強固な基盤となります。
1. ゼロ知識証明の基礎知識
1。概要
1985 年、学者の Goldwasser、Micali、Rackoff は論文「TheKnowledge Complexity of Interactive Proof-Systems」の中でゼロ知識証明 (Zero-KnowledgeProof、ZKP) と対話型知識証明 (InteractiveZero-Knowledge、IZK) を初めて提案しました。この論文はゼロ知識証明の基礎であり、その後の学術研究に影響を与える多くの概念を定義しています。たとえば、知識の定義は「実行不可能な計算の出力」です。つまり、知識は出力であり、実行不可能な計算でなければなりません。これは、知識が単純な関数であってはならず、複雑な関数でなければならないことを意味します。実行不可能な計算は、通常、NP 問題、つまり、その解が多項式時間で正しいことが検証できる問題として理解できます。多項式時間とは、アルゴリズムの実行時間が入力サイズの多項式関数で表現できることを意味します。これは、アルゴリズムの効率と実現可能性を測定するためのコンピューター サイエンスにおける重要な基準です。 NP 問題の解決プロセスは複雑であるため、実行不可能な計算であると考えられていますが、検証プロセスは比較的単純であるため、ゼロ知識証明の検証に非常に適しています (Goldwasser、Micali、Rackoff、1985)。
NP 問題の典型的な例は、一連の都市を訪れて出発点に戻る最短経路を見つける巡回セールスマン問題です。最短パスを見つけるのは難しい場合がありますが、パスが与えられている場合、このパスが最短であるかどうかを検証するのは比較的簡単です。特定のパスの合計距離の検証は多項式時間で完了できるためです。
Goldwasser らは、対話型証明システムにおいて証明者から検証者に漏れた知識の量を定量化するために、「知識の複雑さ」の概念を論文に導入しました。彼らはまた、証明者 (Prover) と検証者 (Verifier) が複数回の対話を通じて特定のステートメントの信頼性を証明する対話型証明システム (IPS) を提案しました (Goldwasser、Micali Rackoff、1985)。
要約すると、Goldwasser らによってまとめられたゼロ知識証明の定義は、検証者が検証プロセス中にステートメントの真理値以外の追加情報を取得しない特別な対話型証明であり、次の 3 つの基本的な特性が提案されています。 :
完全性: 議論が正しい場合、正直な証明者は正直な検証者を説得できるという事実。
信頼性 (健全性): 証明者がステートメントの内容を知らない場合、証明者は無視できる確率でしか検証者を騙すことができません。
ゼロ知識: 証明プロセスが完了した後、検証者は「証明者はこの知識を持っている」という情報のみを取得し、追加の内容を取得することはできません (Goldwasser、Micali Rackoff、1985)。
2. ゼロ知識証明の例
ゼロ知識証明とその特性をよりよく理解するために、証明者が何らかの個人情報を所有しているかどうかを検証する例を次に示します。これは、セットアップ、チャレンジ、レスポンスの 3 つの段階に分かれています。
ステップ 1: セットアップ
このステップでの証明者の目標は、秘密の数字を直接明らかにすることなく、秘密の数字を知っているという証拠を作成することです。秘密の番号を仮定します。
2 つの大きな素数 p と q を選択し、それらの積を計算します。素数を計算してみましょう。
ここで計算すると、v は証明の一部として検証者に送信されますが、検証者や傍観者が s を推論するにはそれだけでは十分ではありません。 ;
整数 r がランダムに選択され、計算されて検証者に送信されます。この値 x は後続の検証プロセスで使用されますが、やはり s は公開されません。ランダムな整数を仮定して計算します。
ステップ 2: チャレンジ
検証者はビット a (0 または 1) をランダムに選択し、それを証明者に送信します。この「チャレンジ」によって、証明者が取るべき次のステップが決まります。
ステップ 3: 対応
検証者が発行した の値に基づいて、証明者は次のように応答します。
If、証明者は送信します (r は、証明者が以前にランダムに選択した番号です)。
場合、証明者は計算して送信します。検証者がランダムなビットを送信し、 a の値に基づいて証明者が次の値を計算すると仮定します。
最後に、検証者は受け取った g に基づいてそれが等しいかどうかを検証します。方程式が成り立つ場合、検証者は証明を受け入れます。の場合、検証者は検証者の計算を計算し、右側が検証します。 の場合、検証者は検証者の計算を計算し、右側が検証します。
ここでは、証明者が秘密番号 s を明らかにすることなく検証プロセスを正常に通過したことを示す検証者の計算がわかります。ここで、a は 0 か 1 しか取れないため、可能性は 2 つだけあり、証明者は (a が 0 を取った場合に) 検証に合格するかどうかは運に依存します。しかし、検証者は証明者に再度挑戦し、証明者は関連する数値を変更し続けて検証者に送信し、常に検証プロセスを正常に通過します。このように、証明者は検証を通過するかどうかを運に頼ることになります (限りなく 0 に近づきます)。 , 結論として、証明者は秘密の数 s を知っていることが証明されます。この例は、ゼロ知識証明システムの完全性、信頼性、およびゼロ知識可能性を証明しています (Fiat Shamir、1986)。
2. 非インタラクティブなゼロ知識証明
1.背景
ゼロ知識証明 (ZKP) は、従来の概念では通常、対話型のオンライン プロトコル形式です。たとえば、シグマ プロトコルでは、通常、認証を完了するために 3 ~ 5 ラウンドの対話が必要です (Fiat Shamir、1986)。ただし、即時トランザクションや投票などのシナリオでは、複数ラウンドの対話の機会がないことが多く、特にブロックチェーン技術の応用においては、オフライン検証機能が特に重要です (Sun et al., 2021)。
2.NIZKの提案
1988 年、Blum、Feldman、Micali は、非対話型ゼロ知識 (NIZK) 証明の概念を初めて提案しました。これは、証明者 (Prover) と検証者 (Verifier) が複数回の認証プロセスを行わなくても認証プロセスを完了できることを証明しました。相互作用の可能性。この画期的な進歩により、即時トランザクション、投票、ブロックチェーン アプリケーションが実現可能になりました (Blum、Feldman、Micali、1988)。
彼らは、非対話型ゼロ知識証明 (NIZK) が 3 つの段階に分割できることを提案しました。
設定
計算する
確認する
セットアップ フェーズでは、計算関数を使用して、セキュリティ パラメーターを公開知識 (証明者と検証者の両方が利用できる) に変換します。これは通常、共通参照文字列 (CRS) にエンコードされます。このようにして、正しいパラメーターとアルゴリズムを使用して証明が計算および検証される方法です。
計算フェーズでは、計算関数、入力キーと証明キーを使用し、計算結果と証明を出力します。
検証フェーズでは、キーを検証することによって証明の有効性が検証されます。
彼らが提案した共通参照文字列 (CRS) モデルは、文字列を共有するすべての参加者に基づいて、NP 問題の非対話型ゼロ知識証明を実装します。このモデルの動作は CRS の信頼された生成に依存しており、すべての参加者が同じ文字列にアクセスできる必要があります。このモデルに従って実装されたソリューションは、CRS が正しく安全に生成された場合にのみセキュリティを確保できます。 CRS を生成するプロセスは、多数の参加者にとって複雑で時間がかかる場合があるため、このようなスキームは操作が簡単で小規模であることが証明されることがよくありますが、セットアップが困難な場合もあります (Blum、Feldman Micali、1988) )。
その後、NIZK テクノロジーは急速に発展し、対話型ゼロ知識証明を非対話型証明に変換するさまざまな方法が登場しました。これらのアプローチは、システムの構築または基礎となる暗号モデルの前提が異なります。
3.フィアット・シャミール変換
Fiat-Shamir 変換は、Fiat-ShamirHeurisitc (ヒューリスティック) または Fiat-Shamir Paradigm (パラダイム) とも呼ばれ、1986 年に Fiat と Shamir によって提案され、対話型ゼロ知識証明を非対話型証明に変換できる方法です。この方法では、ハッシュ関数を導入することで対話の数が削減され、セキュリティの仮定に基づいて証明の信頼性と偽造の困難性が保証されます。 Fiat-Shamir 変換は、公開暗号ハッシュ関数を使用してランダム性と対話性の一部を置き換え、その出力はある程度 CRS とみなすことができます。このプロトコルはランダム オラクル モデルでは安全であると考えられていますが、ハッシュ関数の出力が一様にランダムであり、さまざまな入力から独立しているという仮定に依存しています (Fiat Shamir、1986)。 2003 年の Canetti、Goldreich、および Halevi による研究では、この仮定は理論モデルでは当てはまりますが、実際の応用では課題に遭遇する可能性があり、したがって使用すると失敗する危険性があることが示されました (Canetti、Goldreich、および Halevi、2003)。 Micali は後にこの方法を改良し、複数ラウンドのインタラクションを 1 ラウンドに圧縮し、インタラクション プロセスをさらに簡素化しました (Micali、1994)。
4. イェンス・グロースと彼の研究
イェンス・グロースのその後の研究は、暗号化とブロックチェーン技術におけるゼロ知識証明の応用を大きく推進しました。 2005 年、彼、オストロフスキー、サハイは共同で、あらゆる NP 言語に適した、動的/適応的な敵に直面した場合でも普遍的な組み合わせ安全性 (UC) を保証できる、最初の完全な非対話型ゼロ知識証明システムを提案しました。さらに、彼らは数理論の複雑さの仮定を使用して、簡潔で効率的な非対話型のゼロ知識証明システムを設計し、これにより CRS と証明のサイズが大幅に削減されました (Groth Sahai、2005)。
2007 年に、Groth、Cramer、Damgård は、実験的な検証を通じてこれらの技術の商用化を開始しました。これらのスキームは双線形群の仮定に基づいていますが、公開キー暗号化と署名スキームは効率とセキュリティを大幅に向上させました (Groth Sahai、2007)。 。 2011 年に、Groth は完全準同型暗号化と非対話型のゼロ知識証明を組み合わせる方法をさらに検討し、NIZK のサイズが証明の証人サイズと一致するように通信オーバーヘッドを削減するソリューションを提案しました (Groth、2011)。その後数年間、彼と他の研究者はペアリングベースの技術に関する徹底的な研究を実施し、大規模な主張に対してコンパクトで効率的な非対話型証明を提供しました。ただし、これらの証明はまだ双線形群の枠組みから抜け出せていませんでした(Bayer グロース、2012年、グロース、コールワイス、ピントーレ、2016年、ブートル、チェルリ、チャイドス、グロート、プティ、2012年。
5. その他の研究
特定のアプリケーション シナリオでは、特定の検証者の非対話型ゼロ知識証明が、その独自の実用的な価値を示します。たとえば、Cramer と Shoup は、1998 年と 2002 年に選択的暗号文攻撃に効果的に対抗するために、ユニバーサル ハッシュ関数に基づいて開発された公開キー暗号化方式を使用しました。さらに、鍵登録モデルでは、すべての NP タイプの問題を解くのに適した、新しい非対話型のゼロ知識証明手法の開発に成功しました。鍵となるのは、参加者がその後の検証のために自分の鍵を登録する必要があることです (Cramer)。 Shou 、1998、2002)。
さらに、Damgård、Fazio、Nicolosi は 2006 年に既存の Fiat-Shamir 変換を改良し、直接対話を行わずに非対話型のゼロ知識証明を可能にする新しい方法を提案しました。彼らのアプローチでは、検証者はまず、後続の暗号化操作に備えて公開鍵を登録する必要があります。証明者は加法準同型暗号を使用して無意識のうちにデータを操作し、チャレンジに対する応答として答えを含む暗号化メッセージを生成します。この手法の安全性は、解決が難しいと考えられている特定の計算問題は、並外れたコンピューティング リソースを備えた敵対者によって解決される可能性があると考える「複雑性てこ入れ仮説」に基づいています (Damgård、Fazio、Nicolosi、2006)。
2009 年に Ventre と Visconti によって提案された「弱い帰属信頼性」という概念は、この仮定に代わるものです。虚偽の証明を提案する場合、相手はその虚偽を認識しているだけでなく、どのように偽証を作成したのかを理解する必要があります。 。敵対者は自分の欺瞞方法を明確にする必要があるため、この要件により欺瞞の難易度が大幅に高まります。実際には、この概念を使用する敵対者は、指定された検証者の暗号文情報を含む特定の証明を提供する必要があります。そのため、証明を偽造しようとする攻撃者の行動が検出によって明らかになります。ヴェントレとヴィスコンティ、2009)。
Unruh 変換は、2015 年に提案された Fiat-Shamir 変換の代替です。 Fiat-Shamir 手法は一般に、量子コンピューティングの前では安全ではなく、一部のプロトコルに対して安全でないソリューションを生成する可能性があります (Unruh、2015)。対照的に、ランダム Oracle モデル (ROM) の Unruh 変換は、量子攻撃者に対するあらゆる対話型プロトコルに対して、証明可能で安全な非対話型ゼロ知識証明 (NIZK) を提供します。 Fiat-Shamir 法と同様に、Unruh 変換には追加のセットアップ手順は必要ありません (Ambainis、Rosmanis Unruh、2014)。
さらに、Kalaiらは、個人情報検索技術に基づいた任意の意思決定問題に対する議論システムを提案した。この方法は、マルチ証明者対話型証明システム (MIP) モデルを採用し、Aiello らの方法を通じて MIP を引数システムに変換します。この構造は標準モデル内で動作し、ランダムなオラクルの仮定に依存する必要はありません。この方法は、「Proofs-for-Muggles」(Kalai, Raz Rothblum, 2014) に基づくいくつかのゼロ知識議論で使用されます。
これらの技術をベースとした非対話型ゼロ知識証明(NIZK)は、金融取引や電子投票、ブロックチェーン技術など、高いセキュリティとプライバシー保護が求められるさまざまな分野で広く利用されています。インタラクションの数を減らし、証明の生成と検証プロセスを最適化することで、NIZK はシステムの効率を向上させるだけでなく、セキュリティとプライバシー保護機能も強化します。将来的には、これらの技術のさらなる開発と改善により、NIZKがより多くの分野で重要な役割を果たし、より安全で効率的な情報処理と送信のための強固な技術基盤を提供することが期待できます(Partala、Nguyen Pirttikangas、2020) )。
3. 回路ベースのゼロ知識証明
1.背景
暗号化の分野では、特に高度な並列化や特定の種類のコンピューティング (大規模行列演算など) を必要とする計算タスクを扱う場合、従来のチューリング マシン モデルには一定の制限があります。チューリング マシン モデルは、無限に長い紙テープをシミュレートするには複雑なメモリ管理メカニズムを必要とし、並列コンピューティングやパイプライン操作を直接表現するのには適していません。対照的に、回路モデルは、その独自の計算構造上の利点により、特定の暗号処理タスクにより適しています (Chaidos、2017)。この記事では、回路モデルに基づくゼロ知識証明システムについて詳しく説明します。このタイプのシステムは、計算プロセスを表現および検証するために回路 (通常は算術回路またはブール回路) を使用することに特に重点を置いています。
2. 回路モデルの基本概念と特徴
回路ベースのコンピューティング モデルでは、回路は、あらゆるコンピューティング プロセスを、特定の論理演算または算術演算を実行する一連のゲートおよび接続に変換する特別なコンピューティング モデルとして定義されます。具体的には、回路モデルは主に 2 つのカテゴリに分類されます。
算術回路: 主に加算ゲートと乗算ゲートで構成され、有限体の要素を処理するために使用されます。算術回路は複雑な数値演算の実行に適しており、暗号化アルゴリズムや数値解析で広く使用されています。
論理回路:ANDゲート、ORゲート、NOTゲートなどの基本的な論理ゲートで構成され、ブール演算を処理するために使用されます。論理回路は、単純な判定ロジックやバイナリ計算の実行に適しており、さまざまな制御システムや単純なデータ処理タスクの実装によく使用されます (Chaidos、2017)。
3.ゼロ知識証明における回路設計と応用
ゼロ知識証明システムでは、回路設計のプロセスには、証明されるべき問題を回路として表現することが含まれます。このプロセスでは、zk 回路の設計が必要になります。「計算が出力が真であると主張する場合」。 、出力は特定の要件を満たす必要があります。これらの要件を加算または乗算だけでモデル化することが難しい場合は、これらの要件をより簡単にモデル化できるように、証明者に追加の作業を依頼します。通常、設計プロセスは次の手順に従います。チャイドス、2017):
問題表現:まず、暗号ハッシュ関数の計算過程など、証明したい問題を回路の形に変換します。これには、計算ステップをゲートやワイヤなどの回路内の基本単位に分解することが含まれます。
回路の最適化: ゲートのマージやコンスタントフォールディングなどの技術的手段を通じて、回路設計が最適化され、必要なゲート数と計算ステップが削減され、それによってシステムの動作効率と応答速度が向上します。
多項式表現への変換: ゼロ知識証明技術に適応するために、最適化された回路はさらに多項式形式に変換されます。各回路要素と接続は、特定の多項式制約に対応します。
公開参照文字列 (CRS) の生成: システムの初期化フェーズ中に、証明書の生成および検証プロセスでその後使用するために、証明書キーと検証キーを含む公開参照文字列が生成されます。
証明の生成と検証: 証明者は、プライベート入力と CRS に基づいて回路上で計算を実行し、ゼロ知識証明を生成します。検証者は、証明者の個人情報を知らなくても、公開回路記述と CRS に基づいて証明の正しさを検証できます (Chaidos、2017)。
ゼロ知識証明回路設計には、特定の計算プロセスを回路表現に変換し、追加の個人情報の開示を回避しながら計算結果の精度を確保するための多項式制約の構築が含まれます。回路設計における重要なタスクは、証明の生成と検証の効率を向上させるために、回路の構造を最適化し、効果的な多項式表現を生成することです。これらのステップの実装を通じて、ゼロ知識証明技術は追加情報を明らかにすることなく計算の正しさを検証することができ、プライバシー保護とデータセキュリティの二重のニーズが確実に満たされるようにします (Chaidos、2017)。
4. 潜在的な落とし穴と課題
短所としては次のようなものがあります。
回路の複雑さと規模: 複雑な計算には巨大な回路が必要となり、特に大規模なデータを処理する場合、証明の生成と検証の計算コストが大幅に増加します。
最適化の難しさ: 技術的手段 (ゲート マージ、定数フォールディングなど) で回路を最適化できますが、効率的な回路の設計と最適化には依然として深い専門知識が必要です。
特定のコンピューティング タスクへの適応性: 異なるコンピューティング タスクには異なる回路設計が必要であり、特定のタスクごとに効率的な回路を設計するのは時間がかかり、一般化するのが難しい場合があります。
暗号化アルゴリズムの実装の難しさ: 複雑な暗号アルゴリズム (ハッシュ関数や公開キー暗号化など) を実装するには、多数の論理ゲートが必要になる場合があり、回路設計と実装が困難になります。
リソース消費: 大規模な回路は大量のハードウェア リソースを必要とし、実際のハードウェア実装では電力消費、熱、物理スペースの点でボトルネックに遭遇する可能性があります (Goldreich, 2004; Chaidos, 2017; Partala, Nguyen Pirttikangas, 2020;サン他、2021 年)。
解決策と改善点:
回路圧縮技術: 効率的な回路圧縮技術を研究および適用することで、必要な論理ゲートとコンピューティング リソースの数を削減します。
モジュール設計: 回路のモジュール設計により、回路設計の再利用性と拡張性が向上し、さまざまなタスクに合わせて回路を再設計する作業負荷が軽減されます。
ハードウェア アクセラレーション: 専用ハードウェア (FPGA や ASIC など) を使用して回路計算を高速化し、ゼロ知識証明の全体的なパフォーマンスを向上させます (Goldreich, 2004; Chaidos, 2017; Partala, Nguyen Pirttikangas, 2020; Sun et al., 2021) )。
4. ゼロ知識証明モデル
1.背景
回路ベースのゼロ知識証明は汎用性が低く、特定の問題に対して新しいモデルとアルゴリズムを開発する必要があります。現在、回路生成および設計アルゴリズム用のさまざまな高水準言語コンパイラーと低水準回路組み合わせツールが存在します。関連する計算は手動で実行できます。回路構築ツールまたは自動コンパイラが完成します。多くの場合、手動変換ではより最適化された回路が生成されますが、開発者にとっては自動変換の方が便利です。パフォーマンスが重要なアプリケーションでは、手動変換ツールが必要になることがよくあります (Chaidos, 2017; Partala, Nguyen Pirttikangas, 2020; Sun et al., 2021)。
この記事では、その中で最もよく知られているもののいくつかについて説明します。全体として、これらのモデルは zkSNARKs テクノロジーの拡張またはバリアントであり、それぞれが特定のアプリケーション要件 (例: 証明サイズ、計算の複雑さ、セットアップ要件など) 内での最適化を提供しようとしています。
各プロトコルには、特にセットアップ要件、証明サイズ、検証速度、計算オーバーヘッドの点で、特有の用途、利点、および制限があります。これらは、暗号化プライバシーや安全な投票システムから、ゼロ知識方式で検証された一般的なコンピューティングに至るまで、さまざまな分野で使用されています (Čapko、Vukmirović Nedić、2019)。
2. 共通アルゴリズムモデル
1. zkSNARK モデル: 2011 年に暗号学者 Bitansky らによって「Zero-KnowledgeSuccinct Non-Interactive Argument of Knowledge」の略称として提案されました。これは、抽出可能な衝突がある場合のゼロ知識証明メカニズムです。 Resistant Hash (ECRH) 関数を使用すると、NP 問題に対して SNARK を実装することが可能になり、計算委任、簡潔な非対話型ゼロ知識証明、およびコンテキスト内での簡潔な二者間安全計算における SNARK の適用を実証します。この研究は、SNARK の存在が ECRH の必要性を暗示しており、これらの暗号プリミティブ間の基本的な関係を確立していることも示しています (Bitansky et al., 2011)。
zkSNARK システムは、セットアップ、証明者、検証者の 3 つの部分で構成されます。セットアップ プロセスでは、事前定義されたセキュリティ パラメーター l と F 演算回路 C を使用して、証明キー (PK) と検証キー (VK) を生成します。この回路のすべての入力と出力はドメイン F の要素です。 PK は検証可能なプルーフを生成するために使用され、VK は生成されたプルーフを検証するために使用されます。生成された PK に基づいて、証明者は入力 x ∈ Fn と証人 W ∈ Fh を使用して証明 p を生成します。ここで、C(x, W) = 0 l です。ここで、C(x, W) = 0 l は回路 C の出力が 0 l であることを意味し、x と W は回路 C の入力パラメータです。 n、h、l はそれぞれ x、W、C 出力の次元を表します。最後に、検証者は VK、x、および p を使用して p を検証し、検証結果に基づいて証明を受け入れるか拒否するかを決定します (Bitansky et al., 2011)。
さらに、zkSNARK にはいくつかの追加機能があります。まず、検証プロセスは短時間で完了でき、証明のサイズは通常わずか数バイトです。第 2 に、証明者と検証者の間で同期通信を行う必要がなく、どの検証者もオフラインで証明を検証できます。最後に、証明者アルゴリズムは多項式時間でのみ実装できます。それ以来、さまざまな改良された zkSNARK モデルが登場し、その性能と適用範囲がさらに最適化されました (Bitansky et al., 2011)。
2. Ben-Sasson のモデル: Ben-Sasson らは、2013 年と 2014 年にフォン ノイマン RISC アーキテクチャ プログラム実行のための新しい zkSNARK モデルを提案しました。次に、Ben-Sasson らは、提案されたユニバーサル回路ジェネレーターに基づいてシステムを構築し、プログラムの実行を検証する際のアプリケーションを実証しました。このシステムは、演算回路の充足性を検証する暗号証明システムと、プログラムの実行を演算回路に変換する回路ジェネレータの2つのコンポーネントで構成されます。この設計は、機能性と効率性の両方において、特に回路発生器の汎用性と出力回路サイズの追加依存性の点で、以前の研究を上回っています。実験による評価では、このシステムが最大 10,000 命令のプログラムを処理し、わずか 5 ミリ秒の検証時間で高いセキュリティ レベルで簡潔な証明を生成できることが示されています。その価値は、ブロックチェーンやプライバシー保護スマートコントラクトなどの実用的なアプリケーション向けに、効率的で多用途かつ安全な zk-SNARKs ソリューションを提供することにあります (Ben-Sasson et al.、2013、2014)。
3. Pinocchio モデル: Parno et al. (2013) によって提案され、完全な非対話型ゼロ知識引数生成スイートです (Parno et al., 2013)。これには、開発者に計算を回路に変換する簡単な方法を提供する高度なコンパイラが含まれています。これらのコンパイラは高級言語で書かれたコードを受け入れるため、新旧のアルゴリズムを簡単に変換できます。ただし、適切なサイズの回路を生成するには、コード構造にいくつかの制約がある場合があります。
ピノキオのもう 1 つの特徴は、二次算術プログラム (QAP) と呼ばれる数学的構造を使用していることです。これにより、計算タスクを検証タスクに効率的に変換できます。 QAP は、任意の算術回路を多項式のセットとしてエンコードすることができ、これらの多項式を生成するために線形の時間と空間の計算量のみを必要とします。 Pinocchio によって生成される証明のサイズは 288 バイトですが、これはコンピューティング タスクの複雑さや入力および出力のサイズによって変わりません。これにより、データ送信とストレージのオーバーヘッドが大幅に削減されます。 Pinocchio の検証時間は通常 10 ミリ秒で、以前の作品と比べて検証時間が 5 ~ 7 桁短縮されます。一部のアプリケーションでは、Pinocchio はネイティブ実行よりも高速な検証を実現することもできます。ワーカープルーフのオーバーヘッドを削減: Pinocchio は、ワーカープルーフ生成のオーバーヘッドも以前の作品と比較して 19 ~ 60 倍削減します (Parno et al., 2013)。
4. 防弾モデル: 2017 年に、Benedikt Bünz et al. (2018) は、新しい非対話型 ZKP モデルを設計しました。信頼の設定は必要なく、証明サイズは証人値のサイズに応じて対数的に増加します。 Bulletproof は、機密トランザクションの間隔証明に特に適しており、最小数のグループ要素とフィールド要素を使用して値が特定の範囲内にあることを証明できます。さらに、Bulletproofs はインターバルプルーフの集約もサポートしており、簡潔なマルチパーティ計算プロトコルを通じて単一のプルーフを生成できるため、通信と検証の時間を大幅に削減できます。 Bulletproof は、暗号通貨などの分散環境やトラストレス環境において非常に効率的かつ実用的になるように設計されています。 Bulletproof は厳密には従来の回線ベースのプロトコルではなく、SNARK ほど簡潔ではなく、Bulletproof の検証には SNARK プルーフの検証よりも時間がかかります。ただし、信頼できるセットアップを必要としないシナリオでは、より効率的です。
5. Ligero モデル: Ames et al. (2017) によって提案された軽量のゼロ知識引数モデル。 Ligero の通信の複雑さは、検証回路のサイズの平方根に比例します。さらに、Ligero は衝突耐性のあるハッシュ関数に依存できます。さらに、Ligero はランダム オラクル モデルの zkSNARK スキームにすることができます。このモデルには、信頼できるセットアップや公開キー暗号化は必要ありません。 Ligero は非常に大規模な検証回路で使用できます。同時に、中規模および大規模回路のアプリケーションにも適しています。
3. 線形 PCP および離散対数問題に基づく解決策
Ishai と Paskin (2007) は、対話型線形 PCP の通信の複雑さを軽減するために加法準同型公開キー暗号化を使用することを提案しました。その後、Groth らは 2006 年から 2008 年にかけて複数の研究を発表し、離散対数問題と双線形ペアリングに基づいた NIZK スキームを提案し、完全な完全性、計算上の正確性、および完全なゼロ知識を達成しました。このスキームは、Pedersen コミットメントと同様の暗号コミットメント スキームを使用してステートメントを代数的制約充足問題として定式化し、Fiat-Shamir ヒューリスティックを必要とせずに線形未満の証明長と非対話性を実現します。大規模な CRS と強力な暗号仮定「指数知識」が必要ですが、十分な長さの CRS があれば一定の証明長を達成できます。検証と証明にはコストがかかるため、「シミュレートされた抽出可能性」セキュリティ モデルを採用することをお勧めします。このタイプのスキームは線形 PCP および/または離散対数問題に基づいていますが、どちらも量子耐性がありません (Groth、2006、2006、2008; Groth Sahai、2007)。
6. Groth 16 モデル: 2016 年に Jens Groth によって提案された効率的な非対話型ゼロ知識証明システムです。このプロトコルは、楕円曲線ペアリングと二次算術プログラム (QAP) に基づいており、簡潔で高速かつ安全なゼロ知識証明を提供することを目的としています。
7. ソニックモデル: M. Maller et al. (2019) は、多項式コミットメントスキーム、ペアリング、および算術回路を使用した、Groth に基づく更新可能な CRS モデルを提案しました。信頼できるセットアップが必要ですが、これは安全なマルチパーティの計算を通じて実現できます。 CRS が生成されると、あらゆる規模の回線がサポートされます。
8. PLONK モデル: 2019 年に提案された一般的な zk-SNARK。置換多項式を使用して算術回路表現を簡素化し、証明をより単純かつ効率的にします。多用途であり、再帰的証明の組み合わせをサポートします (Gabizon、Williamson Ciobotaru、2019 年)。 PLONK モデルは、Sonic の証明長を短縮し、証明効率を向上させると主張していますが、まだピアレビューに合格していません。
9. Marlin モデル: 代数証明システムの効率と Sonic および PLONK の普遍的で更新可能な設定プロパティを組み合わせた改良された zk-SNARK プロトコル。証明サイズと検証時間の改善を提供します (Chiesa et al., 2019)。
10. SLONK モデル: Zac と Ariel によって ethresear 文書で導入された新しいプロトコル。特定の計算効率の問題を解決し、元の PLONK システムの機能を強化するために設計された PLONK の拡張であり、通常は基礎となる暗号化の前提または実装の変更が含まれます (イーサリアム研究、2019)。
11. SuperSonic モデル: 新しい多項式コミットメント スキームを適用して、信頼セットアップなしで Sonic をゼロ知識スキームに変換します。量子耐性がない (Bünz、Fisch Szepieniec、2019)。
4. 一般の人々の体験談に基づく解決策
「Proofs-for-Muggles」は、2008 年に Goldwasser、Kalai、Rothblum によって提案された新しいゼロ知識証明方法です。このアプローチは、元の対話型証明モデルで多項式時間証明器の対話型証明を構築し、幅広い問題に適用できます。これらの証明は、Kalai et al. の変換 (Kalai, Raz Rothblum, 2014) を通じて非対話型のゼロ知識証明に変えることができます。
12. Hyrax モデル: Wahby et al. (2018) は、一般の人々の証明に基づいて、証明者と検証者にとって非常に低コストである低通信、低コストのゼロ知識議論スキーム Hyrax を初めて設計しました。このシナリオでは、この引数に信頼できる設定はありません。ステートメントのバッチに適用した場合、検証時間は算術回路のサイズと準線形の関係にあり、十分に一定です。証明者の実行時間は、演算回路のサイズに直線的に比例し、一定です。非対話性を実現するために Fiat-Shamir ヒューリスティックを使用しており、離散対数問題に基づいており、量子耐性は実現しません。
13. Libra モデル: 線形証明時間、簡潔な証明サイズ、検証時間を備えた最初の ZKP モデル。 Libra では、検証のオーバーヘッドを削減するために、証明者の応答をマスクできるわずかにランダムな多項式手法を通じてゼロ知識メカニズムが実装されています。さらに、Libra では、回路の入力サイズにのみ依存する 1 回限りの信頼できるセットアップが必要です。 Libra は優れた漸近パフォーマンスと優れた証明者の効率を備えています。証明サイズと検証時間の点でのパフォーマンスも非常に効率的です (Xie et al., 2019)。
証明者アルゴリズムの計算の複雑さの点では、Libra は Ben-Sasson のモデル、Ligero、Hyrax、および Aurora を上回っています。さらに、Libra の証明者アルゴリズムの計算の複雑さは、回路の種類には依存しません (Partala、Nguyen Pirttikangas、2020)。
14. スパルタン モデル: Srinath Setty (2019) によって提案されたゼロ知識証明システム。信頼できるセットアップを必要とせずに効率的な証明を提供することを目的としており、フィアット シャミア変換を使用して非対話性を実現します。軽量設計と大規模回路を効率的に処理できる能力で知られています。
5. 確率論的証明に基づくゼロ知識 (PCP)
Kilian (1992) は、NP 用の最初の対話型ゼロ知識引数スキームを構築し、多対数通信を実現しました。このスキームは、衝突耐性のあるハッシュ関数、対話型証明システム (IP)、および確率的検証可能証明 (PCP) を使用します。証明者と検証者は (ランダム化されたアルゴリズムとして) 複数のラウンドを通じて通信し、検証者はステートメントに関する証明者の知識をテストします。通常、一方的なエラーのみが考慮されます。証明者は常に正しいステートメントを擁護できますが、検証者は低い確率で偽のステートメントを受け入れる可能性があります。 2000 年に、Micali は Fiat-Shamir 変換を使用して、スキームを単一メッセージの非対話型スキームに変換しました。このアプローチを採用するには、次の実装が考えられます。
15. STARK モデル: ZK-STARKs (Scalable Transparent ARgument of Knowledge) テクノロジーは、複雑な証明を処理する際の zk-SNARKs の非効率性の問題を解決することを目的として、2018 年に Ben-Sasson らによって提案されました。同時に、プライベートデータの計算上の整合性を検証する問題を解決し、信頼できる当事者に依存することなく、透過的で量子後の安全な証明を提供できます。
同年、Ben-Sasson らは StarkWare Industries を設立し、ZK-STARK に基づいた最初のスケーラビリティ ソリューション StarkEx を開発しました。イーサリアムの公式ドキュメントによると、イーサリアムはフィアット・シャミアパラダイムを通じてランダムオラクルモデルで非対話性を実現できます。この構造は耐量子性ですが、そのセキュリティはリードソロモン符号に関する非標準の暗号仮定に依存しています。 ZK-STARK は ZK-SNARK と同じ特性を持っていますが、次の利点があります。 a) スケーラビリティ: 検証プロセスが高速です。透明性: 検証プロセスは公開されます。プルーフ サイズが大きい: より高い取引手数料が必要になります (StarkWare Industries、2018、2018)
16. Aurora モデル: Ben-Sasson et al. (2019) によって提案され、STARK の Succinct Non-Interactive Argument (SNARG) に基づいています。 Fiat-Shamir 構造に基づく非インタラクティブ。演算回路の充足可能性に適用されます。 Aurora の引数のサイズは、回路のサイズに応じて多対数的にスケールされます。さらに、Aurora にはいくつかの魅力的な機能があります。 Auroraには透明設定があります。 Aurora を破壊できる効果的な量子コンピューティング攻撃は存在しません。さらに、高速対称暗号化がブラック ボックスとして使用されます。 Aurora はプルーフ サイズを最適化します。たとえば、セキュリティパラメータが 128 ビットの場合、Aurora のプルーフサイズは最大 250 キロバイトです。 Aurora と Ligero は証明サイズと計算オーバーヘッドを最適化し、リソースが限られたデバイスでのゼロ知識証明に最適です。これらの最適化により、効率が向上するだけでなく、ゼロ知識証明テクノロジーの適用範囲が拡大され、より実用的なシナリオに適用できるようになります。
17. 簡潔な Aurora モデル: Ben-Sasson et al. (2019) が同じ論文で提案: より最適化されたプルーフ サイズと検証プロセスを提供する Aurora プロトコルの拡張。 Aurora の透過的なセットアップとセキュリティ機能を維持しながら、効率を高めます。
18. フラクタル モデル: Chiesa et al. (2020) は、効率とスケーラビリティを向上させるために再帰的な組み合わせを使用する前処理 SNARK を提案しました。対数証明サイズと検証時間を利用し、複雑な計算に特に適しています。
6. CPC(Common Proof Construction)のセットアップフェーズに基づく分類
第 1 世代 (G 1) - 各回線には個別の信頼できるセットアップが必要です。 zkSNARK、ピノキオ、グロス 16
第 2 世代 (G 2) - すべての回線に対して最初に 1 回設定されます。 PlonK、ソニック、マーリン、スロンク、リブラ
第 3 世代 (G 3) - 信頼できるセットアップを必要としない認証システム。 Bulletproofs、STARKs、Spartan、Fractal、Supersonic、Ligero、Aurora、SuccinctAurora (Čapko、Vukmirović Nedić、2019; Partala、Nguyen Pirttikangas、2020)。
5. ゼロ知識仮想マシンの概要と開発
1.背景
前回は暗号におけるゼロ知識証明 ZKP の開発について詳しく紹介しました。次に、コンピュータ分野でのゼロ知識証明 ZKP の開発について簡単に紹介します。
アンドレーエフ氏らは2019年、「ZkVM: Fast, Private, Flexible Blockchain Contracts」カンファレンスで、ゼロ知識証明システムの実装方法としてZK-VMの概念を初めて提案した。 ZK-VM の目標は、仮想マシン プログラムを実行することでゼロ知識証明を生成し、入力データを漏らすことなくプログラム実行の正確さを検証することです。
VM (VirtualMachine、仮想マシン) は、物理コンピューターと同様に、プログラムを実行できるソフトウェアでシミュレートされたコンピューター システムです。 VM は通常、独立したオペレーティング システム環境の作成、ソフトウェアのテストと開発の実施などに使用されます。 VM または VM 抽象化は、ほとんどの場合、CPU 抽象化として理解され、設計と実行を簡素化するために、コンピューターの処理装置 (CPU) の複雑な操作とアーキテクチャを一連のシンプルで操作可能な命令セット アーキテクチャ (ISA) に抽象化することを指します。コンピュータープログラムのこと。この抽象化では、コンピュータ プログラムは、実際の CPU の動作動作をシミュレートする仮想マシン (VM) を通じて実行できます (Henderson、2007)。
ゼロ知識証明 (ZKP) は通常、CPU 抽象化を介した実行を必要とします。この設定では、証明者はプライベート入力でパブリック プログラムを実行し、計算された入力や中間状態を明らかにすることなく、プログラムが正しく実行され、アサートされた出力が生成されたことを検証者に証明したいと考えています。 CPU 抽象化は、プルーフを生成しながら制御された仮想環境でプログラムを実行できるため、この場合に非常に役立ちます (Arun、Setty Thaler、2024)。
例: 証明者は、パスワードを明らかにせずに、ハッシュされたパスワードを持っていることを証明したいと考えています。
パスワード→ハッシュ関数→ハッシュ値
プライベート→パブリック
一般に、証明者は、ハッシュ操作を実行するコードを実行して、証明が正しいことを誰でも検証できる「証明」を生成できる必要があります。つまり、証明者は、特定のハッシュ値の有効な以前のイメージを実際に持っています。 。
これらの VM の抽象証明を生成するシステムは、多くの場合「zkVM」と呼ばれます。 ZKVM は必ずしも知識をまったく提供しないわけではないため、この名前は実際には誤解を招きます。つまり、ZKVM はゼロ知識証明に焦点を当てた仮想マシンであり、従来の VM の機能を拡張し、ゼロ知識回路の開発閾値を普遍的に下げることができ、あらゆるアプリケーションや計算の証明を瞬時に生成できます (Zhang et al. ., 2023)。
2. 既存のZKVMの分類
設計目標に応じて、主に次の 3 つのカテゴリに分類されます。
1. メインストリーム ZKVM
これらの ZKVM は、既存の標準命令セット アーキテクチャ (ISA) とコンパイラ ツールチェーンを利用しており、幅広いアプリケーションと開発環境に適しています。
RISCZero (2021): 豊富なコンパイラ エコシステムを備えた RISC-V 命令セットを使用します (Bögli、2024)。
PolygonMiden (2021): 標準 ISA に基づいており、簡単かつ効率的な開発を可能にします (Chawla、2021)。
zkWASM (2022): zkWASM は、広く採用されている標準命令セットである WebAssembly (WASM) 命令セットのゼロ知識証明を実装します (DelphinusLab、2022)。
2. EVM と同等の ZKVM
これらの ZKVM は、イーサリアム仮想マシン (EVM) と互換性を持つように特別に設計されており、イーサリアムのバイトコードを直接実行できます。
zkEVM プロジェクト: zkSync (MatterLabs、2020) や Polygon Hermez (Polygon Labs、2021) など、いくつかのプロジェクトが EVM とのバイトコード レベルの互換性の実現に取り組んでいます。
3. ゼロ知識最適化 (ゼロ知識フレンドリー) ZKVM
これらの ZKVM は、ゼロ知識証明の効率とパフォーマンスを最適化し、特定のアプリケーション シナリオ向けに設計されています。
Cairo-VM (2018): シンプルで SNARK 証明と互換性があり、その命令セットは算術に適したものになるように特別に設計されており、加算や乗算などの基本的な算術演算をゼロ知識回路 (StarkWare、 2018)。
Valida (2023): 最適化アルゴリズムなどにより特定のアプリケーション向けに最適化されており、プルーフの生成に必要なコンピューティング リソースと時間が削減され、軽量設計によりさまざまなハードウェアおよびソフトウェア環境に適しています (LitaFoundation、2023)。
TinyRAM (2013): 標準ツール チェーンに依存しません。簡素化され最適化された設計のため、通常は LLVM または GCC ツール チェーンをサポートせず、小規模なカスタマイズされたソフトウェア コンポーネントにのみ使用できます (Ben-Sasson et al. 、2013)。
現在の一般的な見解は、より単純な VM をステップあたりのゲート数が少ない回路に変換できるというものです。これは、TinyRAM や Cairo-VM など、特にシンプルで明らかに SNARK フレンドリーな VM の設計で最も顕著です。ただし、単純な VM 上で現実世界の CPU のプリミティブ操作を実装するには多くのプリミティブ命令が必要となるため、追加のオーバーヘッドが必要になります (Arun、Setty Thaler、2024)。
3. フロントエンドとバックエンドのパラダイム
プログラミングの観点から見ると、ZKP システムは通常、フロントエンドとバックエンドの 2 つの部分に分けることができます。 ZKP システムのフロントエンド部分は、主に低級言語を使用して高級言語を表現します。たとえば、R1 CS 回路制約構築計算など、一般的な計算問題は低級回路言語を使用して表現できます。 . (たとえば、circom は R 1 CS を使用します。そのフロントエンド回路を説明します)。 ZKP システムのバックエンド部分は、主にフロントエンドで低レベル言語で記述された回路を構築し、それらを変換して証明を生成し、正確性を検証します。たとえば、一般的に使用されるバックエンド システム プロトコルには Groth 16 が含まれます。および Plonk (Arun、Setty Thaler、2024; Zhang et al.、2023)。
通常、回路は計算プログラムの各ステップを (信頼できない「推奨入力」の助けを借りて) 段階的に「実行」します。 CPU でのステップの実行には、概念的に 2 つのタスクが含まれます: (1) ステップが実行する基本命令の識別、および (2) 命令の実行と CPU 状態の適切な更新。既存のフロントエンドは、慎重に設計されたゲートまたは制約を通じてこれらのタスクを実装します。これには時間がかかり、エラーが発生しやすく、回路が必要以上に大きくなってしまいます (Arun, Setty, Thaler, 2024; Zhang et al., 2023)。
4. ZKVMパラダイムの長所と短所
アドバンテージ:
既存の ISA の活用: たとえば、RISC-V および EVM 命令セットは、インフラストラクチャを最初から構築することなく、既存のコンパイラ インフラストラクチャとツール チェーンを活用できます。既存のコンパイラを直接呼び出して、高級言語で書かれたウィットネス チェッカーを ISA アセンブリ コードに変換し、以前の監査やその他の検証作業の恩恵を受けることができます。
単一回線は複数のプログラムをサポートします。zkVM では、特定の制限時間に達するまで 1 つの回線ですべてのプログラムを実行できますが、他のアプローチではプログラムごとにフロントエンドを再実行する必要がある場合があります。
繰り返し構造を持つ回路: フロントエンドは繰り返し構造を持つ回路を出力し、これらの回路のバックエンドはより高速に処理できます (Arun, Setty Thaler, 2024; Zhang et al., 2023)。
欠点:
汎用性によるオーバーヘッド: 考えられるすべての CPU 命令シーケンスをサポートするために、zkVM 回路はその汎用性に対して代償を支払う必要があり、その結果、回路サイズと認証コストが増加します。
高コストの操作: 暗号化操作などの特定の重要な操作は、zkVM での実装に非常にコストがかかります。たとえば、ECDSA 署名の検証には、実際の CPU では 100 マイクロ秒かかり、RISC-V 命令では数百万の命令がかかります。したがって、zkVM プロジェクトには、特定の関数を計算するための手作業で最適化された回路とルックアップ テーブルが含まれています。
高い証明コスト: 非常に単純な ISA の場合でも、既存の zkVM の証明コストは依然として高額です。たとえば、Cairo-VM の証明者は、各ステップで 51 個のドメイン要素を暗号的に送信する必要があります。これは、基本的な命令を実行するには、実際の CPU で数百万の命令を実行する必要がある可能性があり、複雑なアプリケーションへの適用性が制限されることを意味します (Arun、Setty、Thaler) 、2024;Zhangら、2023)。
6. ゼロ知識イーサリアム仮想マシンの概要と開発
1. 背景
ZKEVM (Zero-Knowledge Ethereum Virtual Machine) と ZKVM (Zero-Knowledge Virtual Machine) は、どちらも Zero-Knowledge Proof (ZKP) テクノロジーを適用した仮想マシンです。イーサリアム仮想マシン (EVM) はイーサリアム ブロックチェーン システムの一部であり、スマート コントラクトの展開と実行を処理します。 EVM はスタックベースのアーキテクチャを備えており、特定の命令セット (ロギング操作、実行、メモリとストレージへのアクセス、制御フロー、ロギング、呼び出しなど) の計算とストレージを提供するコンピューティング エンジンです。 EVM の役割は、スマート コントラクトの操作を適用した後にイーサリアムの状態を更新することです。 ZKEVM はイーサリアム用に特別に設計されており、主にトランザクションのプライバシーを保護しながらスマート コントラクトの実行の正確さを検証するために使用されます。 ZKEVM は実行のために EVM 命令セットを ZK システムに変換し、各命令にはステータス証明や実行正当性証明を含む証明が必要です (Čapko, Vukmirović Nedić, 2019)。
ZKEVM の現在の主流ソリューションには、STARKWARE、ZkSync、Polygen-Hermez、Scroll などが含まれます。以下はこれらのプロジェクトの紹介です (Čapko、Vukmirović Nedić、2019):
STARKWARE: Ben-Sasson ら (2018 年) によって設立され、ブロックチェーンのプライバシーとスケーラビリティを向上させるために STARK ゼロ知識証明テクノロジーを使用することに専念しています。
zkSync: Matter Labs は Alex Gluchowski (2020) らによって設立され、zk-rollups に基づいた Ethereum Layer 2 拡張ソリューションを提案しました。
Polygon-Hermez: Hermez はもともと独立したプロジェクトで、2020 年にリリースされました。 2021 年 8 月に Polygon に買収された後、PolygonHermez となり、高スループットの zk-rollups ソリューションに注力しました。
Scroll: Zhang と Peng (2021) によって設立され、より高いトランザクション スループットとより低いガス料金を実現し、それによってイーサリアムの全体的なパフォーマンスとユーザー エクスペリエンスが向上します。
一般に、EVM との互換性レベルに応じて分類できます (Čapko、Vukmirović Nedić、2019)。
EVM-EVM 互換性 スマート コントラクト機能レベルの互換性(STARKWARE、zkSync など)
EVM同等、EVM命令レベル互換(同等)、polygen-Hrmez、スクロールなど
知識ゼロに基づいてイーサリアム システムを改善するソリューションを図 1 に示します。
図1 知識ゼロからのイーサリアムシステム改善ソリューション
2. ZKEVM の仕組み
ノード プログラムの処理: ノード プログラムは、実行ログ、ブロック ヘッダー、トランザクション、コントラクト バイトコード、メルケル証明などを処理および検証し、これらのデータを処理のために zkEVM に送信します。
ZK 証明の生成: zkEVM は、回路を使用して実行結果の ZK 証明 (状態および実行の正当性証明) を生成します。これらの回路機能は、主にテーブルと特殊な回路を使用して実装されます。
集約証明: 集約回路を使用して、再帰的証明を使用するなど、大きな証明から小さな証明を生成します。
L1 コントラクトに送信: 集約されたプルーフは、実行のためのトランザクションの形式で L1 コントラクトに送信されます (Čapko、Vukmirović Nedić、2019)。
3. ZKEVMの実装プロセス
データの取得: トランザクション、ブロック ヘッダー、コントラクトなどを含むデータを Ethereum ブロックチェーン システムから取得します。
データの処理: 実行ログ、ブロック ヘッダー、トランザクション、コントラクト バイトコード、マークル証明などを処理および検証します。
プルーフの生成: 回路を使用して ZK プルーフを生成し、ステータスの更新と各命令の実行の正確さを確認します。
再帰的証明: 生成された大きな証明をより小さな集合証明に圧縮します。
証明を提出する: トランザクション検証を完了するには、集約された証明を L1 コントラクトに提出します (Čapko、Vukmirović、Nedić、2019)。
4. ZKEVMの特徴
トランザクション処理機能の向上: L2 で ZKEVM を介してトランザクションを実行し、L1 の負荷を軽減します。
プライバシー保護: スマート コントラクトの実行を検証する際にトランザクションのプライバシーを保護します。
効率的な検証: ゼロ知識証明テクノロジーを使用して、効率的な状態と実行の正確性の検証を実現します (Čapko、Vukmirović Nedić、2019)。
7. ゼロ知識レイヤー2ネットワークソリューションの概要と開発
1. 背景
イーサリアム ブロックチェーンは、現在最も広く採用されているブロックチェーン エコシステムの 1 つです。ただし、イーサリアムは、使用コストが高くなるという深刻なスケーラビリティの問題に直面しています。ゼロ知識 2 層ネットワーク ソリューション (ZK Rollup) は、ゼロ知識証明 (ZKP) に基づいており、OptimisticRollups トランザクション最終確認の欠点を克服したイーサリアム拡張用の 2 層ネットワーク (レイヤー 2) ソリューションです。時間が長すぎる(Ganguly、2023)。
2. ZKロールアップの仕組み
ZK ロールアップにより、単一トランザクション内でのスケーラビリティが可能になります。 L1 のスマート コントラクトはすべての転送の処理と検証を担当し、理想的には 1 つのトランザクションのみを生成します。これにより、トランザクションをオフチェーンで実行し、最終的に署名されたトランザクションをオンチェーンに戻すことで、イーサリアム上の計算リソースの使用量が削減されます。このステップは ValidityProof と呼ばれます。場合によっては、検証が 1 回のプルーフ内で完了しない可能性があり、データの可用性を確保するためにロールアップ上のデータをイーサリアム メイン チェーンに公開するには追加のトランザクションが必要になります (Ganguly、2023)。
スペースの面では、ZK Rollup を使用すると、通常のスマート コントラクトのようにデータを保存する必要がないため、効率が向上します。各トランザクションには検証証明のみが必要であり、これによりデータの最小化がさらに確認され、トランザクションがより安く、より速くなります(Ganguly、2023)。
ZK ロールアップの名前には「ZK」(ゼロ知識)という用語が含まれていますが、主にプライバシー保護に焦点を当てるのではなく、ゼロ知識証明のシンプルさを利用して、ブロックチェーントランザクションの処理効率を向上させます(Ganguly、2023)。
3. ZKRollupの欠点と最適化
イーサリアムのスケーラビリティのためのレイヤー 2 ソリューションとして、ZK ロールアップ (ゼロ知識ロールアップ) はトランザクション処理効率の向上に優れていますが、主な問題は計算コストが非常に高いことです。ただし、一部の最適化ソリューションを使用すると、ZK ロールアップのパフォーマンスと実現可能性を大幅に向上させることができます (Čapko、Vukmirović、Nedić、2019)。
1. 暗号アルゴリズムの計算を最適化する
暗号アルゴリズムの計算プロセスを最適化すると、ZK ロールアップの効率が向上し、計算時間とリソース消費を削減できます。たとえば、Plonky 2 は PolygonZero (旧 MIR) によって提案され、分散型 ZK Rollup ソリューションです。 Plonky 2 は、他のイーサリアム互換代替手段よりも 100 倍高速な再帰的 SNARK であり、STARK と SNARK の最良の機能を組み合わせています。
Plonk と FRI: 信頼セットアップなしで高速証明を提供します。
再帰のサポート: 再帰的な証明を通じて効率を向上させます。
低い検証コスト: 64 ビット再帰 FRI と Plonk の組み合わせによって効率的な検証が実現されます。
2. オプティミスティックと ZK ロールアップを組み合わせる
たとえば、PolygonNightfall は、Optimistic ロールアップと ZK ロールアップの機能を組み合わせたハイブリッド ロールアップで、トランザクションのプライバシーを向上させ、送金手数料を (最大 86% 削減) 削減することを目的としています。
3. 専用の ZK EVM を開発する
専用の ZK EVM は、ZK ロールアップ アルゴリズムを改善するように設計されており、ゼロ知識証明プロセスを最適化できます。以下にいくつかの具体的なオプションを示します。
AppliedZKP: Ethereum Foundation が資金提供するオープンソース プロジェクトで、halo 2、KZG、Barreto-Naehrig (BN-254) 楕円曲線ペアリングなどの暗号アルゴリズムを使用して、Ethereum EVM ネイティブ オペコードの ZK を実装します。
zkSync: Matter Labs によって開発された zkEVM は、コントラクト コードを YUL (Solidity コンパイラーの中間言語) にコンパイルし、それを Plonk の拡張バージョンである UltraPlonk を使用してサポートされるカスタム バイトコードにコンパイルするカスタム EVM です。
Polygon Hermez: EVM 互換の分散ロールアップをカスタマイズし、コントラクト コードをサポートされているマイクロ命令セットにコンパイルし、Plonk、KZG、および Groth 16 プルーフ システムを使用します。
Sin 7 Y zkEVM: EVM ネイティブ オペコードの ZK を実装し、halo 2、KZG、および RecursivePlonk を使用して特殊なオペコードを最適化します。
Polygon Miden: STARK をベースにした一般的なゼロ知識仮想マシン。
4. ハードウェアの最適化
ハードウェアの最適化により、ZK ロールアップのパフォーマンスが大幅に向上します。以下にいくつかのハードウェア最適化ソリューションを示します。
DIZK (DIstributedZero Knowledge): zkSNARK 証明の実行をコンピューティング クラスター全体に分散することによって最適化されます。ハードウェア アーキテクチャは 2 つのサブシステムで構成されます。1 つは大サイズの数論的変換 (NTT) を使用した多項式計算 (POLY) 用で、もう 1 つは楕円曲線 (EC) でマルチスカラー乗算 (MSM) を実行するためです。 PipeMSM は、FPGA 上に実装するためのパイプライン設計 MSM アルゴリズムです。
FPGA ベースの ZKP ハードウェア アクセラレータ設計: 計算オーバーヘッドを削減するために、複数の FFT (高速フーリエ変換) ユニットと FFT 演算の分解、複数の MAC (乗算および累算回路) ユニット、および複数の ECP (楕円曲線処理) ユニットが含まれます。 FPGA ベースの zk-SNARK 設計により、証明時間が約 10 分の 1 に短縮されます。
Bulletproof プロトコルのハードウェア アクセラレーション: CPU-GPU コラボレーション フレームワークと GPU 上の並列 Bulletproof による実装 (Čapko、Vukmirović、Nedić、2019)。
8. ゼロ知識証明の今後の発展方向
1. コンピューティング環境の整備を加速する
ゼロ知識証明プロトコル (ZKSNARK や ZKSTARK など) は通常、実行プロセス中に多数の複雑な数学的演算を必要とし、これらの演算は非常に短時間で完了する必要があり、コンピューティング リソース (CPU や ZKSTARK など) に非常に高い負荷がかかります。 GPU) を使用すると、計算が複雑になり、計算時間が長くなります。さらに、ゼロ知識証明の生成と検証には、大量のデータに頻繁にアクセスする必要があり、メモリ帯域幅に対する要求が高くなります。最新のコンピュータ システムではメモリ帯域幅が限られているため、このような高頻度のデータ アクセス要件を効率的にサポートできず、パフォーマンスのボトルネックが発生します。最終的に、特に大量の証明計算を継続的に実行する必要があるブロックチェーンや分散型アプリケーションでは、高い計算負荷は高いエネルギー消費につながります。したがって、ソフトウェア最適化ソリューションはこれらの問題を部分的に軽減できますが、汎用コンピューティング ハードウェアの物理的制限により、ハードウェア アクセラレーションの高効率と低エネルギー消費レベルを達成することは困難です。ハイブリッド ソリューションは、柔軟性を維持しながら、高いパフォーマンスの向上を達成できます (Zhang et al., 2021)。
ZK-ASIC (特定用途向け集積回路)
2020 年には、GPU や FPGA などのハードウェアを使用してゼロ知識証明 (ZKP) の生成および検証プロセスを加速および最適化し、効率を向上させることを目的とした複数のプロジェクトが誕生しました (Filecoin、2024 年; Coda、2024 年; GPU Groove 16 Prover、2024 年) ;ロイら、2019;JaveedWang、2017)。
2021: Zhang らは、ピッペンジャー アルゴリズムを使用してマルチスカラー乗算 (MSM) を最適化し、高速フーリエ変換 (FFT) を「巻き戻す」ことでデータ送信遅延を削減する、パイプライン アーキテクチャに基づくゼロ知識証明アクセラレーション ソリューションを提案しました。 (Zhang 他、2021)。
ZKCoprocessor (コプロセッサ)
Axiom (2022) は、ZKCoprocessor、つまり ZK コプロセッサの概念を提案しました。コプロセッサは、CPU を強化し、浮動小数点演算、暗号演算、グラフィックス処理などの特殊な演算を提供する別個のチップです。 CPU がより強力になったため、この用語は一般的に使用されなくなりましたが、特に機械学習のコンテキストでは、GPU は依然として CPU のコプロセッサーと見なすことができます。
ZK コプロセッサという用語は、物理コプロセッサ チップの類似性をブロックチェーン コンピューティングに拡張し、スマート コントラクト開発者が既存のオンチェーン データのオフチェーン計算をステートレスに証明できるようにします。スマート コントラクト開発者が直面する最大のボトルネックの 1 つは、依然としてオンチェーン コンピューティングのコストが高いことです。すべての操作でガスがカウントされるため、複雑なアプリケーション ロジックのコストはすぐに現実的ではなくなります。 ZK コプロセッサは、オンチェーン アプリケーションに新しい設計パターンを導入し、計算をブロックチェーン仮想マシンで完了する必要があるという制限を取り除きます。これにより、アプリケーションはより多くのデータにアクセスし、以前よりも大規模に動作できるようになります (Axiom、2022)。
2. ZKMLの提案と開発
ZKMLの概念
ゼロ知識機械学習 (ZKML) は、ゼロ知識証明 (ZKP) テクノロジーを機械学習に適用する新興分野です。 ZKML の中心となるアイデアは、データやモデルの詳細を明らかにすることなく、機械学習の計算結果を検証できるようにすることです。これにより、データのプライバシーが保護されるだけでなく、計算結果の信頼性と正確性も保証されます (Zhang et al., 2020)。
ZKMLの開発
2020 年、Zhang 学者らは 2020 CCS カンファレンスで初めて ZKML の概念を体系的に提案し、データやモデルの詳細を漏らすことなく決定木予測のゼロ知識証明を実行する方法を実証しました。これは ZKML の理論的基盤を築きます。
2022 年に、Wang と Hoang は ZKML をさらに研究して実装し、効率的なゼロ知識機械学習推論パイプラインを提案し、現実世界のアプリケーションで ZKML を実装する方法を示しました。研究によると、ZKP テクノロジーは複雑ですが、合理的な最適化を通じて、データのプライバシーと計算の正確性を確保しながら、許容可能なコンピューティング パフォーマンスを達成できることがわかっています。
3. ZKP拡張技術関連の開発
ZKThreadsの概念が提案されました
2021 年、StarkWare は ZKThreads の概念を提案しました。これは、ゼロ知識証明 (ZKP) とシャーディング テクノロジーを組み合わせて、断片化の問題を引き起こすことなく分散型アプリケーション (DApps) にスケーラビリティとカスタマイズを提供することを目的としています。 ZKThreads は、基本層で直接フォールバックすることであらゆるステップでのリアルタイム性を確保することで、セキュリティと構成可能性を向上させます。
ZKThreads は、シングルチェーン構造、ロールアップ流動性問題、プロトダンクシャーディングの 3 つの側面で最適化されています。
シングルチェーン ソリューション: 従来のシングルチェーン アーキテクチャでは、すべてのトランザクションが 1 つのチェーンで処理されるため、システムが過負荷になり、スケーラビリティが低下します。 ZKThreads は、データと計算タスクを複数のシャードに分散することで、処理効率を大幅に向上させます。
ZK ロールアップ ソリューション: ZK ロールアップはトランザクション処理速度を大幅に向上させ、コストを削減しますが、多くの場合独立して動作するため、流動性の断片化と相互運用性の問題が発生します。 ZKThreads は、標準化された開発環境を提供し、異なるシャード間の相互運用性をサポートし、流動性の断片化の問題を解決します。
Proto-Danksharding テクノロジー: これは、データ ブロックを一時的に保存することで zk-rollup のトランザクション コストを削減する、イーサリアムの内部改良スキームです。 ZKThreads はこれに基づいてさらに改良され、より効率的なシャーディング アーキテクチャを通じて一時データ ストレージへの依存を減らし、システム全体の効率とセキュリティを向上させます (StarkWare、2021)。
ZKシャーディングの概念が提案されました
その後、2022年にNilFoundationはZKシャーディングのコンセプトを提案し、ゼロ知識証明(ZKP)とシャーディング技術を組み合わせることでイーサリアムのスケーラビリティとより高速なトランザクション速度を実現することを目指しました。このテクノロジーは、イーサリアム ネットワークを複数の部分に分割し、より安価で効率的な方法でトランザクションを処理することを目的としています。このテクノロジーには、ゼロ知識テクノロジーを使用して証明を生成し、メインチェーンに送信される前に異なるシャード間のトランザクションが有効であることを確認する zkSharding が含まれています。この方法により、トランザクション速度が向上するだけでなく、チェーン上のデータの断片化が軽減され、経済的な安全性と流動性が確保されます。
4. ZKP相互運用性の開発
ZK 州チャネル
2021 年に、ゼロ知識証明 (ZKP) とステート チャネル テクノロジを組み合わせた ZK StateChannels の概念がバーチャル ラボによって提案されました。これは、ゼロ知識証明を使用してプライバシーとセキュリティを確保しながら、ステート チャネルを介して効率的なオフチェーン トランザクションを実現することを目的としています。取引のセキュリティ。
元のソリューションは ZK ステート チャネルに置き換えられました
1. 従来の状態チャネル (StateChannel):
オリジナルのソリューション: 従来の状態チャネルでは、資金をロックすることで 2 人のユーザーがスマート コントラクトでピアツーピア (P2P) トランザクションを実行できます。資金はロックされているため、ガス料金や遅延を伴うことなく、ユーザー間の署名交換を直接行うことができます。ただし、この方法には事前定義されたアドレスが必要であり、チャネルの開閉にはオンチェーン操作が必要なため、柔軟性が制限されます。
代替案: ZK StateChannel は無制限の参加者をサポートし、事前定義されたユーザー アドレスを必要とせずに動的な出入りを可能にします。さらに、ZK StateChannel はゼロ知識証明を通じて、即時のクロスチェーン アクセスと自己検証された証明を提供し、従来のステート チャネルの柔軟性とスケーラビリティの問題を解決します。
2.複数のチェーンのサポート:
元のソリューション: 従来のステート チャネルは通常、単一チェーン上のトランザクションのみをサポートし、クロスチェーン操作を実装できないため、ユーザー操作の範囲が制限されます。
代替案: ZK StateChannels は、ゼロ知識証明テクノロジーを使用して、中間ブリッジを必要とせずに即時のクロスチェーン トランザクションと資産フローを実現し、マルチチェーンの相互運用性を大幅に向上させます。
3. 事前定義されたアドレス制限:
元の解決策: 従来の状態チャネルでは、チャネルの作成時にトランザクション参加者のアドレスを事前に定義する必要があり、新しい参加者が参加または脱退する場合、チャネルを閉じて再度開く必要があり、運用の複雑さとコストが増加します。
代替案: ZK StateChannels を使用すると、新しい参加者はいつでも現在のユーザーの操作に影響を与えることなく既存のチャンネルに参加でき、システムの柔軟性とユーザー エクスペリエンスが大幅に向上します。
4.ZK オムニチェーン相互運用性プロトコル
2022 年に、ZKOmnichain Interoperability Protocol が Way Network によって提案され、ゼロ知識証明に基づいてクロスチェーン資産とデータの相互運用性を実現しました。このプロトコルは、zkRelayer、ZK Verifier、IPFS、Sender、および Receiver を使用してフルチェーン通信とデータ送信を実装します。
オムニチェーン プロジェクトはクロスチェーンの相互運用性に焦点を当てており、異なるブロックチェーンを接続するための低遅延で安全なネットワークを提供することを目指しています。標準化されたクロスチェーントランザクションプロトコルを導入することで、ブロックチェーン間での資産とデータのシームレスな転送が可能になります。この方法により、トランザクションの効率が向上するだけでなく、クロスチェーン操作のセキュリティも確保されます。
Way Network は、特にプライバシーとセキュリティを強化するためにゼロ知識証明テクノロジーを使用する点で、オムニチェーンの概念を具体的に実装したものと見ることができます。 Way Network の技術アーキテクチャにより、分散化と効率を維持しながらチェーン間のシームレスな相互運用性を実現できます。
要約すると、オムニチェーンはクロスチェーンの相互運用性のための全体的なフレームワークを提供し、一方、ウェイネットワークはゼロ知識証明技術を通じてこのフレームワークに強力なプライバシー保護とセキュリティを提供します。
9. 結論
この記事では、ゼロ知識証明 (ZKP) テクノロジーとその最新の開発とブロックチェーン分野での応用に関する包括的な文献レビューを提供します。私たちは、ブロックチェーンのコンテキストで ZKP を系統的にレビューし、ブロックチェーンと検証可能な計算に適した最先端のゼロ知識議論スキームを調査し、匿名かつ機密のトランザクションとプライバシー スマート コントラクトにおける ZKP の応用を調査します。この記事では、これらの学術的な査読済みのソリューションと方法の長所と短所をリストし、これらのソリューションの実際的な評価と比較のための参考資料を提供し、特定のユースケースに適切なソリューションを選択する際に開発者が持つ必要があるスキルと知識に焦点を当てます。
さらに、この記事では、ハードウェア アクセラレーション、ブロックチェーンのスケーラビリティ、相互運用性、プライバシー保護の観点から、ゼロ知識証明の将来の開発の方向性についても展望します。この記事では、これらの最新テクノロジーと開発傾向の詳細な分析を通じて、ゼロ知識証明テクノロジーの理解と適用に関する包括的な視点を提供し、ブロックチェーン システムの効率とセキュリティの向上におけるその大きな可能性を実証します。同時に、この研究は、ZK プロジェクト投資に関するその後の研究のための強固な基盤を築きました。