Définition
EVM : définition
Aussi appelé : Ethereum Virtual Machine
L'EVM (Ethereum Virtual Machine) est la machine virtuelle qui exécute le code des smart contracts sur Ethereum ; de nombreuses autres blockchains l'ont adoptée, ce qui permet de réutiliser les mêmes contrats et outils.
Thème : Ethereum et smart contracts
Un smart contract est écrit dans un langage de haut niveau, le plus souvent Solidity ou Vyper, puis compilé en bytecode, une suite d'instructions élémentaires appelées opcodes. L'EVM est le programme qui interprète ce bytecode. Chaque nœud du réseau l'exécute de la même manière, ce qui garantit que tous obtiennent exactement le même résultat et s'accordent sur le nouvel état de la blockchain.
Chaque opcode a un coût exprimé en gas, ce qui empêche les boucles infinies et fait payer les calculs à celui qui les déclenche. L'EVM fonctionne avec une pile, une mémoire temporaire et un stockage permanent propre à chaque contrat. Elle est isolée du reste de la machine : un contrat ne peut ni accéder à internet ni lire des fichiers, d'où le besoin d'oracles pour les données externes. De nombreux réseaux se disent compatibles EVM : rollups, sidechains ou autres blockchains de première couche. Un développeur peut y déployer le même code, et un utilisateur y employer le même portefeuille et le même format d'adresse.
Un exemple concret
Imaginons que Pauline développe un contrat de vote en Solidity. Une fois compilé, son bytecode peut être déployé sur Ethereum, mais aussi sur un rollup compatible EVM où les frais sont plus bas. Dans les deux cas, ses utilisateurs se connectent avec le même portefeuille et le contrat se comporte de la même façon.
Les risques à connaître
Compatible EVM ne signifie pas aussi sûr qu'Ethereum : la sécurité dépend du réseau qui exécute la machine. Une même adresse peut correspondre à des contrats différents selon la chaîne, et envoyer des fonds sur le mauvais réseau peut les rendre difficiles à récupérer.
Questions fréquentes sur EVM
Que signifie compatible EVM ?
Cela signifie que le réseau exécute le même bytecode qu'Ethereum : les contrats, portefeuilles et outils conçus pour Ethereum y fonctionnent avec peu ou pas de modifications.
Pourquoi l'EVM utilise-t-elle du gas ?
Le gas mesure la quantité de calcul consommée par chaque instruction. Il permet de facturer l'exécution et d'empêcher qu'un programme monopolise le réseau indéfiniment.