Type1 から Type4 までのさまざまなタイプの ZK-EVM の違いは何ですか?

原作者| リサ・アクセルロッド

編集 | Odaily Planet Daily 0xAyA

!【Type1からType4まで、ZK-EVMの各タイプの違いは何ですか? ](https://img-cdn.gateio.im/resize-social/moments-7f230462a9-aee63603b0-dd1a6f-6d2ef1)

※編集後記:Vitalik氏が以前書いたZK-EVMの紹介記事を元に筆者が編集し、ZK-EVMの種類とその違いを詳しく紹介しました。 *

約 1 年前、ZK-EVM のグループがテストネットを立ち上げようとしていると発表しました。これらの動きはイーサリアムコミュニティの好奇心を刺激し、イーサリアム同等性やEVM同等性などの用語の背後にあるニュアンスについての議論を引き起こしました。

明確にするために、Vitalik は、さまざまな ZK-EVM を 4 つのタイプに分類し、それらの違いを説明する「ZK-EVM のさまざまなタイプ」というタイトルの重要な記事を書きました。

核となるアイデアは次のとおりです。タイプ 1 (例: Taiko) はイーサリアムと完全に同等ですが、タイプ 4 (例: zkSync) は効率的なプルーフ生成に優れています。他のすべてのタイプ、タイプ 2、タイプ 2.5、およびタイプ 3 はその中間にあります (例: Polygon zkEVM、Scroll、Linea)。

ほとんどの ZK-EVM は当初タイプ 2.5 およびタイプ 3 であり、タイプ 1 またはタイプ 2 に向けて進化する意図が明らかにされていますが、これらのプロジェクトはこれに関する具体的なタイムラインやコミットメントを提供していません。

**この記事は、タイプ 1 とタイプ 2/タイプ 2.5 の違いに焦点を当て、イーサリアムの同等性を破った場合に起こり得る影響について説明します。他のタイプについても簡単に触れておきます。 **

ZK-EVM の主な目標は、イーサリアムをスケーリングすること、つまり、他の機能 (セキュリティ、開発者エクスペリエンスなど) を維持しながらイーサリアムのスループットを向上させることです。理想的には、ZK-EVM は次のことができる必要があります。

  • イエロー ブックのイーサリアム仮想マシン仕様に従って、未変更のネイティブ バイトコード (イーサリアム オペコードの 100% をカバー) の実行を示します。
  • 低コストで迅速にプルーフを作成します。
  • イーサリアム用に開発されたツールとインフラストラクチャを 100% 再利用できます。
  • イーサリアム dApp を「現状のまま」 ZK-EVM に再デプロイできるようにします (「現状のまま」とは、変更が必要なく、妥協もしないことを意味します)。

ZK-EVM タイプ間の違い

ZK-EVM の世界では、違いは主にイーサリアム/EVM の同等レベル、プルーフ生成のコストと速度に対する ZK 非フレンドリーな要素の影響、回路実装の複雑さ (VM の構築や状態など) によって生じます。木)。

これらの違いを分析して、特にタイプ 1 とタイプ 2/タイプ 2.5 を区別してみましょう。それぞれのタイプに最も関連するユースケースについても触れます。

さまざまなタイプを比較する場合、次の表がよく使用されます。

!【Type1からType4まで、ZK-EVMの各タイプの違いは何ですか? ](https://img-cdn.gateio.im/resize-social/moments-7f230462a9-a4132532d2-dd1a6f-6d2ef1)

ZK-EVM 分野でフルタイムで働いていない人にとって、この表はわかりにくいように思えるかもしれません。そこで、これらの用語を分かりやすい言葉に翻訳して見てみましょう。

!【Type1からType4まで、ZK-EVMの各タイプの違いは何ですか? ](https://img-cdn.gateio.im/resize-social/moments-7f230462a9-4d640a038e-dd1a6f-6d2ef1)

この図は、各タイプが実際にどのようなものかをより明確に示していますが、まだ少しわかりにくい場合もあります。各タイプを個別に説明して、ZK-EVM の世界を詳しく見てみましょう。

タイプ 1: イーサリアムと同等

ヴィタリック・ブテリン:

「タイプ 1 ZK-EVM は、イーサリアムのレイヤー 1 自体をよりスケーラブルにするために最終的に必要なものです。」

タイプ 1 は、プルーフの生成を容易にするためにイーサリアム システムのどの部分も変更しないことを意味します。ほとんどの暗号化プリミティブ (ハッシュ関数など)、開発者インフラストラクチャ (デバッガなど)、チェーン インフラストラクチャ (実行クライアントなど) はすでに 9 年間にわたるフィールド テストを経ているため、イーサリアムに変更を加えないということは、セキュリティに妥協がないことを意味します。

タイプ 1 ZK-EVM は、ハッシュ、ステート ツリー、トランザクション ツリー、プリコンパイル、その他のコンセンサス ロジックを何も置き換えず、すべてがメインネットの EVM とまったく同じです。

  • タイプ 1 は、ブロック全体からトランザクションの実行、スマート コントラクト、アカウント ロジックに至るまで、イーサリアム チェーン自体を検証できる唯一のタイプです。

タイプ 2: EVM と同等

タイプ 2 は、ZK に適さない一部の部分を削除することにより、プルーフの生成を高速化し、回路開発を容易にします。ただし、この結果により、ZK ロールアップの他の部分 (ノード ソフトウェアなど) の開発がより複雑になる可能性があります。これらの複雑さは、確立されたベスト プラクティスおよびテスト ツールと、実装されている変更 (ステート ツリーの変更など) との間の非互換性によって引き起こされる可能性があります。

!【Type1からType4まで、ZK-EVMの各タイプの違いは何ですか? ](https://img-cdn.gateio.im/resize-social/moments-7f230462a9-97597aa768-dd1a6f-6d2ef1)

※注意:イーサリアム相当とEVM相当は同じではありません。イーサリアムと同等であるということは、イーサリアムの一部が変更されていないこと、つまりすべてのイーサリアム dApp と完全な互換性があることを意味しますが、EVM と同等であるということは、データ構造 (ブロック構造やステート ツリーなど) の変更を許可することになります。 *

これらの調整は些細なように見えるかもしれませんが、イーサリアムの互換性に影響を与えます。データ構造を変更すると、特に過去のトランザクション、領収書、または状態 (チェーン ブリッジ間など) に関するマークル証明を検証する場合、イーサリアム dApp がタイプ 2 ZK-EVM と互換性がなくなる可能性があります。

ZK に不親切な要素を削除する

イーサリアムへの変更は、開発を簡素化し、プルーフ生成の速度を上げることを目的としています。目標は、不親切なゼロ知識暗号に依存するイーサリアムの部分を取り除くことです。より専門的な用語では、非ローカル領域 (ハッシュ関数など)、多数のマルチスカラー乗算および/または高速フーリエ変換 (FFT) のために大量のゲート (加算および乗算演算) を必要とする部分。または、多くの操作が必要な部分だけ。

タイプ 2 ZK-EVM が変更する可能性がある非友好的なゼロ知識要素の具体的な例:

  • ハッシュ関数: イーサリアムは Keccak ハッシュ関数を使用しますが、多くの ZK-EVM は、必要なゲート数が大幅に少ない Poseidon ハッシュ関数を使用します。たとえば、各タイプのハッシュ関数が 1 秒あたりにいくつ計算できるかを見積もってみましょう (つまり、生成速度を示す比較)。

!【Type1からType4まで、ZK-EVMの各タイプの違いは何ですか? ](https://img-cdn.gateio.im/resize-social/moments-7f230462a9-1faf36693d-dd1a6f-6d2ef1)

ポセイドン ハッシュ関数は、プルーフ生成において速度に大きな利点があります。

ただし、新しい暗号化プリミティブは、コミュニティに広く認識されている確立された暗号化プリミティブと比べて人気が低いことに注意することが重要です。ポセイドンはスピードを提供するかもしれませんが、ケチャックは戦いでテストされた特性により、広く採用されているため、より堅牢で安全になります。

これが、Kecck が古く、より広範なコミュニティ (セキュリティ システムやスマート デバイスのセンサーなど、他の業界) に採用されているにもかかわらず、結局 ZK コミュニティ内にある Poseidon よりも実証済みであると考えられる理由です。作成して使用する関数。

  • データ ストレージ用の状態ツリー: たとえば、イーサリアムはマークル パトリシア ツリー (ケチャック ハッシュを使用) を使用しますが、一部のタイプ 2 ZK-EVM はスパース マークル ツリー (ポセイドン ハッシュを使用) を選択します。状態ツリーを変更すると、互換性がなくなる可能性があります。たとえば、イーサリアムのマークル ツリーにはさまざまなノード タイプがあり、RLP を使用してデータをエンコードしますが、これを ZK で行うのは困難です。 ※ブロック構造:ブロックには大量の情報が含まれています。ただし、L2 を調査するときは、ution_payload_header (つまり、ブロック ハッシュ) のみを考慮します。下の画像には、ution_payload_header に含まれるすべてのデータの構造 (ブロック ハッシュ) があります。

!【Type1からType4まで、ZK-EVMの各タイプの違いは何ですか? ](https://img-cdn.gateio.im/resize-social/moments-7f230462a9-9aaddaf79c-dd1a6f-6d2ef1)

**注意: これらのコンポーネントのいずれかを変更すると、イーサリアムの同等性が失われます。 **

!【Type1からType4まで、ZK-EVMの各タイプの違いは何ですか? ](https://img-cdn.gateio.im/resize-social/moments-7f230462a9-96c9b804b2-dd1a6f-6d2ef1)

タイプ 2.5: ガスコストを考慮した EVM と同等

タイプ 2.5 ZK-EVM は、EVM で ZK テクノロジーを使用して証明することが難しい特定の操作のガスコストを増加させます。

イーサリアムのブロックあたりのガス制限 (30 M ガス) を考慮すると、オペコードあたりのガスコストが増加すると、ブロックあたりのオペコードが少なくなります。したがって、それほど複雑でないオペコードをブロックに含めることができます。オペコードが単純になると、回路が小さくなり、証明をより速く生成できるようになります。

※ガスは仕事の単位です。

  • オペコードの価格はガスで計算されます。
  • オペコードは機械語命令内の操作を指定します。
  • プログラムはオペコードの静的なリストです。プログラムの実行は実行トレースです。
  • 実行トレースは、プログラムによって実行されるオペコードの特定の順序付きリストです。

ZK を証明するのが難しい部分には以下が含まれます:

  • Keccak オペコードと Keccak に依存するその他のオペコード。
  • プリコンパイル済み: EVM にアクセスできる関数。それらの中には、暗号関数 (blake 2 f や sha 256 など) など、複雑なタスクや数学的に複雑なタスクを提供するものもあります。これらは EVM 内で実行されるのではなく、実行クライアントにハードコードされた関数として実行され、特別なアドレスへの CALL を使用して EVM に公開されます。
  • メモリ アクセス: 例: メモリ スロット サイズの増加 (例: Ethereum はバイト アラインメントされたメモリを使用しますが、Polygon zkEVM は 32 バイトのメモリ スロットを使用します)。この変更を可能にするには、特定のオペコード (MLOAD など) の内部ロジックを変更する必要がありました。
  • ストレージ (つまり、上記のハッシュ関数または状態ツリーの変更)。

ガスコストを変更すると、開発者ツールの互換性が低下し、一部の dApp が機能しなくなる可能性があります。たとえば、ガスコストが増加するオペコードを頻繁に実行するスマート コントラクトは、ブロック ガス制限を超えて実行に失敗する可能性があります。

タイプ 3: EVM とほぼ同等

タイプ 3 ZK-EVM は、ZK に適用されないプリコンパイルを省略し、メモリとストレージのアクセスを調整する場合があります。

削除されたプリコンパイル済みアプリに依存していた dApp は書き直す必要があります。まれに、タイプ 3 ZK-EVM と元の EVM によるエッジ ケースの処理方法の違いにより、dApp の調整が必要になる場合があります。

Type 4 (高級言語に相当)

タイプ 4 はすでに EVM から遠く離れています。

高級言語 (Solidity、Zinc など) で書かれたスマート コントラクトのソース コードは中間表現にコンパイルされ、ZK フレンドリーな仮想マシンに適したオペコードが生成されます。

  • この方法では、EVM 実行ステップごとに ZK 証明の生成が回避されるため、証明作業が大幅に軽減されます。 ※ コントラクトがコンパイルできたとしても、dApp が EVM 手書きバイトコードを使用している場合は、さらなる作業が必要です。 *タイプ 4 ZK-EVM には、デバッガーやトレーサーなどの独自の開発者ツール (オペコード レベルのみ) も必要です。

実行軌跡を証明する ZK 回路では、各ステップが制約を実装し、各ステップのコストはすべてのオペコードの合計になります。したがって、タイプ 4 ZK-EVM は、効率を最適化するために複雑なオペコードをできるだけ少なく使用するように設計されています。

カスタム オペコード (イーサリアムではカバーされていないオペコード) を使用すると、イーサリアムではデフォルトでは不可能な新機能を渡すことが可能になることに言及する価値があります。たとえば、アカウント抽象化機能を介して複数の呼び出しを実行したり、Argent のようなすぐに使用できるソリューションを使用してスマート コントラクト ウォレットを起動したりできます。

要約する

ZK-EVM のタイプによって、優先順位が異なる目標と特性が異なります。タイプ 1 はイーサリアムとの同等性に重点を置き、タイプ 4 は効率的なプルーフ生成を優先します。他のタイプはこれらの両極端の間にあり、多くのタイプ 2 および 3 ZK-EVM プロトコルはイーサリアム同等のものに移行する意向を発表しています。

これら 4 種類の分類は ZK ロールアップの最終状態ではない可能性があり、将来さらに変更される可能性があります。たとえば、一部の ZK-EVM はハイブリッドになる可能性があり、タイプ 1/2 はタイプ 4 ソリューション (可能な限り最高の効率) を開発し、両方のオプションを備えた dApp を提供する可能性がありますが、タイプ 3 および 4 の ZK-EVM にはイーサリアム同等のオプションが追加される可能性があります。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)