著者 | Callum@Web3CN.Pro
ZK ロールアップは、トランザクションをオフチェーンで処理し、メイン チェーン上の単一の圧縮トランザクションにマージできるようにするイーサリアムのスケーリング方法です。このプロセスにより、トランザクションのスループットが向上し、トランザクション コストが削減され、ゼロ知識証明を通じて状態の正当性が確保され、メイン チェーンのプライバシーとセキュリティが向上します。したがって、ZK Rollup はイーサリアム拡張のための究極のソリューションと考えられています。
ただし、現在、ゼロ知識証明の生成にはより大きなコンピューティング能力が必要であり、技術的により困難です。同時に、イーサリアム仮想マシン (EVM) は ZK 回路をサポートするように設計されていないため、スマート コントラクトを直接実行することはできません。この問題を解決するために、多くの開発者が、ゼロ知識証明計算と互換性のある方法でスマート コントラクトを実行できる zkEVM の開発を試みてきました。多くの ZK ロールアップにとって、EVM の同等性を達成することは、バイトコード レベルでの完全な互換性を達成することを意味します。現時点では、zkEVM がイーサリアム拡張の鍵となります。
この記事では、5 つの一般的な zkEVM タイプとさまざまなタイプのプロジェクトの進捗状況を調査し、各タイプの zkEVM の設計上の課題を指摘します。
zkEVMとは何ですか
zkEVM は、ゼロ知識証明コンピューティングをサポートする EVM 互換の仮想マシンであり、イーサリアム ブロックチェーン テクノロジーに基づくアプリケーション開発プラットフォームです。 EVM コントラクトは、変更せずに直接展開して実行でき、プログラムを実行すると、ゼロ知識を通じて計算の正当性を証明できます。
zkEVMの利点
1.zkEVM により互換性が向上します。 zkEVM は、EVM で実行するように記述されたスマート コントラクトと高い互換性があり、開発者はアプリケーションを再開発することなく既存の Ethereum アプリケーションを L2 に移行でき、zkproof は Ethereum ネットワーク セキュリティを継承します。
2.zkEVM はスケーラビリティを強化します。 zkEVM は非対話型プルーフを使用します。これにより、L2 ブロックのプルーフを検証する方が、新しく提案されたブロックですべてのトランザクションを再実行するよりも高速になるため、スループットが向上し、レイテンシが短縮されます。
3.zkEVM はストレージ コストを削減します。 zkEVM Rollup は、Ethereum L1 上でのみ最終状態へのコミットメントを公開することを選択できるため、オンチェーン ストレージのコストが削減されます。有効性証明は zkEVM の新しい状態の正確さを保証するため、シーケンサーは状態遷移の変更を再実行するために必要なすべてのデータを公開する必要はありません。
ZK Rollup の制限は、zkEVM の継続的な改善によって解決され、EVM の互換性と組み合わせて、ZK Rollup のセキュリティと効率性を使用することで、アプリケーションはスマート コントラクトと対話し、アプリケーション エクスペリエンスを向上させることができます。
5 つの異なるタイプの zkEVM と関連プロジェクト
EVM が当初設計されたときは、ゼロ知識証明をサポートすることは考慮されていなかったため、EVM 互換の zk 仮想マシンを構築することが困難でした。しかし、研究の進歩により、EVM の計算をゼロ知識証明にラップできるようになりました。さまざまな zkEVM プロジェクトが採用するさまざまなアプローチが、EVM の実行とゼロ知識証明計算を組み合わせます。
イーサリアムの創設者であるヴィタリック・ブテリン氏も、さまざまな種類の zkEVM 間のトレードオフについて説明した記事を発表しました。ヴィタリック・ブテリン氏は、これらのプロジェクトの中核となる目標は同じであると考えています。それは、ZK-SNARK テクノロジーを使用して実行の暗号証拠を提供することです。イーサリアムと同様のトランザクションの数が多いため、イーサリアム チェーン自体を検証したり、イーサリアムが提供するものと同等の ZK ロールアップを構築したりすることが容易になりますが、イーサリアムよりもスケーラブルです。
タイプ 1 (コンセンサスレベルの同等性 - イーサリアムと完全に同等)
タイプ 1 zkEVM は、イーサリアムと完全に同等になるよう努めています。プルーフの生成を容易にするためにイーサリアム システムの一部を変更することはなく、ハッシュ、状態ツリー、トランザクション ツリー、プリコンパイル、またはその他のコンセンサス ロジックを置き換えることもありません。
タイプ 1 zkEVM の利点は、イーサリアムと完全な互換性があることです。長期的には、タイプ 2 またはタイプ 3 の ZK-EVM でテストされたイーサリアムへの変更がイーサリアム自体に導入される可能性がありますが、この再構築には独自の複雑さがあるため、タイプ 1 は最終的にはイーサリアムファング L1 自体をさらに何かにするために必要になります。スケーラブル。同時に、タイプ 1 zkEVM は、ロールアップで大量のインフラストラクチャを再利用できるため、ロールアップにも最適です。
タイプ 1 zkEVM の欠点は、検証に時間がかかることです。イーサリアムは元々 ZK との親和性を重視して設計されていないため、イーサリアム プロトコルの多くの部分で ZK 証明を実行するために大規模な計算が必要になります。タイプ 1 zkEVM はイーサリアムの正確なレプリカとして設計されているため、これらの非効率性を軽減することはできません。タイプ 1 zkEVM は最も望ましい zkEVM であり、このタイプを構築または調査するプロジェクトが数多くあります。
現在、タイプ 1 zkEVM 関連のプロジェクトには、Taiko と Kakarot が含まれます。
Taiko によって構築された Type 1 zkEVM を使用すると、開発者とユーザーは、取引手数料が低く、変更を考慮する必要がなく、安全にイーサリアムを体験できます。同社は2回のシード資金調達ラウンドで2,200万米ドルを調達し、1回目はSequoia Chinaが主導する1,000万米ドル、2回目はGenerative Venturesが主導する1,200万米ドルであった。 6 月 7 日、Taiko は Alpha-3 奨励テスト ネットワークを開始しました。 Taiko 関係者によると、テストネットは分散型のイーサリアムに相当する ZK-EVM 部分に焦点を当てています。
Kakarot zkEVM は、Cario 言語を使用してデプロイされた EVM であり、EVM の互換性を強化することで Starknet エコシステムの信頼性を拡張します。 Kakarot zkEVM はさまざまな形式で存在できます。第 1 フェーズでは、EVM を Starknet に提供します。第 2 フェーズでは、Kakarot と Madara が統合スタックにマージされ、L3 zkEVM をサポートします。第 3 フェーズでは、Kakarot と Madara を統合することもできます。同時に、タイプ 1 zkEVM を有効にします。 6月2日、Kakarot zkEVMは、StarkWareやLambdaClassなどの機関のほか、Vitalik Buterin、Nicolas Bacca、Rand Hindiなどのエンジェル投資家らの参加を得て、プレシードラウンドの資金調達を完了した。
タイプ 2 (バイトコード レベルと同等 - EVM とまったく同じ)
Type2 zkEVM は EVM と完全に同等であるように努めていますが、イーサリアムと完全に同等ではありません。つまり、内部的にはイーサリアムとまったく同じに見えますが、外部的には、特にブロック構造や状態ツリーなどのデータ構造の点でいくつかの違いがあります。目標は、既存のアプリケーションと完全な互換性を持たせることですが、開発を容易にし、プルーフの生成を迅速化するために、イーサリアムにいくつかの小さな変更を加えます。
タイプ 2 zkEVM の利点は、VM レベルでの完全な同等性です。タイプ 2 zkEVM は、イーサリアムの状態などを保持するデータ構造に変更を加えます。これらは EVM 自体に直接アクセスできない構造であるため、イーサリアム上で実行されるアプリケーションは、ほとんどの場合、タイプ 2 zkEVM ロールアップ上で実行されます。このタイプでは、Ethereum 実行クライアントをそのまま使用することはできませんが、一部の変更を加えて EVM デバッグ ツールやその他のインフラストラクチャを引き続き使用することは可能です。
タイプ 2 zkEVM の欠点は、検証時間が依然として遅いことです。タイプ 2 zkEVM は、主に不必要に複雑で ZK に適さない暗号化に依存するイーサリアム スタックの部分を削除することにより、タイプ 1 zkEVM よりも高速な検証時間を実現します。たとえば、イーサリアムの Keccak および RLP ベースのマークル-パトリシア ツリーを変更し、場合によってはブロックとレシートの構造を変更する可能性があります。これらの変更により証明者の時間は大幅に短縮されますが、すべての問題が解決されるわけではありません。 EVM にはあらゆる非効率性と ZK に不親切な性質があるため、EVM の証明には依然として時間がかかります。
現在、タイプ 2 zkEVM 関連プロジェクトには Linea と Polygon が含まれます。
Linea は、Consensys を搭載した Type-2 zkEVM です。 ZKP を EVM の完全な互換性と統合することで、開発者はコードを変更したりスマート コントラクトを書き換えたりすることなく、スケーラブルな DApp を作成したり、既存の DApp を新しいプラットフォームに移行したりすることができます。パブリック テストネットは今年 3 月 28 日に開始され、メタマスク拡張機能のデフォルトのネットワーク オプションに追加されました。 Linea は、6 月 13 日 12:00 にアルファ v0.2 をリリースしました。このバージョンは、メインネットの立ち上げに備えて実質的なアーキテクチャのアップグレードをテストすることに重点を置いています。
Polygon zkEVM はオープンソースであり、タイプ 2 zkEVM を使用します。 ZK プルーフを使用して、イーサリアム L1 のセキュリティを維持しながら、取引手数料を削減し、スループットを向上させます。 Polygon は今年 2 月 14 日、Polygon zkEVM は zkEVM に適した Ethereum テスト ベクトルを 100% パスしており、開発者はコードを変更したり書き直す必要がなく、すべての Ethereum ツールが Polygon zkEVM とシームレスに動作できることを意味すると発表しました。 ZK Rollup の互換性はさらに大きな一歩を踏み出し、EVM と完全に同等の Type 2 のレベルに達しました。 Polygon zkEVM メインネット ベータ版は、2023 年 3 月 27 日に正式に開始されました。
タイプ 2.5 (EVM 相当、ガス代を除く)
検証時間を短縮する 1 つの方法は、ZK 耐性が難しい EVM の特定の操作のガス コストを大幅に増やすことです。これには、プリコンパイル、keccak オペコード、および場合によってはコントラクトの呼び出しやメモリ、ストレージ、リカバリへのアクセスの特定のパターンが含まれる場合があります。
ガスコストを変更すると、開発者ツールの互換性が低下し、一部のアプリケーションが動作しなくなる可能性がありますが、一般に、EVM の「より深い」変更よりもリスクが低いと考えられています。開発者は、トランザクションで複数のガス ブロックをリクエストしたり、ハードコードされたガス量で呼び出しを行わないよう注意する必要があります。
現在、タイプ 2.5 EVM を実行する特定のプロジェクトはなく、タイプ 2 の段階に入ったばかりです。
タイプ 3 (バイトコード レベルと同等 - EVM とほぼ同等)
タイプ 3 zkEVM は EVM とほぼ同等ですが、証明時間をさらに短縮し、EVM の開発を容易にするために、正確に同等にするためにいくつかの犠牲が払われています。
タイプ 3 zkEVM の利点は、構築が簡単で、検証時間が短いことです。タイプ 3 zkEVM は、zkEVM 実装で実装するのが特に難しいいくつかの機能を削除する場合があります。さらに、タイプ 3 zkEVM は、コントラクト コード、メモリ、スタックの処理方法に微妙な違いがある場合があります。
Type 3 zkEVM の欠点は、互換性が低いことです。タイプ 3 zkEVM は、残りのアプリケーションの書き換えを最小限に抑えながら、ほとんどのアプリケーションと互換性を持たせることを目指しています。とはいえ、タイプ 3 zkEVM では削除されるプリコンパイルを使用しているため、または VM が異なる方法で処理するエッジ ケースへの微妙な依存関係のために、一部のアプリケーションは書き直す必要があるでしょう。
現在、タイプ 3 zkEVM 関連プロジェクトには Scroll が含まれます。
Scroll は、Scroll チームが Ethereum Foundation の PSE (Privacy and Scaling Explorations) グループと協力して開発した EVM と同等の zk-rollup です。現在はプレアルファ テストネットの段階にあり、バイトコード レベルで EVM と完全な互換性があることを目指しています。 。これは、開発者が EVM 互換言語を使用してスマート コントラクトを作成し、それを Scroll にデプロイできることを意味します。 Scroll は現在タイプ 2 EVM を構築していますが、より複雑なプリコンパイルの多くはまだ実装されていないため、タイプ 3 EVM とみなされます。 Scroll氏によると、今年7月か8月にメインネット上でローンチされる予定で、エコロジー開発を促進するためにパートナープログラムを立ち上げる可能性があると述べた。
現在、タイプ 3 EVM は、プリコンパイルを追加する複雑な作業が完了するまでの移行段階にすぎません。その後、プロジェクトはタイプ 2.5 zkEVM に移行できます。しかし将来的には、タイプ 1 およびタイプ 3 EVM に新しい ZK-SNARK フレンドリーなプリコンパイルが追加され、開発者に検証時間の短縮とガスコストの削減機能が提供される可能性があります。
タイプ 4 (開発言語レベル相当 - EVM 相当の高級言語)
タイプ 4 EVM は、高級言語 (Solidity、Vyper、中間言語など) で記述されたスマート コントラクトのソース コードを、ZK-SNARK に優しいように明示的に設計された言語にコンパイルすることによって機能します。
タイプ 4 zkEVM の利点は、プルーフ速度が速いことです。このタイプは、各 EVM 実行ステップのさまざまな部分すべてを ZK プルーフするのではなく、高レベルのコードから直接開始するため、多くのコストを回避できます。
タイプ 4 zkEVM の欠点は、互換性が低いことです。第一に、タイプ 4 システム内のコントラクトのアドレスは、EVM 内のアドレスと異なる可能性があります。第二に、多くのアプリケーションは、効率を向上させるために一部の部分で手書きの EVM バイトコードを使用しますが、これはタイプ 4 システムではサポートされていない可能性があります。デバッグの基礎 ファシリティも継承できません。
現在、タイプ 4 zkEVM 関連プロジェクトには、zkSync Era と StarkNet が含まれます。
zkSync Era は Matters Lab によって作成されました。 zkSync Era は、メインネット上で起動される最初の EVM であり、一般の人々が資金をシステムにブリッジしたり、ネットワーク上にコードをデプロイしたりするために完全にアクセスできます。 zkSync Era は異なるバイトコード形式を使用し、コンパイラーを提供することで Solidity をサポートします。 Solidity はサポートされますが、EVM バイトコード自体はサポートされません。 Hardhat などのツールは直接使用できませんが、zkSync のプラグインは使用できます。
StarkWare によって作成された StarkNet は、ゼロ知識証明を使用してイーサリアムのオフチェーン実行層を作成する zk-rollup L2 です。実際、EVM は Starknet のネイティブ機能ではありません。 Starknet は、Warp コンバーター (Nethermind によって提供) を使用して、Solidity コードを Cairo に変換し、スマート コントラクトの展開をサポートします。
zkEVMの課題と将来
EVM は zk プルーフ計算を念頭に置いて構築されていないため、特に特別なオペコード、スタックベース アーキテクチャのストレージ オーバーヘッド、証明コストの点で、回路の証明には不向きな特性を持っています。しかし、ゼロ知識テクノロジーにおけるいくつかの画期的な進歩により、これらの問題を軽減することが可能になりました。
zkEVM の 5 つのタイプには明確な区別はなく、番号が小さいタイプは既存のインフラストラクチャとの互換性が高くなりますが、速度が遅くなり、番号が大きいタイプは既存のインフラストラクチャとの互換性が低くなりますが、速度が速くなります。一般に、さまざまなプロジェクトにとって、zkEVM と Ethereum の開発にさまざまなタイプを検討することは有益です。
将来的には、ZK ロールアップとイーサリアム チェーン自体の検証の両方に使用できる複数の zkEVM 実装が存在する予定です。理論上、イーサリアムは L1 に単一の標準 zkEVM を使用する必要はなく、異なる顧客は異なるプルーフを使用できます。しかし、そのような未来を実現するにはかなりの時間がかかるだろう。同時に、イーサリアムおよびイーサリアムベースの ZK ロールアップをスケーリングするためのさまざまな経路で、さらなるイノベーションが見られるでしょう。
