EVMとは
EVM(Ethereum Virtual Machine)とは、Ethereumネットワーク上でスマートコントラクトを実行するための仮想マシンのこと。
Solidityなどの高級言語で書かれたスマートコントラクトは、EVMバイトコードにコンパイルされ、ブロックチェーン上にデプロイされる。トランザクションが発生すると、ネットワーク上のすべてのノードが同じバイトコードを同じ入力で実行し、同じ結果を得る。この決定論的な実行が、分散環境での合意形成を可能にしている。
特徴
サンドボックス環境
EVMはホストマシンのファイルシステムやネットワークから完全に隔離された環境で動作する。コントラクトがアクセスできるのは、ブロックチェーンの状態(ストレージ、残高、他のコントラクト)のみ。
ガス
EVMでの命令実行にはガスと呼ばれるコストが発生する。各オペコード(加算、ストレージ書き込みなど)にガスコストが定められており、トランザクション送信者がガス代をETHで支払う。これにより無限ループのような計算資源の濫用を防いでいる。
スタックベースのアーキテクチャ
EVMはスタックマシンとして設計されている。256ビット幅のスタックを持ち、PUSH、POP、ADD、STOREといったオペコードを逐次実行する。スタックの最大深度は1,024。
EVM互換チェーン
Ethereumと同じEVM仕様を採用することで、Ethereum向けに書かれたスマートコントラクトやツールをそのまま利用できるブロックチェーンが多数存在する。
- Polygon: Ethereumのサイドチェーン / Layer 2。低手数料で高速な処理を実現
- Avalanche(C-Chain): 独自のコンセンサスメカニズムを持ちながら、EVM互換の実行環境を提供
- BNB Chain: Binanceが主導するチェーン。EVM互換でDeFiエコシステムが発達している
- Base: Coinbaseが主導するEthereum Layer 2。OP Stackを基盤としている
- Arbitrum / Optimism: EthereumのOptimistic Rollup系Layer 2
EVM互換であることにより、開発者はSolidityやethers.js、Foundryといった既存のツールチェーンをチェーンをまたいで使い回せる。
EVMと非EVMチェーン
すべてのブロックチェーンがEVMを採用しているわけではない。
- Solana: 独自のランタイム(SVM)を使用。Rust / C での開発が主流
- Sui / Aptos: Move言語による独自の実行環境
- Cosmos: CosmWasm(Wasm系)などの実行環境を採用するチェーンが多い
非EVMチェーンはEVMの設計上の制約(スタックマシン、256ビット固定幅など)を回避できる一方、Ethereumエコシステムのツールやコントラクト資産を直接利用できないというトレードオフがある。