Définition
La machine virtuelle Ethereum (EVM) définit la manière dont les instructions exécutables des contrats modifient l’état d’Ethereum. Son modèle de calcul commun permet aux nœuds d’obtenir des résultats identiques avec les mêmes entrées valides et les mêmes règles du protocole. Il s’agit d’un environnement logique d’exécution, et non d’un ordinateur physique unique.
Fonctionnement
Les contrats rédigés dans un langage compatible sont compilés en bytecode exécuté par l’EVM. Les opérations consomment du gas, ce qui limite les calculs et facture les ressources utilisées. Une transaction peut appeler des fonctions, modifier le stockage ou déclencher des appels à d’autres contrats. En cas d’échec, de nombreuses modifications prévues sont annulées, mais des frais peuvent tout de même être prélevés.
Usages et limites
La compatibilité EVM facilite la réutilisation des outils entre réseaux sans les rendre identiques. Les versions du protocole, instructions, frais et hypothèses de sécurité peuvent différer. L’EVM ne peut pas non plus établir seule la véracité d’événements externes ; les applications utilisent généralement des oracles. Un contrat qui s’exécute correctement peut néanmoins présenter une logique erronée, des autorisations dangereuses ou des interactions exploitables.