Skip to main content

Qu'est-ce que l'EVM

Remarque : Ce document est une traduction automatique de la version originale anglaise.

Qu'est-ce que l'EVM

L'EVM (Ethereum Virtual Machine, machine virtuelle Ethereum) est le moteur de calcul qui alimente Ethereum et un grand nombre d'autres blockchains. C'est l'environnement logiciel qui exécute les contrats intelligents — des programmes auto-exécutoires stockés sur la blockchain. Lorsqu'un développeur écrit un contrat intelligent en Solidity (ou dans un autre langage compatible EVM), le compile et le déploie sur une chaîne, c'est l'EVM qui exécute réellement ce code.

Chaque nœud d'un réseau compatible EVM exécute la même machine virtuelle avec les mêmes règles. C'est ce qui rend les contrats intelligents déterministes : avec les mêmes entrées et le même état, chaque nœud produit la même sortie. Il n'y a aucune ambiguïté, aucun problème de type « ça marche sur ma machine ». L'EVM garantit que chaque participant du réseau s'accorde sur le résultat de chaque calcul.

En bref : l'EVM est le moteur d'exécution standardisé des contrats intelligents sur Ethereum et les chaînes compatibles EVM. Il définit comment le code s'exécute, comment l'état est stocké et comment le gas est consommé — créant un environnement d'exécution commun qui fonctionne de manière identique sur tous les nœuds.

Comment fonctionne l'EVM

L'exécution du bytecode

Les contrats intelligents ne sont pas stockés on-chain sous forme de code source lisible par l'humain. Avant le déploiement, le code source (généralement écrit en Solidity) est compilé en bytecode — un ensemble d'instructions de bas niveau que l'EVM comprend. Chaque instruction est un opcode : une opération de base comme « additionner deux nombres », « stocker une valeur en mémoire », « charger des données depuis le stockage » ou « transférer des tokens ».

Lorsqu'une transaction déclenche un contrat intelligent, chaque nœud validateur du réseau :

  1. Charge le bytecode du contrat depuis l'état de la blockchain.
  2. Exécute les opcodes séquentiellement, en suivant la spécification de l'EVM.
  3. Met à jour l'état de la blockchain en fonction du résultat de l'exécution.
  4. Facture du gas pour chaque opcode exécuté.

Comme chaque nœud exécute le même bytecode avec les mêmes règles, tous arrivent au même résultat. Cette exécution déterministe est le fondement du calcul sans confiance requise on-chain.

Le gas

Chaque opcode a un coût en gas — une unité de mesure représentant l'effort de calcul requis pour exécuter cette instruction. Le gas remplit deux fonctions :

  • Mesure des ressources — le gas empêche les boucles infinies et garantit que chaque calcul consomme une quantité bornée de ressources réseau. Un contrat qui tente de s'exécuter indéfiniment épuisera sa limite de gas et sera annulé (revert).
  • Mécanisme de frais — les utilisateurs paient des frais de gas (libellés dans le token natif de la chaîne) pour rémunérer les validateurs qui exécutent leurs transactions. Les opérations plus complexes coûtent plus de gas.

Les coûts en gas sont définis par la spécification de l'EVM et sont les mêmes sur toutes les chaînes compatibles EVM (bien que le prix du gas dans le token natif varie selon le réseau).

État et stockage

L'EVM maintient un état global — une correspondance entre les adresses (comptes utilisateurs et comptes de contrats) et leurs soldes, leur code et leur stockage actuels. Le stockage des contrats intelligents est organisé comme un magasin clé-valeur : chaque contrat dispose de son propre espace d'adressage de 256 bits où il peut lire et écrire des données persistantes.

Les opérations de stockage (écriture et lecture de l'état persistant) comptent parmi les opérations EVM les plus coûteuses en gas, car elles affectent les données que chaque nœud doit stocker de manière permanente.

Une architecture à pile

L'EVM est une machine à pile : elle utilise une pile de type dernier entré, premier sorti pour conserver les valeurs intermédiaires pendant le calcul, plutôt que des registres nommés. Les opcodes empilent des valeurs, opèrent sur les éléments du sommet et empilent les résultats. Cette conception est simple et bien spécifiée, mais elle diffère des architectures à registres utilisées par la plupart des processeurs traditionnels et par certaines machines virtuelles blockchain plus récentes (comme le SBF/eBPF de Solana).

Pourquoi l'EVM est important

Le standard devenu écosystème

L'importance de l'EVM s'étend bien au-delà d'Ethereum lui-même. Comme la spécification de l'EVM est ouverte et bien documentée, de nombreuses autres blockchains l'ont adoptée — soit en exécutant l'EVM nativement, soit en implémentant une couche d'exécution compatible EVM. Cela a créé un écosystème partagé :

Ce qui est partagé Ce que cela signifie en pratique
Langage de contrats intelligents Les développeurs écrivent du Solidity une fois et le déploient sur n'importe quelle chaîne EVM
Outils de développement Hardhat, Foundry, Remix et d'autres outils fonctionnent sur toutes les chaînes EVM
Compatibilité des portefeuilles MetaMask et les autres portefeuilles EVM fonctionnent en ajoutant simplement un nouveau réseau
Standards de tokens ERC-20 (tokens fongibles), ERC-721 (NFT) et d'autres standards sont portables entre les chaînes
Audit et sécurité Les auditeurs de sécurité, les outils de vérification formelle et les bonnes pratiques se transfèrent entre les chaînes EVM
Connaissances des développeurs Un développeur qui connaît Solidity et l'EVM peut travailler sur Ethereum, Polygon, Avalanche, BNB Chain, Arbitrum, Base et des dizaines d'autres réseaux

Cette portabilité explique pourquoi la compatibilité EVM est devenue le choix par défaut des nouvelles blockchains qui veulent attirer rapidement des développeurs et des applications. Il est moins coûteux et plus rapide de rejoindre un écosystème existant que d'en construire un à partir de zéro.

Le déploiement multichaîne

Pour les projets — y compris les projets crypto liés à l'IA — la compatibilité EVM signifie qu'un contrat intelligent déployé sur Ethereum peut être déployé sur Polygon, la C-Chain d'Avalanche, Arbitrum, Base ou BNB Smart Chain avec des modifications minimes. Cela permet :

  • Une présence multichaîne — un projet peut déployer le même contrat de token et la même logique centrale sur plusieurs chaînes pour atteindre différentes bases d'utilisateurs.
  • La migration de chaîne — si un projet doit migrer vers une chaîne avec des frais plus bas ou un débit plus élevé, la compatibilité EVM réduit le coût de migration.
  • La composabilité — sur toute chaîne EVM donnée, les contrats peuvent interagir entre eux via les mêmes interfaces et standards, permettant la composabilité DeFi, les intégrations de tokens et l'infrastructure partagée.

Les limites

L'EVM a été conçue pour l'exécution généraliste de contrats intelligents, pas pour les charges de travail intensives en calcul. Ses principales limites :

  • Pas de virgule flottante native — l'EVM n'utilise que des entiers de 256 bits. L'arithmétique à virgule flottante (essentielle pour la plupart des calculs IA/ML) doit être émulée, ce qui est extrêmement coûteux en gas.
  • Contraintes de gas — la limite de gas par bloc plafonne le calcul total par bloc. Les opérations complexes (comme la multiplication de matrices pour l'inférence IA) sont d'un coût prohibitif dans l'exécution EVM.
  • Exécution séquentielle — l'EVM traite les transactions séquentiellement au sein d'un bloc. L'exécution parallèle, que les processeurs modernes utilisent pour la performance, n'est pas prise en charge nativement (bien que certaines chaînes compatibles EVM plus récentes expérimentent l'exécution EVM parallèle).
  • Coût de stockage — stocker de grandes quantités de données on-chain est coûteux. Les modèles IA, les jeux de données et les calculs intermédiaires sont bien trop volumineux pour un stockage on-chain.

Ces limites expliquent pourquoi les projets crypto liés à l'IA exécutent généralement leurs charges de travail IA off-chain et n'utilisent les contrats EVM on-chain que pour la coordination, les paiements, la gouvernance et l'enregistrement des résultats.

Où cela apparaît dans les fiches projet DecAIHub

Dans les fiches projet DecAIHub, l'EVM apparaît dans :

  • Type — EVM indique que le projet opère sur une chaîne compatible EVM. Cela indique au lecteur que le projet utilise des contrats intelligents basés sur Solidity et l'outillage standard d'Ethereum.
  • Main chain — la chaîne compatible EVM spécifique est indiquée (Ethereum, Polygon, Avalanche, Arbitrum, Base, BNB Smart Chain, etc.). Toutes partagent l'exécution EVM.
  • Token standard — les chaînes compatibles EVM utilisent les standards de tokens d'Ethereum. ERC-20 (tokens fongibles), ERC-721 (NFT) et ERC-1155 (multi-token) sont les plus courants. Ces standards sont spécifiques à l'écosystème EVM.
  • Contrats intelligents — si les contrats intelligents d'un projet sont vérifiés sur un explorateur de blocs, le lecteur peut les inspecter. Les contrats EVM sont écrits en Solidity (ou Vyper) et compilés en bytecode EVM.

Une classification Type: EVM fournit un contexte utile sur l'outillage et l'écosystème du projet, mais elle ne dit rien, à elle seule, sur la qualité de l'IA du projet ou la nécessité de son token.

Ce que la compatibilité EVM seule ne prouve pas

  • La compatibilité EVM ne prouve pas la capacité IA. L'EVM exécute des contrats intelligents ; les modèles IA s'exécutent sur des GPU. Le fait qu'un projet soit sur une chaîne EVM ne dit rien sur la présence d'un véritable composant IA.
  • Se déployer sur une chaîne EVM ne rend pas un projet unique. Le même contrat peut être déployé sur des dizaines de chaînes compatibles EVM. Le choix du déploiement est une décision d'infrastructure, pas un facteur de différenciation.
  • Des contrats intelligents vérifiés ne prouvent pas que le composant off-chain fonctionne. Un projet peut avoir un code on-chain propre et audité tout en n'ayant aucun pipeline IA fonctionnel derrière. Les composants on-chain et off-chain doivent être évalués séparément.
  • L'outillage de l'écosystème EVM ne réduit pas le besoin de preuves. Avoir la prise en charge de MetaMask, une inscription sur un explorateur de blocs et des tokens ERC-20 relève de l'infrastructure standard — ce n'est pas une preuve de technologie, d'innovation ou de qualité.
  • L'exécution EVM n'est pas de l'exécution IA. Exécuter un réseau de neurones à l'intérieur de l'EVM est d'un coût prohibitif pour tout modèle non trivial. Lorsqu'un projet parle d'« IA on-chain » sur une chaîne EVM, vérifiez exactement ce qui s'exécute on-chain et ce qui s'exécute off-chain.

Ne pas confondre avec

  • Ethereum — Ethereum est un réseau blockchain spécifique. L'EVM est la machine virtuelle qu'Ethereum (et de nombreuses autres chaînes) utilisent. « EVM » désigne le moteur d'exécution ; « Ethereum » désigne le réseau, ses validateurs et son état.
  • Blockchain non-EVM — des blockchains comme Solana, les chaînes Cosmos et Bittensor utilisent d'autres machines virtuelles (SVM, CosmWasm, environnements d'exécution personnalisés). Elles ne sont pas compatibles EVM, ce qui signifie que les contrats Solidity et l'outillage EVM n'y fonctionnent pas nativement.
  • Contrat intelligent — un contrat intelligent est un programme qui s'exécute sur l'EVM. L'EVM est le moteur ; le contrat intelligent est le code qu'elle exécute. Les contrats intelligents existent aussi sur les chaînes non-EVM, avec des langages et des environnements d'exécution différents.
  • Solidity — Solidity est le langage de programmation le plus populaire pour les contrats intelligents EVM, mais ce n'est pas l'EVM elle-même. Vyper est un autre langage compatible EVM. L'EVM exécute le bytecode compilé quel que soit le langage source qui l'a produit.

Questions fréquentes

Que signifie « compatible EVM » ?

Une blockchain est compatible EVM si elle peut exécuter du bytecode EVM — la forme compilée des contrats intelligents Solidity — en utilisant le même jeu d'opcodes et les mêmes règles d'exécution qu'Ethereum. En pratique, cela signifie que les développeurs peuvent déployer les mêmes contrats sur plusieurs chaînes compatibles EVM, utiliser les mêmes outils (Hardhat, Foundry, MetaMask) et s'appuyer sur les mêmes standards de tokens (ERC-20, ERC-721). Parmi les exemples de chaînes compatibles EVM : Polygon, Avalanche C-Chain, BNB Smart Chain, Arbitrum et Base.

Les modèles IA peuvent-ils s'exécuter à l'intérieur de l'EVM ?

En théorie, tout calcul peut être exprimé en opcodes EVM. En pratique, exécuter des modèles IA non triviaux à l'intérieur de l'EVM est d'un coût prohibitif. L'EVM ne prend pas en charge nativement la virgule flottante, a des limites de gas strictes par bloc et facture des coûts de gas élevés pour les opérations complexes. Une seule passe avant à travers même un petit réseau de neurones coûterait en gas des ordres de grandeur de plus que ce qu'une application pratique pourrait justifier. C'est pourquoi les projets crypto liés à l'IA exécutent leurs modèles off-chain et n'utilisent l'EVM que pour la logique de coordination, de paiement et de vérification.

Pourquoi tant de blockchains adoptent-elles l'EVM ?

Les effets de réseau. Ethereum a été la première grande plateforme de contrats intelligents, et son écosystème de développeurs — connaissance de Solidity, outillage, expertise d'audit, prise en charge des portefeuilles et standards de tokens — s'est construit sur des années. Une nouvelle blockchain qui adopte l'EVM accède immédiatement à tout cet écosystème. Les développeurs n'ont pas besoin d'apprendre un nouveau langage, les projets peuvent déployer des contrats existants, et les utilisateurs peuvent se connecter avec des portefeuilles familiers. Construire un écosystème concurrent à partir de zéro est bien plus coûteux et incertain. La compatibilité EVM est un raccourci pragmatique vers l'adoption.

Quelle est la différence entre compatible EVM et équivalent EVM ?

Compatible EVM signifie que la chaîne peut exécuter du bytecode EVM et prend en charge les mêmes opcodes, mais il peut y avoir des différences mineures de comportement (par exemple les coûts de gas, les precompiles ou le comportement des opcodes dans les cas limites). Équivalent EVM signifie que la chaîne réplique le comportement de l'EVM d'Ethereum au niveau des opcodes — chaque opération produit le même résultat que sur Ethereum. L'équivalence EVM est une affirmation plus forte : elle signifie que même les contrats complexes et l'outillage qui dépendent du comportement précis de l'EVM devraient fonctionner sans modification. Polygon zkEVM, par exemple, vise l'équivalence EVM.

Références externes

  • Ethereum.org — Ethereum Virtual Machine — documentation officielle de la Fondation Ethereum expliquant l'architecture de l'EVM, les opcodes et le modèle d'exécution.
  • Ethereum Yellow Paper — la spécification formelle du protocole Ethereum, incluant le jeu complet d'opcodes de l'EVM et la sémantique d'exécution.
  • EVM Codes — référence interactive des opcodes EVM avec coûts en gas, descriptions et environnement de test pour l'exécution de bytecode.

Voir aussi