FABRKNT
Reth Fundamentals — Alloy で動かす最初の一歩
EVM の中身を覗く
レッスン 9 / 11·CONTENT12 分25 XP
コース
Reth Fundamentals — Alloy で動かす最初の一歩
レッスンの役割
CONTENT
順序
9 / 11

レッスン9 — Revmという「実行エンジン」

問い

Revm = Rust 製の EVM 実行エンジン。Reth、Foundry、Hyperliquid、Tempo、Berachain — Rust エコシステムで「EVM を実行する」必要がある場所すべてが Revm を使う。なぜ Revm か、ライブラリとして何を提供するか?

原理(最小モデル)

  • Revm はライブラリ. チェーンでもノードでもない、EVM の実行エンジン のみ、Reth が状態 + コンセンサスを足し、Foundry がテストハーネスを足す。
  • モジュラー設計. インタープリター / 命令テーブル / Database トレイト / Inspector がそれぞれ独立、差し替え可能 = Hyperliquid がカスタム precompile を足したり、MEV ボットが Inspector で観測したり。
  • Database トレイト. state を供給する抽象、HashMap(テスト)/ JSON-RPC(メインネットフォーク)/ MDBX(本番)全部同じトレイトで動く。
  • Foundry / Reth / OP-Reth / zkVM / MEV ボット採用. Rust EVM が必要な場所すべてが Revm を使う、エコシステムの共通基盤。
  • Inside Revm コース(中級). add Opcode / 命令テーブル / Database trait を 1 行ずつ歩く深掘り、本レッスンはその入口。

具体例 + ステップで組み立てる

Revmという「実行エンジン」

ここまででAlloy(外側のRPC)と、EVMがスタックマシンであることを学んだ。次の主役は Revm、実際にOpcodeを実行する エンジン そのものである。

Revmの位置づけ

+----------------+
|     Reth       |  ← フルノード(同期・保存・コンセンサス)
+----------------+
|     Revm       |  ← 実行エンジン(このレイヤーをこれから学ぶ)
+----------------+
| Database / DB  |  ← 状態(Trie、KVS)
+----------------+

Revmの本物の高レベルAPI

Revmは以下を公開(crates/revm/src/lib.rs):

役割
MainnetEvm事前構築されたEthereumメインネットEVM
ExecuteEvm, ExecuteCommitEvmトランザクション実行(commit = 状態変更も書き戻し)
SystemCallEvmシステムレベル呼び出し(例:Cancun以降のBEACONROOT)
InspectEvm, InspectCommitEvmトレース版 — 同じ実行、フック付き
Context実行環境(block、tx、cfg)
Journal, JournalEntry状態変更追跡(revert用)
Database, DatabaseRef, DatabaseCommitストレージインターフェース(中級で扱う)
Inspector実行にフックするトレイト

要点:Revmは 設計からしてモジュラーExecuteEvmInspectEvmExecuteCommitEvm は別のEVMではなく、同じエンジンを異なるレイヤーで組み合わせた もの。必要なものだけ選ぶ

Revmが提供するもの

  • EVM 命令の解釈(Interpreter)
  • 状態アクセスのトレイトDatabase
  • ガス計算と例外処理
  • ログとトレース (Inspector経由)

なぜRevmが「業界標準」になったのか

採用先役割
FoundrySolidityのテストランナー・フォークシミュレーション
Rethフルノードの実行エンジン
OP-Reth / TempoL2やApp-chainの基盤
zkVM(Risc0等)証明可能なEVM実行
MEV/シミュレーション1msでも速く取引を再現したい場面

「ライブラリ利用しやすい」「Rustで組み込みやすい」「カスタマイズ容易」という3点が、ほぼ独占を生んだ理由である。

次のステップ

Revmは「動かすための部品」が分かれば、コードを読み始められる。次のレッスン で Foundry(日常的に使う Rust EVM ツールチェイン)を扱い、その後 中級 ティアで Interpreter フォルダに入る。

📺 関連動画

xRuDWTWuxKA | Dragan Rakita — Revm Endgame (Devcon SEA 2024)

まとめ(3行)

  • Revm = Rust 製 EVM 実行エンジン(ライブラリ)、Reth / Foundry / Hyperliquid / Tempo / Berachain 等が共通基盤として採用。
  • モジュラー設計(インタープリター / 命令テーブル / Database / Inspector 独立)、Database トレイトで HashMap / JSON-RPC / MDBX を同じ trait で扱う。
  • 中級 Inside Revm コースで内部を深掘り、次は Foundry ツールチェイン紹介で Solidity 側の手触り。