Pour comprendre la machine virtuelle d'Ethereum (EVM), il faut d'abord se souvenir de son prédécesseur, le logiciel BitTorrent. Selon l'inventeur d'Ethereum, Vitalik Buterin, BitTorrent était la toute première application décentralisée (DApp) : une communauté d'utilisateurs indépendants générant et échangeant des données les uns pour les autres sur un réseau Internet ouvert.
Le programmeur Bram Cohen a inventé BitTorrent en tant que protocole de partage de fichiers en 2001, et il est toujours bien vivant aujourd'hui, malgré des efforts concertés internationaux et de plusieurs milliards de dollars pour le détruire. Les derniers films ou logiciels peuvent encore être téléchargés par le protocole BitTorrent en quelques minutes directement sur votre ordinateur portable. Pour vraiment arrêter BitTorrent, il faudrait éteindre chaque ordinateur de chaque foyer dans chaque pays de la planète. La même chose est vraie pour l'EVM. C'est pourquoi le réseau décentralisé Ethereum est appelé "l'ordinateur mondial inarrêtable".
Qu'est-ce que la machine virtuelle Ethereum ?
L'Ethereum Virtual Machine (EVM) est une puissante pile virtuelle sandbox intégrée à chaque nœud Ethereum complet, responsable de l'exécution du bytecode des contrats. Les contrats sont généralement écrits dans des langages de plus haut niveau, comme Solidity, puis compilés en bytecode EVM.
Cela signifie que le code machine est complètement isolé du réseau, du système de fichiers ou de tout processus de l'ordinateur hôte. Chaque nœud du réseau Ethereum exécute une instance EVM, ce qui leur permet de s'accorder sur l'exécution des mêmes instructions. L'EVM est complète selon Turing, ce qui fait référence à un système capable d'exécuter toute étape logique d'une fonction de calcul. JavaScript, le langage de programmation qui alimente le web mondial, utilise largement la complétude de Turing.
Les machines virtuelles Ethereum ont été mises en œuvre avec succès dans divers langages de programmation, notamment C++, Java, JavaScript, Python, Ruby et bien d'autres.
L'EVM est essentielle au protocole Ethereum et joue un rôle déterminant dans le moteur de consensus du système Ethereum. Il permet à quiconque d'exécuter du code dans un écosystème sans confiance dans lequel le résultat d'une exécution peut être garanti et est entièrement déterministe (c'est-à-dire l'exécution de contrats intelligents).
Pour chaque instruction mise en œuvre sur l'EVM, un système qui garde la trace du coût d'exécution, attribue à l'instruction un coût associé en unités de gaz. (Voir notre article sur le Gas). Lorsqu'un utilisateur souhaite lancer une transaction et donc une exécution de contrat, il réserve un certain nombre d'Ether, qu'il est prêt à payer pour ce coût en Gas.
En utilisant le mécanisme Gas, deux problèmes majeurs sont résolus : Un validateur est garanti de recevoir le montant initial prépayé, même si l'exécution échoue. Une exécution ne peut pas durer plus longtemps que le montant prépayé ne le permet. Au lieu de tourner en boucle indéfiniment, l'exécution se poursuit jusqu'à ce qu'elle soit à court de gaz.
Lorsqu'une transaction est envoyée au réseau, des validateurs peuvent prendre la transaction, en exécutant le code associé. Le validateur s'assurera que :
Toutes les informations sur la transaction sont valides.
L'expéditeur a suffisamment de fonds pour payer l'exécution de la transaction.
La MVE n'a pas rencontré d'exception pendant l'exécution.
L'EVM atteint la complétude de Turing en permettant une économie qui facture par instruction logicielle exécutée plutôt que par transaction financière exécutée comme le fait Bitcoin. Au lieu de frais de transaction, vous avez une sorte de frais pour l'exécution des programmes.
La complétude de Turing signifie qu'Ethereum est techniquement un ordinateur mondial à usage général de pair à pair et pourrait même assumer les fonctions de l'internet tel que nous le connaissons. Ethereum pourrait nous permettre de créer des économies de partage de fichiers, des événements de crowdfunding de pair à pair, des contrats intelligents, des marchés pour louer l'espace inutilisé du disque dur de votre ordinateur portable, un Uber ou un Facebook désintermédié (les produits sans les entreprises), etc. C'est un peu comme l'internet en 1994 : personne ne sait ce que l'avenir nous réserve.
💡 EVM compatible : Ce terme fait référence à un portefeuille décentralisé pouvant se connecter à des protocoles utilisant le noyau Ethereum. MetaMask est un wallet 3.0 EVM compatible, il permet l'utilisation des blockchains contruite avec les caractéristiques du réseau Ethereum.
Comments