前文
副題
現在のビットコイン ネットワークやイーサリアム ネットワークでは、ネットワーク全体でパッケージ化および確認を待っているトランザクションが多数存在します。このようなトランザクションの確認待ちの仕組みはユーザーエクスペリエンスに大きな影響を与えており、トランザクションの混雑は業界全体で解決すべき喫緊の課題となっています。さらに、ブロックチェーン自体のオープン性と透明性により、アドレスがマークされると、私たちのすべてのトランザクションにはプライバシーがまったくなくなります。 DeFi の発展により、この暗い仮想通貨の森において、プライバシー保護の必要性が今ほど緊急になっているときはありません。 DeFiの構成要素が崩壊寸前だったとき、明確に見える清算ラインとチェーン上の定点清算が、止まらない価格下落の重要な原動力となった。
目次:
オタクと開発者は、ネットワークの同時処理能力とプライバシーという 2 つの主要な問題について数年にわたって調査してきました。ゼロ知識証明技術は、独自の特性を備えており、ブロックチェーン技術に対する透明性、分散化、不変性と同じくらい重要であり、拡張性とプライバシーの問題にそれ自体で解決策をもたらします。この記事では、ゼロ知識証明の定義と実装から始まり、市場で人気のある多くのプロジェクトを例に挙げ、拡張とプライバシー保護の 2 つの分野での探索について説明し、投資の観点からゼロ知識証明への投資機会を検討します。機関。
目次:
ゼロ知識証明とプライバシー
ゼロ知識の証明とスケーリング
ゼロ知識証明とプライバシー
ゼロ知識証明の投資方向性
ゼロ知識証明の投資方向性
副題"ゼロ知識証明の定義"人は生活の中で見聞きしたものを信じる傾向がありますが、貴重な情報や知識については、その所有者は核心的な秘密を明かさずに自分が正しいと他人に納得させようとします。このようなニーズを解決するために登場したのがゼロ知識証明です。より学術的な表現に変えると、ゼロ知識証明とは、両者が
知識の所有者が証明者でもあり、相手が検証者である証明と検証。
Figure 1: Proof without ZKP and with ZKP
スケッチを使用して、ゼロ知識証明が何を達成できるかを直感的に説明します。
画像の説明この図から、ゼロ知識証明の 3 つの特性を抽出できます。"完全性(完全性)":正直な証明パーティー、そうだね
知識は真実ですこの主張の証明は検証者を確実に納得させるでしょう。
合理性(音): 証明者は、「知識が偽である」ことを「知識が真である」と証明することはできません。
: 証明全体を通して、検証者は、「知識は真実である」という主張を除いて、知識に関連する他の秘密を取得しません。
これら 3 つの性質を平易な言葉で表現すると、真であるものは偽であることはできず、偽であるものは真であることはできず、未知のものは真であり、未知のものは未知のままである。 3 番目のプロパティは、より一般的な言い方です。私は「何が真実であるか」と言いましたが、あなたは「何が真実であるか」を検証しましたが、何が真実であるかは知りません。
画像の説明
図 2: ゼロ知識証明の 3 つの特性と 2 つの特徴
最初の 2 つの特性は 3 番目の特性よりも理解しやすく、注意を払うのが簡単ですが、3 番目の特性は非常に混乱しやすく、無視されやすいです。
より具体的な例で話しましょう 例えば、私たちは皆、サトシ・ナカモトがこの世に存在するに違いないと信じています、そうでなければビットコインは決して出現しなかったでしょう。しかし、何年も経つと、サトシ・ナカモトがこの世に生きているかどうかはわかりません。世界。サトシ・ナカモトがまだ生きていて、彼がまだ生きていることを世界に伝えたいとしたら。そうすれば、サトシ・ナカモトはゼロ知識証明を使って「私はまだ生きている」ということを世界に伝えることができます。この時点では、ゼロ知識証明の検証によれば、世界はこの情報を知っていますが、サトシ・ナカモトが知っているかどうかはわかりません。秘密鍵を使用したか、世界にログインしたかどうか、BitcoinTalk アカウントの自己認証など。別のシナリオは、サトシ・ナカモトがビットコインを発明したとき、ジェネシス・アドレスが最初のビットコインを所有していたというものです。このアドレスが対応する秘密鍵を活動に使用すると、サトシ・ナカモトがまだ生きているという情報も伝えることができます。しかし、これはもはやゼロ知識を満足させません。なぜなら、秘密鍵の活動のおかげでサトシ・ナカモトがまだ生きていることを世界が知っているからです。
簡単に言うと、ゼロ知識証明は知識のプライバシーを保証するだけでなく、知識の正当性も保証します。これら 2 つの点は、暗号化された世界におけるゼロ知識証明の 2 つの主要なアプリケーション シナリオ (プライバシーと拡張) を直接決定します。もちろん、プライバシーのシナリオには、プライベート支払い、匿名投票、プライベート パブリック チェーンなど、さらに細分化されたアプリケーションが存在するでしょう。これらは一般に、資産支払いプライバシーや論理的一般プライバシーとしても理解できます。拡張シナリオに関しては、ゼロ知識証明の完全性と合理性、およびその他の技術的手段が使用されます。
副題ゼロ知識証明の実装
ゼロ知識証明は、多くの数学と暗号学の知識を使用して発明され、実装されます。
証明全体の実装において、対話的であるかどうかに応じて、対話的証明と非対話的証明に分けることができます。インタラクティブ証明は、証明者と検証者が特定の順序とルールに従って交互に実行し、ランダムな確率で証明を完了することを必要とする証明プロセスです。非対話型証明とは、証明者が証明ルールまたは証明プロセスに従ってすべての証明材料を一度に計算して提出し、検証者がこれらの証明材料を検証に直接使用できることを意味します。極端に理解すると、非インタラクティブ証明は、インタラクティブ証明の複数のステップを 1 つのインタラクションに圧縮することです。さらに、非対話型証明は、実装全体を証明プロセスと検証プロセスに分割するものとみなすことができます。
以下では、2 つの異なるシナリオを使用して、インタラクティブな証明と非インタラクティブな証明の違いをシミュレートします。
シナリオ 1 を単純化して、サトシ・ナカモトが作成した秘密鍵が再びこの世に現れたと仮定し、今度はこの秘密鍵がまだアクティブであることを証明する必要があります。
インタラクティブな証明のプロセス:
1. 検証者は証明者にジェネシスの秘密鍵を叫び、あなたは特定のブロックの高さの後に「Hello World」という文を書きます。
2. Genesis 秘密キー認証者は、必要に応じて特定のブロック高を待ってから、ネットワーク全体にメッセージ「Hello World」を送信します。
3. 検証者は、必要に応じて特定のブロック高の後にジェネシス秘密鍵がメッセージ (Hello World) を残すかどうかをネットワーク内で検証します。
4. 手順 1、2、3 を繰り返します。一定の回数に達すると、秘密鍵は基本的に有効であると確率の観点から判断できます。
非対話型証明のプロセス:
1. 特定のデバイス/シミュレーター/チューリング マシンは、共有のランダムな文字列 xyz を生成し、この文字列を公開し、生成秘密鍵証明者が「xyz, Hello World」メッセージの形式でネットワーク全体に送信することを要求します。 。
2. ジェネシス秘密鍵証明者は、デバイス/シミュレータ/チューリング マシンのルールに従って、この文字列 xyz を使用し、独自の Hello World を追加して、ネットワーク全体にメッセージ「xyz、Hello World」を残します。
3. 検証者は文字列 xyz を保持し、生成秘密鍵のメッセージを見た後、秘密鍵がアクティブであると直接判断します。
Zhang San はガウス アルゴリズムを理解しているが、Li Si は理解していないと仮定して、シナリオ 2 を単純化します。
インタラクティブな証明のプロセス:
1. 李斯は張三に電話し、30秒以内に1+2+3+...+8887+8888を計算します。
2. 張三はガウス アルゴリズムを使用し、30 秒で結果を計算し、李斯に伝えました。
3. Li Si は最も単純な足し算を使用して、結果が正しいかどうかを確認します。
4. 手順 1、2、3 を繰り返します。回数が一定のレベルに達すると、Zhang San がガウス アルゴリズムを理解していると確率の観点から判断できます。
非対話型証明のプロセス:
1. デバイス/シミュレータ/チューリング マシンは、共有ランダム整数 x を生成します。
2. Zhang San は、ガウス アルゴリズムを使用して 1+2+3+...+(x-1)+x の結果を直接計算します。
3. Li Si は最も単純な足し算を使用して結果が正しいかどうかを確認し、結果が正しい場合、Zhang San はガウス アルゴリズムを理解しています。
上記の例を通じて、非対話型証明には対話型証明に比べて明らかな利点があることがわかります: 1. 特定の対話型検証者に依存せず、N 人の検証者に対する 1 人の証明者にとって優れたソリューションです。インタラクションの瞬間、いつでも行うことができます。ただし、非対話型証明にはさらに多くのシミュレーター/チューリング マシンがあることにも気づきました。非対話型証明用のシミュレータ/チューリング マシンの中核機能を実現するために、現在の技術的ソリューションにはおそらく次のものが含まれます。そしてランダムオラクル (ランダムオラクル)そして
共通参照文字列 (共通参照文字列、CRS)
、パブリック参照文字列が広く使用されているスキームです。私たちは、ランダムオラクルと公開参照文字列の間に本質的な違いはあまりないと考えています。公開参照文字列 CRS は、信頼できる第三者によって生成され、証明者および検証者と共有される必要があります。ここで、CRS の生成はランダムかつ信頼できるものであることが保証されなければならないため、CRS を生成するリンクはトラステッド セットアップ (Trusted Setup) とも呼ばれます。神をシミュレータ/チューリング マシンのメタファーとして使用できます。神は公開されています。証明者が知識を隠すのを助け、証明者が証明を完了するのを助けるだけでなく、証明者が知識を偽っているかどうかを識別し、検証者を支援することもできます。スムーズに確認するために。神は完璧ですが、結局は人間が神を創造する必要があり、神が創造される過程は、現実的な設定に相当します。また、イエスが西の神、如来が東の神であるように、神にも適用性があり、必ずしも普遍的ではない(設定の妥当性)。よく考えてみると、神様も頼りないのかもしれません。 (新規設定可能なセキュリティ)
QAP/QSP、ブール回路、演算回路については、非対話型証明プロセスの具体的なステップとして簡単かつ大まかに分類しています。世界中には数学的な証明問題が何万件もあり、証明を解く際には、対応する問題解決手順を記述する必要があります。同様に、異なる知識の下でのゼロ知識証明の場合も、回路を特別に記述する必要があります。もちろん、回路フレームワークを共有することで作成プロセスを簡素化できる、ある種の知識の証明もあります。異なる数学的証明問題に対しては、別個の解答ステップ (専用回路) を作成する必要があります。また、特定の種類の数学的証明問題に対しては、一般的な解答ステップ (一般回路) を作成することができます。さらに、質問のクラスに対しては、別のタイプのトピックについて、すでに書かれた回答ステップ/結論を直接引用することができます。 (回路の構成可能性/対話性)。
以前の数学的証明の質問に沿って回路の位置について話します。
画像の説明
図 3: 回路の類似図
その他の概念や用語としては、一次制約系 R1CS、NP 問題、多項式、多項式知識、因数分解、ファジィ計算、情報、知識、回路充足可能性、完全安全性、意味論的安全性、区別不能性、写像、準同型性、有限体などがあります。 、巡回群、フィアット・シャミア変換、ECDSA 署名...非常に多くの概念と数学的計算が含まれるため、数学と暗号学の専門家でない限り、この側面に多大な知力とエネルギーを費やすことはお勧めできません。私たちが知っておく必要がある重要な情報は、信頼できる設定の導入、信頼できる設定の適用可能性、および回路の作成の容易さに応じて、さまざまなゼロ知識証明実装スキームが存在するということだけです。
さまざまなゼロ知識証明の実装スキームでは、証明者と検証者の時間と空間のオーバーヘッド、およびセキュリティを使用できます。これらの 5 つの側面は、実装の長所と短所を決定するために使用されます。
証明者の時間オーバーヘッド: つまり、証明の速度を決定する計算時間。
検証者の時間オーバーヘッド、つまり検証時間。
証明者と検証者のスペースのオーバーヘッド: ストレージスペースの使用要件を決定するプルーフサイズの概念があり、これはしばしば単純性とも呼ばれます。
セキュリティ: 一部のプロトコルでは信頼できる設定を導入する必要があるため、対応する実装スキームはセキュリティの観点から新しい設定に依存します。また、信頼できる設定の適用範囲、つまり「永続的」と「ワンタイム」にも違いがあります。
さまざまな実装スキームは、最終的にゼロ知識証明プロトコルの 2 つの派閥、つまり zk-SNARK ゼロ知識簡潔な非対話型知識議論と zk-STARK ゼロ知識スケーラブルで透明な知識議論に分割されました。
zk-STARK: ゼロ知識のスケーラブルで透明な知識の議論。非インタラクティブな証明、信頼できる設定は不要、反量子コンピューティング、高い証明サイズのオーバーヘッド。 Starkware チームは、dYdX (最近 Cosmos への移行を発表)、Immutable、および Deversifi などの専用プロジェクトが使用されていることを発明し、提案しました。
ブロックチェーンの不可能な三角形を参照すると、ゼロ知識証明の実装は不完全な三角形であると言えますが、アプリケーション シナリオの要件により、すべての実装は完全性、合理性、ゼロ知識を同時に達成できます。 、それらはすべて一定のトレードオフがあります。あるいは、より明らかなのは、完全性と合理性に焦点を当てると、ゼロ知識の実装が弱まり、無視される可能性さえあります (レイヤー 2 の拡張)。また、ゼロ知識証明そのものには分散化の性質はなく、これに関する要件がある場合には分散化設計と組み合わせる必要があります(さらに困難です)。
ゼロ知識証明のための仮想マシン
Figure 4:Polygon Miden Deep Dive zkVM
さまざまな実装スキームについて説明した後、次にスキームの実装の鍵について説明します。今日のインターネット アプリケーションと製品は、高級プログラミング言語 (C++、Java、Rust、Solidity...) で実装されたプログラムです。仮想マシン/インタプリタはプログラム実行用のブラック ボックスであり、プログラムをマシンが認識および理解できる言語に変換し、マシンの代わりにプログラムを実行できます。ゼロ知識証明用の仮想マシンが存在しない場合、ゼロ知識証明技術を使用してプログラムを作成する場合、そのプログラムに対応する実装回路を作成する必要があります。このような回路の作成、テスト、および実稼働での使用は非常に難しく、非効率的です。この目的を達成するには、プログラムの生成、提出、検証のための証明を生成できるゼロ知識証明仮想マシン (zkVM) が必要であり、ゼロ知識技術の利用をより広範囲かつ効率的にすることができます。 zkVM が採用する高級プログラミング言語が C++、Java、または特別に設計された高級回路プログラミング言語 (Stareware の Cairo、zkSync の Zinc) のいずれであるかについては、zkVM の設計と機能によって異なります。 zkVM にはブロックチェーンを使用するための厳格な要件がないことを強調しておく必要があります。画像の説明。
zkVM では、プログラムを普遍的にサポートできることが非常に重要ですが、特定の種類のプログラムのみを仮想化できる場合、この zkVM の汎用性は大幅に低下します。一般性に加えて、
シンプルさ、再帰的な使いやすさ、構成可能性、使いやすさも考慮すべき指標です。
以下に、再帰的な可用性を説明するための主な例を示します。
1+2=3,3+3=6,6+4=10,...,4950+100=5050
質問: コンピューターが 2 桁の加算のみをサポートし、複数桁の加算と乗算をサポートしていない場合、1+2+3+...+99+100 を計算しますか?
非再帰的な解決策:
1+2+3+...+99+100
合計 99 回の加算が実行されます。 (ここではイテレーションの概念は紹介しません。興味のある方は自分で検索して学習してください)再帰バージョンでは次のことが解決されます。。
1 と (2+3+...+99+100) の合計を計算します (2+3+...+99+100) の計算については、この方法を再利用して解くことができます。 、(2+3 +...+99+100) は、2 と (3+...+99+100) などを計算するために変換され、2 桁の加算、つまり 99+ の制限を満たすようになります。 100 = 199、そして 199 を使用して
再帰を終了して結果を計算する
再帰的な可用性により、問題を解決するときに問題の解決策を直接再利用できます。これにより、実際的な問題の解決策が大幅に簡素化されます。
理想は美しいですが、現実は常に痩せていて、残酷ですらあります。イーサリアムが設立されたとき、ゼロ知識証明の導入は考慮されていなかったため、イーサリアムが直接ゼロ知識証明である場合、最大の問題は、イーサリアムプロトコルのコンポーネントのほとんどが大量のゼロ知識証明につながることです。 -知識証明計算。本質的にゼロ知識証明を利用しません。もちろん、イーサリアムプロトコル自体は、時間とテクノロジーの発展に応じて繰り返し更新される可能性があります。 PoW から PoS への画期的なコンセンサスメカニズムの変更と同様に、将来的にはイーサリアムのアップグレードを通じてイーサリアムプロトコルのゼロ知識証明が達成される可能性があります。
Figure 5: ETHEREUM VIRTUAL MACHINE (EVM)
Figure 6: ETHEREUM VIRTUAL MACHINE (EVM)
画像の説明
Figure 7: The different types of ZK-EVMs
Figure 8
Figure 9
画像の説明
Figure 10
画像の説明
参考文献:
zkVM と zkEVM の研究と実装は、異なる実装上の問題に直面していますが、順序の依存性がないため、同時に並行して進めることができます。特定の設計上の課題と解決策については、各プロジェクトの資料とドキュメントを参照してください。 zkVM/zkEVM の選択については、プロジェクトごとに独自の考慮事項が必要です。現時点では、ほとんどのプロジェクトが zkEVM の道を優先する傾向にあります。結局のところ、イーサリアムの拡張に必要なシナリオは常に存在しています。さらに、イーサリアム自体の最終的な ZK 目標は、完全な互換性を持つことです。このように考えると、zkEVMの研究開発に基づくプロジェクトは、将来的にさまざまなイーサリアムライトノードクライアントに進化する可能性があります。 zkVM に関しては、ブロックチェーンがそのパートナーでなければならないとしか言えませんが、その遠い夢はブロックチェーンに限定されません。
[2] https://mp.weixin.qq.com/s/808jMXvIUqB973aVHrAzGQ参考文献:
[1] https://github.com/sec-bit/learning-zkp/blob/master/zkp-resource-list.md ゼロ知識証明学習リソースの概要
Foresight Ventures: zk、zkVM、zkEVM の解釈とその将来
[3] https://www.odaily.news/post/5178462スクロール調査: zkEVM 設計の課題と解決策
[6] https://ethereum.org/en/developers/docs/evm/Ethereum Virtual Machine