どの zkEVM が最高のパフォーマンスを持っていますか?イーサリアム L2 コントラクト展開テスト

著者: ジャロッド・ワッツ、編集: Block Beats

イーサリアム拡大戦争では、オプティミスティック ロールアップは EVM と高い互換性、または完全に同等であり、開発者が採用する軌道にある Arbitrum と Optimism の固有の利点につながります。コードの L1 から L2 へのシームレスな移植と豊富な開発ツールにより、開発者はすぐに慣れて、プラットフォーム上でアプリケーションをデプロイおよび作成することができます。

逆にZKシリーズは難易度が高いです。その固有の技術的特性により、ZK ロールアップは独自の仮想マシンをカスタマイズします。これは、プロジェクト パーティが EVM からのコードを「解釈」したり、新しいコードを最初から開発して作成したりするためにさらに多くの作業を行う必要があることを意味します。ただし、Taiko、Polygon、Linea、Scroll、ZkSync Era を含むいくつかの ZK ロールアップ トラック プロジェクトは、独自の zkEVM 実装を開始しました。

拡張の聖杯として、zkEVM は開発者の契約展開エクスペリエンスに重大な影響を与えます。さまざまな ZK ロールアップ プロジェクトに直面して、開発者はどのように選択すべきでしょうか?

この記事は、Polygon の開発者関係エンジニアである Jarrod Watts のツイートをまとめたものです。現在人気の ZK ロールアップ プロジェクトにスマート コントラクト (1 Solidity スマート コントラクトと NFT コントラクト) をデプロイすることで、Taiko、Polygon、Linea、Scroll、ZkSync Era などのプロジェクトの zkEVM パフォーマンスを測定し、それぞれの長所と短所、および L2 から L1 クレジットを比較して、2 層コントラクトをデプロイしようとする開発者に実用的なテスト ガイドを提供します。

以下は、BlockBeats の原文を編集したものです。

**ZK-EVM とは何ですか?なぜそれが必要ですか? ****ZK-EVM とは何かを理解する前に、なぜ ZK-EVM が必要なのかを見てみましょう。 **

ZK Rollups は Ethereum にスケーラビリティと高性能をもたらしますが、その一方で、ZK Rollups ソリューションは EVM (Ethereum Virtual Machine) と互換性がなく、ZK Rollups ソリューションは転送、ミント、書き込みなどの限られた操作しかサポートできず、ウォレットなどのツールはユーザー向けに開発する必要があります。

したがって、EVM と互換性のある ZK ロールアップが必要であり、このためにさまざまな企業が独自の ZK-EVM を開発しています。

ZK-EVM (Zero-Knowledge EVM) は、Zero-Knowledge Proofs と互換性のある Ethereum 仮想マシン実装です。

ZK-EVM の主な機能は、イーサリアム L2 (レイヤー 2) でトランザクションをバッチ処理し、バッチ トランザクションの「有効性証明」をイーサリアム L1 に送り返すことです。一般に、zkEVM はイーサリアムメインネットのすべてを行うことができます。 Solidity または Vyper 内の人間が判読可能なコードをバイトコードにコンパイルし、スマート コントラクトを実行し、ブロックチェーンの状態を更新します。

EVM 互換の ZK ロールアップを構築する際の難しさは、イーサリアムが元々 ZK との親和性を念頭に置いて設計されていないことです。これは、ゼロ知識証明には計算に多くのリソースが必要であることを意味します。

その中でも、一部の EVM オペレーション コードのオペコードは特に「ZK 非フレンドリー」であり、最終的にはさまざまな EVM 互換性を持つさまざまな企業によって設計された ZK-EVM 製品につながります。

** オペコード、バイトコード、EVM とは何ですか? **

ポピュラーサイエンスの時間です。オペコード、バイトコード、EVM とは何ですか?

まずEVMとはイーサリアム上のスマートコントラクトの動作環境です。 Ethereum はいわゆる「マシン状態」をトライ ツリー データ構造に保存します。このデータ構造は、ブロック内の各トランザクションが実行された後に変化します。

EVM は決定的です。つまり、特定の状態で一連の命令を実行すると、同じ新しい状態が得られます。

イーサリアム開発者ドキュメントによると、古い有効な状態 (S) + 有効なトランザクションの新しいセット (T) により、イーサリアムは新しい有効な出力状態 S' を生成します。

チェスのようなゲームと考えることができます。イーサリアムはチェス盤のようなもので、さまざまなゲーム状態があり、イーサリアムではこの状態の可能性は無限です。ボードゲームには独自の特定の移動ルールがあり (イーサリアム上のトランザクションを比較)、どのピースに対してどのアクションを実行できるかについて特定の制限があります。ゲーマーは(ユーザーがイーサリアム上でトランザクションを送信するのと比較して)アクションを実行し、ゲーム(イーサリアム)がルールを策定して施行し、その結果各ラウンド(ブロック時間に相当)後に新しいボード(イーサリアムグローバル)の状態が生成されます。

Ethereum または EVM 互換のブロックチェーン開発では、スマート コントラクトを Solidity で記述する必要があります。 Solidity は人間が読めるように設計された高級言語で、開発者はレジスタ、メモリ アドレス、コール スタック、その他の抽象化ではなく、コードの作成に集中できます。

ただし、EVM は Solidity を読み取ることができません。代わりに、バイナリの機械可読な低レベル コードである「バイトコード」のみを理解します。

EVM では、「バイトコード」 (バイトコード) は一連の EVM 「オペコード」 (オペコード) を表します。オペコードはプログラムの低レベルの読み取り可能な命令であり、EVM で実行できる特定の操作を表します。

Solidity のような高級言語は EVM で直接実行できないため、人間が判読できる Solidity 言語のオペコード バイトコードからスマート コントラクト コードを EVM で実行できるように変換する方法が必要です。これはコンパイラの仕事です。

Remix IDE コンパイラーを使用して Solidity コードをコンパイルした後、スマート コントラクトが変換される特定のオペコードを確認し、オペコードから生成されたバイトコードを確認できます。

オペコードは次のとおりです。

以下は、上記のオペコードに対応するバイトコードです。

バイトコードをオペコードに変換することで、バイトコードにどのような実行命令が含まれているかを知ることができます。

EVMの一部の特定のオペコードに対するZK証明が難しいため、ZK-EVMとEVMのオペコードセットが完全に同等のもの、一部のEVMオペコードを部分的に変更したもの、バイトコードが完全に異なるものなど、互換性の異なるZK-EVMが市場に登場しています。

さまざまなタイプの ZK-EVM

イーサリアムの設計は当初 ZK への適合性を考慮していなかったため、理論上、イーサリアムの設計に近づくほど、ZK プルーフの生成は難しくなり、時間がかかります。 2022年8月、イーサリアムの創設者であるVitalikは、さまざまなZK-EVMを分類するブログ投稿「さまざまなタイプのZK-EVMの将来についてのVitalikの解釈を聞いてください」を公開しました。

この記事では、Vitalik が EVM の互換性と ZK プルーフ生成時間 (パフォーマンス) の 2 つの側面に基づいてさまざまな ZK-EVM を分類しており、この表には 4 つの (セミ) タイプがリストされており、現在市場にあるすべての ZK-EVM 製品が含まれます。

1、最初のタイプの ZK-EVM はイーサリアムと完全に同等であり、イーサリアム システムのどの部分も変更せず、プルーフの生成が容易です。このようなシステムでは、ZK 証明の生成に長い時間 (数時間) かかります。 Taiko はこのタイプの ZK-EVM に属します。

  1. 2 番目のタイプは EVM と完全に同等ですが、ZK プルーフの生成時間を高速化するために、チェーン状態の保存方法など、いくつかの異なる内部表現が変更されています。現在、このタイプの ZK-EVM は市場にありませんが、Polygon、Linea、および Scroll がこの方向に取り組んでいます。

2.5型、2型と3型の間には2.5型もあります。このタイプは、「最悪の場合のプルーフ時間を大幅に短縮する」ために特定のタイプの操作のガスコストが増加することを除いて、EVM とまったく同じです。現在、このタイプの ZK-EVM は市場に存在しませんが、Kakarot と呼ばれる新しい ZK-EVM プロジェクトが取り組んでいます。

  1. タイプ 3 は EVM とほぼ同等ですが、証明時間をさらに短縮し、EVM 開発を簡素化するために、同等の精度にいくつかの妥協点があります。現在、Polygon、Linea、Scroll がこのタイプです。

  2. タイプ 4 は、ZK-EVM の高級言語に相当します。このタイプの ZK-EVM は、スマート コントラクトのソース コードを ZK-SNARK フレンドリーな言語にコンパイルします。これにより、証明時間が短縮され、非互換性や制限などの対応する欠点がもたらされます。現在、zkSync Era がこのカテゴリに分類されます。

有効性の証明をイーサリアム L1 に送り返すのに必要な時間は、ユーザーが資金を L1 に送り返すのにかかる時間であることに注意してください。プルーフの生成に数時間かかる場合、そのユーザーはその時間内に資金を L1 に戻すことはできません。

実戦:太鼓、ポリゴン、リネア、スクロール、ZkSync時代の開発評価

理論的な知識を復習したら、次は実戦パートです。

Solidity スマート コントラクトと NFT コントラクトをそれぞれ Taiko、Polygon、Linea、Scroll、ZkSync Era に導入することで、各 ZK-EVM のパフォーマンスと対応する欠陥がテストされ、利用可能な開発者リソースも提供され、評価は主に開発者のエクスペリエンスと L2 から L1 へのブリッジ時間の 2 つの側面から実行されます。

太鼓 ZK-EVM

Taiko はタイプ 1 ZK-EVM であり、現在テストネット段階にあります。 Taiko は、同じハッシュ関数、ガス価格、暗号化アルゴリズムなどを使用して、イーサリアムとまったく同じことを処理します。

操作プロセス: シンプルな Solidity スマート コントラクトをデプロイし、ThirdWeb プロキシを使用してシンプルな NFT コレクションをデプロイしました。

タイプ 1 ZK-EVM の欠点は、すべてが (内部的にも) イーサリアムとまったく同じである場合、証明の生成に時間がかかることです。これは、ユーザーが ETH を Taiko L2 から Ethereum L1 にブリッジして戻すのに数時間かかることを意味します (以下を参照)。

ライン ZK-EVM

Linea はタイプ 3 ZK-EVM に属し、Linea はまだすべてのオペコードやプリコンパイルを証明できませんが、異なるハッシュ関数の使用など、イーサリアムとは異なるチェーンの内部状態を表します。

デプロイされたバイトコードはイーサリアムと同じです。

導入プロセスはほぼシームレスで、両方のスマート コントラクトの導入と操作が簡単になりました。これはイーサリアムと同じ動作で、既存のツールやウォレットを使用してスマート コントラクトを展開し、それらと対話し、NFT をミントするなどできます。

この記事の執筆時点では、Linea はまだブリッジ フロントエンド インターフェイスを起動していません。したがって、ブリッジされたスマート コントラクト関数のみを直接呼び出すことができます。

Linea のドキュメントによると、ETH の L2 から L1 へのブリッジには通常約 15 分かかりますが、この場合は約数時間かかりました。

ポリゴン ZK-EVM

Polygon ZK-EVM は Type 3 ZK-EVM に属し、今年 3 月末からメインネットを開始しました。

Polygon zkEVM の公式ドキュメントには、EVM と zkEVM の間の現在の相違点がすべてリストされています。

Polygon zkEVM へのバイトコードのデプロイは Ethereum と同じであるため、スマート コントラクトのデプロイと対話が非常に簡単になります。 Vitalik 氏はかつて、「Polygon zkEVM は独自の設計をしており、zkASM と呼ばれる独自の内部言語を検証するために ZK を使用しています」と述べました。

Polygon エンジニアリング チームは、プルーフの生成と取り消し時間を改善することに加えて、Vitalik ダイアグラムのタイプ 2 になることを目標として、残りのプリコンパイルを将来できるだけ早く完了する予定であると述べました。

この導入ケースでは、zkEVM メインネット ブリッジングはスムーズに完了し、L2 -> L1 ブリッジング プロセスには約 1 時間かかりました。

スクロール

Scroll はタイプ 3 ZK-EVM に属しており、現在テストネット段階にあります。公式ドキュメントには、ZK-EVM と Ethereum EVM の違いもリストされています。

他のタイプ 3 ZK-EVM と同様に、展開プロセスはほぼシームレスであり、Solidity スマート コントラクトと NFT コレクションは簡単に展開して操作できます。 L2 から L1 への資金のブリッジングには「10 分から数時間」かかると予想されます。

ZkSync 時代

ZkSync Era はタイプ 4 ZK-EVM に属します。他の ZK-EVM とは完全に異なり、ZkSync Era の zkEVM にデプロイされるスマート コントラクト バイトコードはイーサリアムとは異なります。

これにより、ZkSync Era は、アカウント抽象化のネイティブ サポートという独自の機能を提供できるようになり、異なる開発者エクスペリエンスがもたらされます。通常、ほとんどの暗号通貨ウォレットは、資金を送受信したり、スマート コントラクトとやり取りしたりできる標準的なアドレスにすぎません。アカウントの抽象化により、暗号ウォレットはカスタマイズ可能になり、より複雑な方法で設計して、より幅広い機能を提供できます。さらに、zkEVM では、開発者は引き続き Solidity などの同じ高級言語を使用できます。

ZkSync Era の ZK-EVM は EVM とはまったく異なりますが、ZkSync Era は開発者向けに一連のベスト プラクティスと考慮事項を提供します。さらに、開発者は、ZkSync Era 向けに特別に構築するには、開発プロセスに若干の調整を加える必要があります。

たとえば、以下の例では、Era ZK-EVM に展開できるバイトコードを生成するには、Hardhat 環境をインストールし、カスタム zkSync 拡張機能を使用して構成する必要があります。

コンパイルにより、イーサリアムとはまったく異なるまったく新しいバイトコードが生成されます。これは、上記の ZK-EVM によって生成されたバイトコードとはまったく異なります。

開発者により便利な展開エクスペリエンスを提供するために、ThirdWeb が zkSync Era を開始したことは注目に値します。

この操作中に合計 2 つのスマート コントラクトがデプロイされ、それらと対話して、資産を L2 から L1 に送り返します。現在、セキュリティ上の理由により、ZkSync Era メインネットからイーサリアム L1 への出金には 24 時間の遅延が発生しています。

カカロット ZkEvm

タイプ 2.5 ZK-EVM の実現に特化したもう 1 つのプロジェクトは Kakarot ZkEvm で、今年 6 月に Vitalik Buterin や StarkWare を含むいくつかの機関から融資を受けており、Kakarot は 2023 年後半にテストネットをリリースする予定です。

結論

EVM 互換の ZK ソリューションの進歩は業界全体にとって大きな勝利であるため、エンド ユーザーにとっては誰がレースに勝つかは問題ではありません。さまざまなプロジェクト関係者にとって、それは競争というよりも、業界全体の進歩を促進するためのさまざまな方法を模索することです。Vitalik 氏は「マルチ認証者理論」さえ持っています。基本的な前提は、異なるロールアップが連携してイーサリアム全体のセキュリティを強化できるということです。

結局のところ、誰もがイーサリアムの成功を望んでいます。 L2 拡張変換は、イーサリアムが経験する必要があると Vitalik が考える 3 つの技術的変換のうちの 1 つです。今後どのように発展していくのか、注目していきたいと思います。

原文表示
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 報酬
  • コメント
  • 共有
コメント
0/400
コメントなし
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)