L1ブロック検証のためのzkEVM
zkEVMは、ゼロ知識証明を使用してイーサリアムのブロック実行を検証する技術です。すべてのにブロック内のすべてのトランザクションを再実行させる代わりに、「プルーバー(証明者)」と呼ばれる単一の専門アクターがブロックを実行し、実行が正しかったことを示す暗号の証明を生成します。その後、任意のノードがこの証明を検証できます。このプロセスは、すべてのトランザクションを再実行するよりも桁違いに安価です。
zkEVMロールアップと混同しないように注意
再実行の問題
現在、イーサリアムは「N-of-N」検証モデルを使用しています。すべてのバリデータは、提案された状態の変更が正しいことを検証するために、すべてのブロック内のすべてのトランザクションを独立して再実行する必要があります。このアプローチは最大限にトラストレスですが、根本的なボトルネックを生み出します。
問題は、イーサリアムのスループットが平均的なバリデータが処理できる量に制限されていることです。を引き上げれば、ブロックあたりのトランザクション数を増やすことができますが、バリデータのハードウェア要件も高くなります。これは分散化を脅かします。バリデータを実行するために高価なハードウェアが必要になれば、ネットワークの保護に参加できる人が減ってしまいます。
zkEVMは、このトレードオフからの脱却方法を提供します。「全員が再実行する」から「1人が証明し、全員が検証する」に移行することで、イーサリアムはバリデータのハードウェア要件を引き上げることなく、安全にガスリミットを引き上げることができます。
zkEVM L1検証の仕組み
zkEVM検証は、ブロックの検証を「1-of-N」モデルに変換します。
- 実行: プルーバーがブロック内のすべてのトランザクションを実行し、すべての状態の変更を追跡します。
- 証明: プルーバーは、実行の正確性を証明する暗号の証明(SNARKまたはSTARK)を生成します。
- 検証: バリデータはトランザクションを再実行する代わりに証明を検証します。これは完全な再実行よりも劇的に安価です。
セキュリティの保証は変わりません。実行が間違っていれば、有効な証明は生成されません。しかし現在では、すべてのノードが高価な計算を行う代わりに、プルーバーだけが計算を行います。そして、検証はガスリミットを制限しないほど十分に安価です。
タイプ1 zkEVM
zkEVMは、イーサリアムとの互換性に基づいていくつかのタイプに分類されます。
- タイプ1: 完全にイーサリアムと同等。EVMに変更を加えないため、任意のイーサリアムブロックをそのまま正確に証明できます。
- タイプ2〜4: 証明を容易にするためにEVMの動作を変更し、さまざまなトレードオフを行います。
L1検証には、タイプ1が不可欠です。zkEVMは、エッジケースや過去のブロックを含む、任意の有効なイーサリアムブロックを証明できなければなりません。イーサリアムの正確な動作から少しでも逸脱すると、コンセンサスの問題が発生します。
イーサリアム財団のzkEVM研究は、既存のイーサリアム実行と完全に互換性のあるタイプ1の実装に焦点を当てています。
イーサリアムにとっての利点
より高いスループット
検証が安価になれば、ガスリミットを安全に引き上げることができます。これによりネットワークの容量が拡大し、需要が高い時期の料金の安定化に役立ちます。現在のガスリミットは、部分的にバリデータのハードウェアによって制限されていますが、zkEVMはこの制限を取り除きます。
より強力な分散化
zkEVM検証により、バリデータはトランザクションを実行するのではなく、証明を検証するだけで済みます。これにより、バリデータを実行するためのハードウェア要件が劇的に低下し、より多くの人がネットワークの保護に参加できるようになります。バリデータの多様性が高まることで、イーサリアムの検閲耐性と回復力が強化されます。
証明自体には、現在のバリデータのハードウェアよりも大きな計算リソースが必要であることに注意してください。しかし、検証とは異なり、証明は同じように分散化される必要はありません。ブロックごとに1つの正しい証明があれば十分であり、誰でもそれを迅速に検証できます。プルーバー市場、証明の集約、ハードウェアアクセラレーションに関する研究は、証明が少数の大規模なオペレーターに集中するのではなく、競争力がありアクセスしやすい状態を維持することを目的としています。
予測可能なファイナリティ
証明の検証は、ブロックの複雑さに関係なく一定の時間で動作します。これにより、アテステーションのタイミングがより予測可能になり、バリデータが複雑なブロックを時間内に処理するのに苦労したときに発生する可能性のあるアテステーションの失敗を減らすことができます。
リアルタイム証明の課題
zkEVM L1検証の主な課題は速度です。イーサリアムのブロックは12秒ごとに生成されるため、コンセンサスに役立つためには、証明も同様の期間内に生成される必要があります。
現在のzkEVM実装では、単一のブロックを証明するのに数分から数時間かかる場合があります。研究は、以下の方法でこのギャップを埋めることに焦点を当てています。
- 並列化: 証明作業を複数のマシンに分散させる
- 専用ハードウェア: ZK証明に最適化された回路とハードウェアの設計
- アルゴリズムの改善: より効率的な証明システムと回路設計
- インクリメンタル証明: トランザクションの実行後ではなく、実行中に証明を生成する
現在の研究と実装
イーサリアム財団は、Privacy Stewards of Ethereum (PSE) (opens in a new tab)チームを通じてzkEVMの研究に資金を提供しています。主な研究分野は以下の通りです。
- リアルタイム証明: 12秒のスロット内で完全なブロック証明を生成する
- クライアント統合: 実行クライアントとプルーバー間のインターフェースを標準化する
- 経済的インセンティブ: 持続可能なプルーバー市場と手数料構造を設計する
実装状況
イーサリアムのブロック証明のために、いくつかのzkVM実装が開発およびテストされています。
| Implementation | Architecture |
|---|---|
| OpenVM (opens in a new tab) | rv32im |
| RISC Zero (opens in a new tab) | rv32im |
| Airbender (opens in a new tab) | rv32im |
| Jolt (opens in a new tab) | rv32im |
| Zisk (opens in a new tab) | rv64ima |
これらはRISC-Vベースの仮想マシンを使用してEVMバイトコードを実行し、正しい実行のZK証明を生成します。最新のテスト結果と進捗状況は、イーサリアム財団のzkVMトラッカー (opens in a new tab)で追跡されています。
zkEVMと他のアップグレードとの関連性
zkEVM L1検証は、他のいくつかのイーサリアムロードマップの項目と関連しています。
- Verkle Trees: ステートレス検証のためのより小さなウィットネスを可能にし、プルーバーが処理する必要のあるデータを削減します。
- ステートレスネス: zkEVMは重要な実現要因です。実行のZK証明があれば、ノードはブロックを検証するために完全な状態を必要としません。
- PBS: ブロックビルダーが証明の生成を統合する可能性や、独立したプルーバー市場が出現する可能性があります。
- 単一スロットファイナリティ: 証明の生成が高速化されれば、暗号の保証を伴う単一スロットファイナリティが可能になるかもしれません。
参考文献
- zkEVM Foundation (opens in a new tab) - イーサリアム財団の公式zkEVM研究ハブ
- Ethproofs (opens in a new tab) - イーサリアムをリアルタイムで証明する競争を追跡
- zkevm.fyi (opens in a new tab) - L1向けzkEVMに関する技術書
- PSE zkEVM Specs (opens in a new tab) - 技術仕様
- The Verge (opens in a new tab) - ヴィタリックによる検証改善の概要
- EF zkEVM Blog (opens in a new tab) - EFチームによるパフォーマンス分析