L'Ethereum Virtual Machine est l'ordinateur déterministe qui exécute le bytecode des smart contracts. Elle définit un jeu d'instructions à pile, une taille de mot de 256 bits, un layout de stockage persistant, et les coûts en gas de chaque opération.
L'EVM est implémentée à l'identique sur chaque node Ethereum, ce qui maintient l'état cohérent à travers le réseau. Elle est aussi implémentée (parfois avec des différences subtiles) par chaque chaîne « EVM-compatible », BNB Chain, Polygon, Avalanche C-chain, Base, Arbitrum, Optimism, et des dizaines d'autres.
En sécurité, la compatibilité EVM est rarement exacte. Différences d'adresses de pré-compiles, calendriers d'introduction d'opcodes, pricing du gas, hypothèses de finalité, tout ça a causé des incidents en déploiement multi-chaînes. Le code qui « devrait marcher sur toute chaîne EVM » doit quand même être testé sur chaque chaîne EVM.