EVM(イーサリアム仮想マシン)
イーサリアム仮想マシン(EVM)は、イーサリアム・ブロックチェーン上でスマート・コントラクトを実行するチューリングの完全なスタックベースの仮想マシンです。
EVMは、Ethereumにおけるスマートコントラクトのランタイム環境です。これはサンドボックス化された環境であり、EVM内で実行されるコードは、ネットワーク、ファイルシステム、またはホストマシンの他のプロセスに直接アクセスできません。この設計はセキュリティにとって重要であり、悪意のあるスマートコントラクトが広範囲な損害を引き起こすのを防ぎます。EVMはスタックベースのアーキテクチャで動作し、バイトコード命令を実行します。すべてのEthereumノードはEVMのインスタンスを実行し、スマートコントラクトを含む各トランザクション後にすべてのノードがブロックチェーンの状態に同意するようにします。このコンセンサスメカニズムは、Ethereumの運用に不可欠です。
EVMの設計により、任意のコードを実行できるため、Ethereumはプログラム可能なブロックチェーンになります。開発者は、Solidityなどの高水準言語でスマートコントラクトを記述し、EVMバイトコードにコンパイルします。EVMが実行するのはこのバイトコードです。EVMは、アカウント残高、コントラクトコード、ストレージなど、Ethereumの状態も管理します。Gasは、スマートコントラクトで使用される計算およびストレージリソースの支払いに使用され、サービス拒否攻撃を防ぎます。
graph LR
Center["EVM(イーサリアム仮想マシン)"]:::main
Pre_cryptography["cryptography"]:::pre --> Center
click Pre_cryptography "/terms/cryptography"
Rel_smart_contracts["smart-contracts"]:::related -.-> Center
click Rel_smart_contracts "/terms/smart-contracts"
Rel_solidity["solidity"]:::related -.-> Center
click Rel_solidity "/terms/solidity"
Rel_zkevm_zero_knowledge_ethereum_virtual_machine["zkevm-zero-knowledge-ethereum-virtual-machine"]:::related -.-> Center
click Rel_zkevm_zero_knowledge_ethereum_virtual_machine "/terms/zkevm-zero-knowledge-ethereum-virtual-machine"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 理解度チェック
🧒 5歳でもわかるように説明
イーサリアムのコンピューターの中にあるエンジンみたいなものです。スマートコントラクトから特別な指示(バイトコード)を読み取って、シェフがレシピ通りに一つずつ料理を作るように、その指示を実行します。各ステップには少しだけ「ガス」というお金がかかります。これは、料理がいつまでも終わらないようにするためです。
🤓 Expert Deep Dive
Ethereum Virtual Machine(EVM)は、スマートコントラクトのために設計された、決定論的でスタックベースの実行環境です。その中核的な機能は、Ethereumネットワーク全体でトランザクション呼び出しと状態遷移を処理することです。EVMの仕様では、一連のオペコード、256ビットのワードサイズ、そして計算処理を計測するためのガススケジューリングメカニズムが定義されています。決定論は極めて重要であり、同じ初期状態を持つ同じバイトコードを実行するすべてのノードは、同一の最終状態に到達しなければなりません。これは、EVMの状態遷移関数への厳格な準拠によって達成されます。ガスメカニズムは、リソースの乱用を防ぐ一方で、経済的な制約を導入し、特にトランザクションコストとスループットの制限に関して、dAppの設計とユーザーエクスペリエンスに大きな影響を与えます。アーキテクチャ上のトレードオフには、複雑な計算に対するスタックベースアーキテクチャの固有の限界や、スマートコントラクト実行におけるガス効率の最適化の課題が含まれます。EVMの設計上の選択は、その後のブロックチェーン仮想マシン設計に影響を与えてきましたが、同時に、より高いパフォーマンスと低いトランザクション手数料を求める継続的な探求を浮き彫りにし、Layer 2ソリューションや代替実行環境のようなイノベーションにつながっています。