L’Ethereum Virtual Machine (EVM) constitue un élément central, si ce n’est le plus important pour le fonctionnement d’Ethereum. Pourtant, beaucoup ignorent tout de la notion de machine virtuelle et du rôle que celle-ci joue au sein de la blockchain. Après avoir lu cet article, vous saurez ce qu’est l’Ethereum Virtual Machine et vous comprendrez l’importance de sa fonction.
Qu’est-ce que l’Ethereum Virtual Machine ?
En informatique, une machine virtuelle est un système informatique virtualisé fonctionnant à l’aide d’un appareil physique. Elle possède sa propre mémoire, son propre processeur, son propre disque dur, son propre système d’exploitation… Ces ressources proviennent du serveur physique sur lequel elle repose, et celui-ci peut les allouer à plusieurs machines virtuelles différentes.
L’intérêt d’utiliser des machines virtuelles est de pouvoir exploiter à 100% les capacités du serveur. La virtualisation permet de répartir ses ressources entre plusieurs machines virtuelles qui sont toutes exploitées au maximum pour exécuter des programmes, au lieu d’avoir une seule machine sous-utilisée.
C’est bien beau tout ça, mais quel lien avec notre chère blockchain ? Patience, on y vient !
À quoi sert l’Ethereum Virtual Machine ?
À tout instant, le réseau Ethereum se trouve dans un état donné. Cet état reprend l’ensemble des comptes existants et les montants d’Ethers qui leur sont associés. Lorsque les nœuds du réseau valident de nouvelles transactions, la blockchain doit changer d’état afin de les prendre en compte. L’Ethereum Virtual Machine est l’instance qui définit les règles permettant à la blockchain de changer d’état. Cet état est stocké sous forme d’un Merkle Patricia Tree, dont la racine en résume le contenu. L’Ethereum Virtual Machine se charge donc de calculer la nouvelle racine à chaque changement d’état de la blockchain.
L’Ethereum Virtual Machine permet l’unicité de l’état de la blockchain : chaque nœud du réseau exécute la même machine virtuelle et possède ainsi le même état. Si chaque nœud faisait tourner sa propre machine, des centaines d’états différents de la blockchain Ethereum existeraient à un instant T sans que l’on puisse déterminer lequel est le bon. Puisque l’Ethereum Virtual Machine contient l’ensemble des comptes sur Ethereum ainsi que les informations les concernant, elle permet d’unifier l’état du réseau.
Lire plus : Qu’est-ce qu’un arbre de Merkle ?
Pourquoi Ethereum utilise une machine virtuelle ?
Ethereum ne permet pas seulement le stockage et l’envoi de cryptomonnaies. C’est avant tout une blockchain d’infrastructure conçue pour l’exécution de smart-contracts. C’est pour cela qu’il a été nécessaire de créer une machine virtuelle pour faire fonctionner le réseau : une base de données distribuée telle qu’implémentée pour la blockchain Bitcoin ne peut assumer cette fonction.
Il existe deux types de comptes sur Ethereum : les comptes d’adresse et les comptes de contrat.
- Un compte d’adresse est contrôlé par une clé privée. Seul le possesseur de la clé privée du compte peut en dépenser les fonds. Ce sont donc ces comptes qui sont utilisés par les usagers comme vous et moi.
- Un compte de contrat est lié à un smart-contract. Le code de ce smart-contract contrôle le compte et peut par exemple déclencher l’envoi de fonds si le smart-contract est appelé.
L’Ethereum Virtual Machine se charge donc d’exécuter le code des smart-contracts lorsque ceux-ci sont appelés. C’est pour cela qu’il est nécessaire d’implémenter toute une machine virtuelle qui représente en fait l’illusion d’un serveur physique, et non pas une simple base de données.
Lire plus : Clé publique et clé privée : quelle différence ?
Qu’est-ce que l’EVM-compatibilité ?
Afin de faire face aux problèmes de scalabilité d’Ethereum, de nombreuses blockchains comme Solana, Avalanche ou Cardano ont vu le jour. Ces réseaux peuvent être classés en deux catégories : EVM-compatibles et non EVM-compatibles.
Une plateforme de smart-contracts EVM-compatible peut exécuter les contrats écrits avec le même code que sur Ethereum. Les tokens répondent également au même standard (ERC-20). En effet, puisque l’Ethereum Virtual Machine définit les règles permettant à la blockchain de changer d’état, elle instaure également des normes en ce qui concerne le code des smart-contracts. Avalanche ou la Binance Smart Chain sont des exemples de tels réseaux. Mais sur Solana par exemple, les smart-contracts répondent à des règles différentes puisque la blockchain n’est pas conçue pour l’EVM-compatibilité.
L’Ethereum Virtual Machine : Un élément central de la blockchain Ethereum
Ainsi, l’Ethereum Virtual Machine constitue une notion à maitriser pour comprendre non seulement le fonctionnement de la blockchain, mais aussi les enjeux autour de celle-ci. En particulier, la nécessité ou non d’une EVM-compatibilité fait débat non seulement en ce qui concerne les blockchains d’infrastructure (ou layers 1), mais aussi concernant les solutions de scaling (ou layers 2).
Lire plus : Qu’est-ce qu’un layer ?