zkEVM の進化:Ethereum スケーリングにおける互換性とパフォーマンスのバランス
2022 年、ヴィタリック・ブテリンは、その後の 4 年間のイーサリアムのスケーリングを決定づける単純な問いを投げかけました:より高速なゼロ知識証明のために、どれだけのイーサリアム互換性を犠牲にできるか? 彼の回答は、zkEVM の 5 つのタイプによる分類体系という形で示され、それ以来、これらの重要なスケーリング・ソリューションを評価するための業界標準となっています。
2026 年へと時を移すと、その答えはもはや単純ではありません。 証明時間は 16 分から 16 秒へと激減しました。 コストは 45 倍低下しました。 複数のチームが、イーサリアムの 12 秒のブロック時間よりも速い、リアルタイムの証明生成を実証しています。 しかし、ヴィタリックが指摘した根本的なトレードオフは依然として残っており、それを理解することは、構築先を選択するすべての開発者やプロジェクトにとって不可欠です。
ヴィタリックによる分類:タイプ 1 からタイプ 4 まで
ヴィタリックのフレームワークは、zkEVM を完全なイーサリアム等価から、証明効率の最大化までのスペクトラムに沿って分類します。 タイプの数字が大きくなるほど、証明は高速になりますが、既存のイーサリアム・インフラとの互換性は低くなります。
タイプ 1:完全なイーサリアム等価
タイプ 1 の zkEVM は、イーサリアムについて何も変更しません。 イーサリアム L1 が使用するものと全く同じ実行環境(同じオプコード、同じデータ構造、すべて同じもの)を証明します。
メリット:完璧な互換性。 イーサリアムの実行クライアントがそのまま動作します。 すべてのツール、すべてのコントラクト、すべてのインフラが直接移行可能です。 これは、最終的にイーサリアムが L1 自体をよりスケーラブルにするために必要としているものです。
デメリット:イーサリアムはゼロ知識証明のために設計されたものではありま せん。 EVM のスタックベースのアーキテクチャは、ZK 証明の生成において極めて非効率であることで知られています。 初期のタイプ 1 の実装では、1 つの証明を生成するのに数時間を要しました。
主要プロジェクト:Taiko は、イーサリアムのバリデータを使用してシーケンシングを行うベースド・ロールアップ(Based Rollup)としてタイプ 1 の等価性を目指しており、他のベースド・ロールアップとの同期的コンポーザビリティを可能にします。
タイプ 2:完全な EVM 等価
タイプ 2 の zkEVM は完全な EVM 互換性を維持しますが、証明の生成を改善するために、ステートの保存方法やデータ構造の構成といった内部表現を変更します。
メリット:イーサリアム向けに書かれたコントラクトは、修正なしで動作します。 開発者体験は同一のままであり、移行の摩擦はゼロに近づきます。
デメリット:ブロックエクスプローラーやデバッグツールに修正が必要になる場合があります。 ステート証明の仕組みがイーサリアム L1 とは異なります。
主要プロジェクト:Scroll と Linea はタイプ 2 の互換性を目標としており、トランスパイラやカスタムコンパイラを使用せずに、VM レベルでほぼ完璧な EVM 等価性を実現しています。
タイプ 2.5:ガス代が変更された EVM 等価
タイプ 2.5 は現実的な妥協案です。 zkEVM は EVM 互換を維持しますが、ゼロ知識証明において特にコストのかかる操作のガス代を引き上げます。
トレードオフ:イーサリアムにはブロックごとのガスリミットがあるため、特定のオプコードのガス代を上げることは、1 ブロックあたりに実行できるそれらのオプコードが少なくなることを意味します。 アプリケーションは動作しますが、特定の計算パターンは法外に高価になります。
タイプ 3:ほぼ EVM 等価
タイプ 3 の zkEVM は、証明の生成を劇的に向上させるために、特定の EVM 機能(多くの場合、プリコンパイル、メモリ処理、またはコントラクトコードの処理方法に関連するもの)を犠牲にします。
メリット:証明の高速化、低コスト、パフォーマンスの向上。
デメリット:一部のイーサリアム・アプリケーションは、修正なしでは動作しません。 開発者は、サポートされていない機能に依存するコントラクトを書き直す必要があるかもしれません。
現実的な状況:実際には、どのチームもタイプ 3 に留まることを望んでいません。 これは、タイプ 2.5 またはタイプ 2 に到達するために必要な複雑なプリコンパイルのサポートを追加するまでの、移行段階であると理解されています。 Scroll と Polygon zkEVM はどちらも、互換性の階段を上る前にタイプ 3 として運用されていました。
タイプ 4:高級言語互換
タイプ 4 のシステムは、バイトコードレベルでの EVM 互換性を完全に放棄します。 その代わりに、Solidity や Vyper を、効率的な ZK 証明のために特別に設計されたカスタム VM にコンパイルします。
メリット:最も高速な証明生成。 最低のコスト。 最大のパフォーマンス。
デメリット:コントラクトの挙動が異なる場合があります。 アドレスがイーサリアムのデプロイメントと一致しない可能性があります。 デバッグツールは完全に書き直す必要があります。 移行には慎重なテストが必要です。
主要プロジェクト:zkSync Era と StarkNet はタイプ 4 のアプローチを代表しています。 zkSync は Solidity を ZK に最適化されたカスタムバイトコードに変換(トランスパイル)します。 StarkNet は、証明可能性のために設計された全く新しい言語である Cairo を使用します。