
著者:Michael Zhu(A16z Crypto Research Engineer)、Sam Ragsdale(A16z Crypto Investment Engineer);
2024年4月9日、A16Z暗号化研究およびエンジニアリングチームは、最初のJoltの予備衝撃をリリースしました成し遂げるこれは新しいスナーク設計方法であり、既存のテクノロジーの2倍の速さであり、さらに改善されます。
計算の検証(一般にZKとして知られています)は非常に強力な技術であり、ブロックチェーンと非ブロックチェーンの両方に適しています。これにより、コンピューター(検証者検証担当者)が計算を別のより強力なコンピューター(Prover Proof)に委ね、計算が正しく実行されるかどうかを効果的に確認できます。
暗号化業界では、検証できるアプリケーション(特にスナーク)には次のものが含まれます。
レイヤー2(L2)ブロックチェーンは、スナークを使用して、状態変換の完全性を確保します。
-
Cross -Chain Bridgeは、スナークを使用して、別のチェーンへの鉱床/引き出しの移転を証明します。
-
「ZKアソシエイトプロセッサ」(Axiomによって定義)は、スマートコントラクトのスマートコントラクトに関するデータが高すぎる場合、Snarksを使用しています。
ほとんど探求されていない興味深い非ブロックチェーンの例がたくさんあります。たとえば、クラウドサービスプロバイダーは、サーバーに委託された特定の計算を正しく実行することをクライアントに証明できます。npmやcrates.ioなどのソフトウェアレジストリは、バイナリファイルが特定のソースコードからコンパイルされていることを証明でき、ソフトウェアサプライチェーン攻撃のリスクが低下します。または、人は「スーパーマリオブラザーズ」ツール補助レース(TAS)が世界記録を破ったことを証明することができます(Risc Zeroもこのアイデアを説明しました)。
これらのアプリケーションの多くには、複雑すぎて回路DSL(特定のドメイン言語)-Imagineに変換することはできない多くのプログラムがあります。たとえば、Circom Languageを使用してコンパイラまたはNESシミュレーター全体を書き換えます。ただし、プログラムがZKVMによってサポートされている命令セットにまとめた場合、手書き回路やDSLで変換する必要はありません。プログラマーは、ZKVMが残りの作業を処理するためにプログラムを作成することを選択した高度なプログラミング言語を使用する必要があります。
その後、残りの課題はZKVM Proverのパフォーマンスです。役立つのに十分な速さが必要です。これは、ブロックチェーンの例で特に重要です。これは、プレーバー時間が遅延に影響を及ぼし、ユーザーエクスペリエンスに影響を与えるため、特に重要です。
長い間ブロックチェーンの拡大になると予想される究極のソリューションとして宣伝されていることを検証して計算できますが、この技術は採用に関して3つの主要な障害に直面しています。
-
パフォーマンス:ネイティブの実行と比較して、プルーフプログラムの実行により、いくつかの定量的オーバーヘッドが導入されます。
-
複雑:Snarksの複雑さは、チェーンの数十億ドルの資産のセキュリティ保証が保証されているため、その安全性に関する懸念を引き起こしました。
-
可用性:Circomのような特定のドメイン言語で必要な専門知識は、ほとんどのソフトウェア開発者を取得できません。
ZKVMSでは、ZKVMSがrustなどの高度なプログラミング言語を使用してプログラムを作成したり、根底にあるスナークなしで実行を証明する必要なく実行することなく、3番目の障害(利用可能)をゼロにすることで、Zero -knowledge仮想マシン(ZKVMS)の開発は克服します。ただし、ZKVMSの可用性の改善により、高性能のオーバーヘッド(8〜9の定量的)と複雑な展開がもたらされました。
昨年、Joltの記事がZKVMに新しいパラダイムを導入し、パフォーマンスオーバーヘッドと展開の複雑さの2つの課題を克服することを約束しました。Starkの既存のアイデアと比較して、Joltの理論的背景。Lassoを使用してパラメーターやその他のSumcheckテクノロジーを照会することにより、Joltは以前よりも速くプログラムを証明でき、以前よりも新しいVM命令を展開する方が簡単です。
今日、RV32i命令セットのJolt Open Sourceの展開をリリースし、Joltの記事で行われた約束を実現できることを嬉しく思います。
-
速い:当社の展開は、RISC Zeroよりも5倍以上高速であり、これは予備ベンチマークテストでリリースされたばかりのSP1の2倍です。
-
(相対)シンプル:コードライブラリ全体は25,000行未満(他のZKVMの半分未満)であり、1つのCPU命令をわずか50行で実装できます。
以下では、パフォーマンスベンチマークを一緒に見てみましょう。また、Joltを使用してアプリケーションの開発に関心のある開発者にガイダンスを提供します。また、Joltに貢献した開発者にロードマッププレビューを提供します。使いやすい。
A16Z暗号化エンジニアリングチームは、オープンソースの価値に対する確固たる信念に基づいています。オープンソースの公開製品としてのJoltは、ZKVMの研究、より広いスナーク研究、およびWeb3業界全体の開発を加速します。クローズドソースコードの島で暗号化技術の構築(コードは一般に公開されることはできません)。これは通常、信じられないほどのシステムに信頼をもたらします。
1、パフォーマンス
ネイティブの実行と比較して、ZKVMSは約8つの定量的オーバーヘッドをもたらし、多くの検証アプリケーションを未実現にします。Joltの現在のバージョンは、この費用を6注文未満に減らしました。
私たちはすでに最も高度なパフォーマンスを持っていますが、Joltの基礎となるテクノロジー(Sumcheck契約に基づく)は、より一般的なテクノロジー(Based Fri)のようなエンジニアの注目を集めていません。これは、Joltがまだ開発スペースを持っていることを示しています。ロードマップにいくつかの最適化を設定しており、発見の可能性がないことを期待しています。
A16Z/ZKVMベンチマークテストは、さまざまなさまざまな錆プログラムでJolt、SP1、およびRISCゼロを決定しました。その結果、多くの同様のRV32プログラムで相対パフォーマンスは似ています。以下の図は、SHA2ハッシュチェーンを実行するプログラムを指します。
これらのベンチマークテストの結果を以下に示します。ベンチマークテストは、AWS R7Gで実行されます。すべてのベンチマークテストは、CPU専用です。
連続的な継続システムは、プーバー時間と利点と証明のサイズのバランスに直面しています – それがより多くの「シャードスライス」(または「段落」)に分割されることが証明された場合、プロバーはより速くなります(シャードはシャードのために破片の間にあるのは平行です)が、再帰の前に大きな証拠があります。サイズのサイズを以下に示していることを証明します。SP1の結果は、ピースカウント:SP1(SHARD_Count)によってパラメーター化されています。RISC Zeroのサイズは固定されているため、プログラムサイクルカウントとともに、そのシャードカウントが隠されています。RISC Zeroは再帰をサポートします(SP1とJOLTはサポートされていません)が、以下のベンチマークテストは再帰なしで実行されるパフォーマンステストです。「プレ折り目」は使用していないため、ベンチマークテストはコアZKVMプルーフシステムのパフォーマンスを反映しています。
2どうですか衝撃開発と建設
Jolt SDKは、Joltに可能な限り使いやすく使用できるようにするために、A16Z Crypto Engineering Partner Noah CitronによってJolt Core機能のシンプルなラッパーを提供します。あなたがしなければならないのは、jolt_sdk ::証明される機能に証明可能なプロパティを追加することです。
その後、build_*関数を使用して、プロボケートと検証剤を作成できます。
コードライブラリの完全なフィボナッチの例(およびその他)を確認してください。
Jolt Architectureについて詳しく知るために、Jolt Book(WIP)は、Joltの記事に記録されていないデザイン選択とコードライブラリに関するデザイン選択と実際の更新ドキュメントです。今後数週間で、衝撃の開発と構築に関心のある開発者や、衝撃の内部メカニズムを知りたい開発者向けのコンテンツをさらに公開します。
3次のことは何ですか
JoltはZKVMフィールドで重要なマイルストーンですが、まだ長い道のりがあります。一歩後退して、パフォーマンスベンチマークテストは、ジョルトプロバー(M3 Max)が、プログラムの速度が100kHzプロセッサと同じくらい速いことを証明していることを示しています。より多い。TI-84グラフィックスカルテーターの150倍遅い謙虚な比較を行います。
コンピューターレベルのパフォーマンスを実現するために、やるべきことがたくさんあります。開発者に最高の開発体験を提供するために、衝撃のパフォーマンスと可用性を改善し続けます。ロードマップの次の主なタスクは、私たちを興奮させます:
-
ビニウスベン・ダイアモンドとジム・ポセンは、最近、約束の値が小さいため、このソリューションは衝撃的なシステムに特に役立ちます。BiniusとJustin ThalerのSumcheckアルゴリズムの組み合わせは、JoltのProverパフォーマンスを大幅に改善します(5〜10倍になると予想されます)。
-
その他の指示:Jolt Code Libraryは現在RV32iを展開していますが、Jolt構造は非常に柔軟です。Joltの記事に記載されているように、RISC-V “M”拡張機能を追加して、整数の乗算と除去方法をサポートする予定です。さらに、Joltは64ビットバリアントRv64Imを簡単にサポートできます。
-
継続的な連続システム:現在、メモリの制限により、Joltは長さの計算を証明できません。継続を使用して、長い計算をより小さな計算ブロックに分割し、各ブロックを衝撃で証明できます。これにより、メモリの使用が削減され、単一の計算が証明された場合、追加の並列性がサポートされます。
-
証明書再帰:衝撃を別の証明システムと組み合わせることにより、サイズと検証時間をさらに短縮しました。たとえば、Jolt検証装置を循環言語で実装して、チェーンで効果的に検証できる定数サイズのGROTH16証明を生成できます。