MENU

EVMとは|Ethereumを動かすチューリング完全な仮想マシン

EVM アイキャッチ
EVM

EVM(Ethereum Virtual Machine)は、Gavin Woodが2014年のYellow Paperで形式定義した、Ethereumのスマートコントラクトを実行する仮想マシンです。256ビット幅のスタックマシンとして設計され、SHA-3、楕円曲線、簡素な算術命令を組み合わせた約140種類のオペコードでチューリング完全な計算を行います。全ノードが同じバイトコードを同じ入力で実行すると必ず同じ結果(決定的実行)が得られるよう精密に仕様化されており、これがEthereumの分散合意の基礎を支えています。現在ではPolygon、BNB Chain、Avalanche C-Chain、Arbitrum、Optimism、BaseなどEVM互換チェーンが多数存在し、ブロックチェーンの実行環境として事実上の標準となっています。

目次

この記事の目次

  1. EVMの設計思想
  2. ガスとオペコード
  3. EVM互換チェーンの広がり
  4. EVMの限界と将来
  5. まとめ

EVMの設計思想

EVMの設計思想

Ethereumの構想初期、Gavin Woodは「ブロックチェーンに任意のプログラムを安全に実行させる」という難題に向き合いました。ハードウェアが多様な世界各地のノードでも結果が一致する必要があり、システムコール、浮動小数点演算、ランダム性、時刻取得といった「非決定的になりうる要素」を排除する必要があったためです。彼はx86やARMのような既存CPUを採用せず、独自に256ビットスタックマシンを設計し、2014年のYellow Paperで命令セットと状態遷移関数を数学的に厳密に定義しました。

256ビット幅という選択は、KeccakハッシュやECDSA署名と相性が良く、暗号演算の効率を最大化する設計です。スタック深度は最大1024、メモリは1バイト単位でアクセス可能、ストレージは32バイトのキー・バリュー、コードは読み取り専用といったシンプルな抽象化により、EVMはあらゆる計算を表現できるチューリング完全性と、分散環境での再現性・検証可能性を両立しています。Yellow Paperはその後10年近く改訂が続けられ、ブロックチェーン実行環境のリファレンスドキュメントとなっています。

ガスとオペコード

ガスとオペコード

EVMの大きな特徴がガス(Gas)です。命令ごとに固定または可変のガスコストが設定されており、ADD(3 gas)、SSTORE(最大22,100 gas)、CALL(700 gas + データコピーコスト)、SHA3(30 + 6 * wordsize)など、計算量に応じて消費されます。ユーザーはトランザクション送信時にgasLimitとmaxFeePerGasを指定し、実際の消費分のみが支払われる仕組みで、無限ループや過剰計算を経済的に防ぐ設計です。

オペコードは約140種類で、PUSH/POP/DUP/SWAPなどスタック操作、ADD/MUL/SUB/DIVなど算術、AND/OR/XORなど論理、SHA3、CALLDATALOAD、SSTORE/SLOAD、CALL/STATICCALL/DELEGATECALLなど外部呼び出しがあります。2019年のIstanbulハードフォークでSSTOREのコスト体系見直し(EIP-2200)、2021年のLondonハードフォークでEIP-1559によるベースフィー導入、2024年のCancun-DenebでBLOBHASHなどのプロト-Danksharding関連命令の追加が行われ、EVM自体も時代に合わせて進化を続けています。

EVM互換チェーンの広がり

EVM互換チェーンの広がり

EVMはEthereum本体だけでなく、多くの代替チェーンに採用されています。Polygon PoS、BNB Chain、Avalanche C-Chain、Fantom、Cronos、Celoといった独立チェーンは、いずれもEVMを核に持つことで、Solidityで書かれたコントラクトとMetaMaskなどのウォレットがそのまま使えるエコシステム互換性を確保しています。Optimism、Arbitrum、Base、Polygon zkEVM、zkSync Era、Linea、ScrollといったレイヤL2もすべてEVM互換で、Ethereumメインネットとの開発体験の連続性を維持しています。

EVMの互換性は、「EVM equivalence(完全互換)」と「EVM compatibility(部分互換)」の2段階に整理されることが多いです。Optimism、Arbitrum、BaseはBytecode levelでの完全互換を志向し、既存のEthereumコントラクトを無改修で動かせます。一方、初期のzkSyncやStarknetは独自命令セットを採用していましたが、開発者体験の改善要求からEVM互換に近づける方向に進化しています。ブロックチェーン界で「EVMが業界標準」になった意味は大きく、開発者・ツール・コミュニティの再利用が成立する基盤となっています。

EVMの限界と将来

EVMの限界と将来

EVMには、その単純さゆえの限界も存在します。並列実行が想定されていないため、トランザクションは順次処理され、TPSが頭打ちになりやすい問題があります。SolanaのSealevelやAptosのBlock-STM、SuiのMoveなど並列実行を前提とした非EVM環境と比較すると、生のスループットでは差を付けられる場面もあります。また、256ビット幅の演算は暗号には強くても、汎用計算ではオーバーヘッドが大きいケースもあります。

対応として、Ethereumコミュニティではいくつかの方向で改善が進められています。EVMオブジェクトフォーマット(EOF、EIP-3540など)はバイトコードの構造化と検証強化を進めるアップグレード群で、近い将来導入予定です。Arbitrum Stylusのように、RustやC++で書いたコントラクトをWASMで実行する「EVMとの共存」アプローチも登場しています。ZK-EVMの分野ではzkSync Era、Polygon zkEVM、Scroll、Lineaなどが激しく競争しており、暗号証明によるEVM実行の正しさをオフチェーンで検証する技術が現実のものとなりつつあります。EVMは今後も拡張と並走の両軸で進化していくと予想されます。

まとめ

EVMは、Gavin Woodが2014年のYellow Paperで形式定義した、ブロックチェーンの決定的実行を可能にする中核仮想マシンです。256ビットスタック、ガスによる計量、シンプルな命令セットという設計が、Solidity、Web3エコシステム、多数のEVM互換チェーンの繁栄を支え、ブロックチェーン実行環境の事実上の標準として今後も進化し続けるでしょう。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次