Retrouvez toute l'actualité Crypto. > Actualités > Approfondir – Ethereum : smart contracts et Oracles

Approfondir – Ethereum : smart contracts et Oracles

18 juillet 2023

Temps de lecture 8 minutes

Canelle de Balasy

Partagez cet article

Share on LinkedIn
Share on Twitter
Share on Facebook
Share on Instagram
Share on Whatsapp

Introduction 

 

Depuis son lancement en 2015, Ethereum s’est rapidement imposé comme l’une des blockchains les plus importantes et les plus influentes de l’écosystème des cryptomonnaies et de la technologie blockchain. Ethereum est la deuxième Blockchain après Bitcoin en termes de capitulation de marché et enregistre des volumes d’échange en milliards de dollars par jour. 

 

De plus, de nombreux tokens circulent sur la Blockchain Ethereum et cette dernière reste la Blockchain de référence pour la création de tokens et le lancement de projets.  Même si d’autres langages ont été proposés dans le passé, Solidity s’est imposé pour le développement d’applications décentralisées (dApps) et de Smart-contracts, offrant ainsi un éventail de créations large. 

 

Revenons tout d’abord sur les dernières mises à jour du réseau Ethereum et les principales caractéristiques. 

 

Rappel historique de “The Merge” et du Passage en Proof of Stake

 

Attendue depuis plus de cinq ans, la mise à jour « The Merge », qui tenait en haleine toute la planète crypto, a été enclenchée entre la nuit du mercredi 14 septembre 2022 et la matinée du jeudi 15.  L’opération s’est déroulée avec succès, faisant officiellement passer la blockchain Ethereum du Proof of Work (PoW, preuve de travail) au Proof of Stake (PoS, preuve d’enjeu). 

 

Et la nouvelle a agité les réseaux des crypto-enthousiastes, portés par le cofondateur d’Ethereum Vitalik Buterin qui a multiplié les publications à ce sujet.( https://twitter.com/VitalikButerin/status/1570306185391378434

 

La preuve d’enjeu devient le mécanisme de validation des blocs sur le réseau Ethereum. Remplaçant le Proof Of Work.

 

Comment fonctionne la preuve d’enjeu ?

 

Pour vérifier des blocs et les transactions qui maintiennent les blockchains en PoS, il suffit de détenir des jetons. 32 plus exactement, dans le cas d’Ethereum. Une fois ce palier atteint, l’utilisateur peut devenir un validateur, à condition de « staker » (verrouiller) ses ethers au sein du réseau.

 

Il peut alors être choisi de façon aléatoire pour participer à la validation des transactions et recevoir une récompense en ethers.

 

Il est également possible de rejoindre des « staking pools » si vous ne détenez pas suffisamment d’ethers. Dans ce cas, la rémunération sera proportionnelle au montant d’ethers possédés et verrouillés.

 

Quels sont les avantages de la preuve d’enjeu ?

 

Comme nous l’indiquions plus haut, la consommation électrique est fortement réduite grâce au PoS. C’est là son principal argument, à la fois d’un point de vue marketing et technologique. Et c’est effectivement le cas.

 

Cette réduction de l’effort énergétique a un autre atout : elle permet à Ethereum d’avoir une croissance à long terme plus soutenue, résolvant en partie les problèmes de scalabilité des blockchains. Avec la preuve de travail, l’effort énergétique demandé pour permettre au réseau de tenir la cadence est tellement élevé qu’il exige l’utilisation de machines de plus en plus performantes. 

 

Autre avantage du PoS : une décentralisation renforcée. Avec le PoW, le minage favorise les fermes de minages suréquipées plutôt que les mineurs particuliers, lesquels ont du mal à suivre le surplus de puissance demandé, toujours plus important au fur et à mesure que la blockchain grossit. Avec le PoS, la sélection des validateurs est aléatoire, et il suffit de verrouiller ses jetons via le staking. Il n’est donc pas nécessaire d’avoir des ordinateurs ultra puissants. Une connexion au réseau suffit.

 

Un Écosystème de Smart contracts

 

Dans la suite de cet article, nous explorerons certaines fonctionnalités techniques comme le langage utilisé pour la création de Smart contracts, la façon dont les smart contracts sont exécutés ou encore l’utilisation des oracles, nécessaires à certaines applications DeFi.  

 

Pour comprendre techniquement le déploiement et le fonctionnement des smart contracts, il faut commencer par l’EVM ainsi que les différents types d’adresses sur Ethereum. 

Contract Accounts & EOA

 

Sur la plateforme Ethereum, il existe deux types principaux de comptes : les Externally Owned Accounts (EOA) et les Contract Accounts.

 

Externally Owned Accounts (EOA) :

Un Externally Owned Account, également appelé compte utilisateur, est un compte Ethereum qui est contrôlé par une clé privée et une adresse publique correspondante. Les EOAs appartiennent à des individus ou à des entités et sont utilisés pour envoyer et recevoir de l’Ether (ETH). Les EOAs peuvent également interagir avec des contrats intelligents et exécuter des transactions.

Lorsqu’un utilisateur souhaite effectuer une transaction depuis son EOA, il signe numériquement la transaction avec sa clé privée, prouvant ainsi qu’il est le propriétaire légitime du compte. Les EOAs sont également utilisés pour payer les frais de gaz, nécessaires pour exécuter des transactions et des contrats intelligents sur le réseau Ethereum.

Contract Accounts :

Un Contract Account, également appelé compte de Smart contract, est un type spécial de compte Ethereum qui est associé à un Smart contract. Contrairement aux EOAs, les Contract Accounts n’ont pas de clé privée et sont contrôlés par le code du Smart contract lui-même. Les Contract Accounts sont utilisés pour déployer et exécuter des contrats intelligents sur la blockchain Ethereum.

Lorsqu’un contrat intelligent est déployé sur la blockchain Ethereum, un nouveau Contract Account est créé avec une adresse unique. Ce compte est associé au code du Smart contract et peut stocker de l’Ether et des données d’état. Les utilisateurs peuvent interagir avec un contrat intelligent en envoyant des transactions à son adresse. Lorsque le contrat est exécuté, il peut effectuer des calculs, stocker et modifier des données, et même envoyer des transactions à d’autres contrats ou EOAs.

 

Maintenant que nous avons vu les différents types d’adresses sur le réseau Ethereum. Voyons comment sont exécutées les transactions sur Ethereum.

 

L’exécution des Smart contracts, l’EVM

 

L’EVM (Ethereum Virtual Machine) est un composant essentiel de la plateforme Ethereum. C’est une machine virtuelle qui permet l’exécution des smart contracts sur la blockchain Ethereum.

 

L’EVM fonctionne comme une couche d’exécution au-dessus de la couche de consensus de la blockchain. Elle fournit un environnement sécurisé et isolé dans lequel les smart contracts peuvent être exécutés de manière déterministe et reproductible. Chaque nœud de la blockchain Ethereum exécute une copie de l’EVM pour valider les transactions et les smart contracts.

 

L’EVM est basée sur la pile (stack-based), ce qui signifie qu’elle utilise une pile de données pour effectuer ses calculs. Les instructions de l’EVM sont conçues pour manipuler cette pile de données et effectuer des opérations telles que l’arithmétique, la logique, l’accès à la mémoire et le contrôle de flux.

 

Les smart contracts écrits dans le langage de programmation Solidity sont compilés en bytecode, un ensemble d’instructions spécifiques à l’EVM. Ce bytecode est ensuite exécuté par l’EVM lorsqu’un utilisateur interagit avec le smart contract.

 

Lorsqu’une transaction est envoyée pour exécuter un smart contract, l’EVM exécute chaque instruction du bytecode séquentiellement. Cela peut inclure des opérations telles que la modification de l’état interne du contrat, l’interaction avec d’autres smart contracts ou l’envoi de transactions à d’autres adresses.

 

Chaque opération effectuée par l’EVM a un coût associé en termes de gaz. Le gaz est une mesure de la quantité de travail informatique nécessaire pour effectuer une opération. Les utilisateurs doivent payer des frais de gaz pour exécuter leurs smart contracts. 

 

L’EVM permet également la gestion des exceptions et des erreurs lors de l’exécution des smart contracts. Par exemple, si une division par zéro se produit ou si une instruction tente d’accéder à une zone de mémoire invalide, l’exécution du contrat est arrêtée et toute modification de l’état est annulée.

 

 

Qu’est-ce que Solidity ?

 

Solidity est un langage de programmation orienté objet, conçu spécifiquement pour écrire des smart contracts sur la blockchain Ethereum. Il est influencé par des langages tels que JavaScript, ce qui facilite la transition pour les développeurs familiarisés avec ce type de  langage. Solidity est un langage de haut niveau qui permet de définir des structures de données complexes, des fonctions et des interactions avec d’autres Smart contracts.

 

Dans cet exemple, le contrat “Voting” permet aux utilisateurs de voter pour des candidats numérotés de 0 à 2. Les votes sont enregistrés dans la variable mapping “votes”, où chaque adresse a un vote associé. La fonction “vote” permet aux utilisateurs de soumettre leur vote en spécifiant le numéro du candidat. Une vérification est effectuée pour s’assurer que le candidat est valide avant d’enregistrer le vote.

 

Comme on peut le voir sur l’exemple ci-dessus, le smart contract permet d’effectuer des actions via des événements ou des inputs qui lui sont fournis. Néanmoins, les smart-contracts ont besoin d’informations venant d’environnements externes à la Blockchain (comme des prix)

C’est là que les oracles entrent en jeu. Nous allons rentrer en détail de ce que sont les oracles, leur rôle essentiel dans l’écosystème Ethereum, et fournir des exemples concrets de leur utilisation.

Qu’est-ce qu’un Oracle ?

 

Un oracle est un service ou une entité qui agit en tant que source de données extérieures pour les smart-contract. Il permet aux smart-contract de recevoir des informations du monde réel, telles que des données de prix, des données météorologiques, des résultats de jeux, des événements d’actualité, etc. Les oracles jouent un rôle crucial en reliant les smart-contracts à des sources de données fiables, offrant ainsi des fonctionnalités plus avancées et permettant aux contrats de prendre des décisions en fonction de ces informations.

 

Les types d’Oracles sur Ethereum :

 

  • Oracles centralisés :

Les oracles centralisés sont contrôlés par une seule entité. Ils peuvent être rapides et faciles à mettre en œuvre, mais ils sont également plus vulnérables aux attaques et à la manipulation des données. Par conséquent, ils sont généralement moins utilisés dans les applications financières décentralisées (DeFi) où la confiance et la sécurité sont des préoccupations majeures.

 

  • Oracles décentralisés :

Les oracles décentralisés sont conçus pour être résistants à la censure et à la manipulation. Ils fonctionnent en agrégeant les données provenant de multiples sources et en utilisant des mécanismes de consensus pour déterminer la valeur la plus fiable. Ils sont plus fiables et sécurisés que les oracles centralisés, mais peuvent être plus lents en raison de la nécessité d’obtenir un consensus entre les différentes sources de données.

 

L’utilisation de ces oracles est présente dans de nombreuses applications décentralisées populaires de l’écosystème DeFi, nous allons voir dans la prochaine partie des exemples d’utilisation des oracles. 

 

III. Exemples d’utilisation des Oracles sur Ethereum :

 

Prix des actifs :

Les oracles sont largement utilisés pour fournir des informations en temps réel sur les prix des actifs numériques. Par exemple, les protocoles DeFi utilisent des oracles pour déterminer le prix d’une crypto-monnaie avant d’autoriser des transactions ou de calculer des ratios de liquidité. Les Dapps de swap entre les crypto-monnaies utilisent des oracles. 

 

Assurance :

Les oracles peuvent être utilisés dans le domaine des assurances décentralisées. Par exemple, un smart contract d’assurance contre les intempéries peut utiliser un oracle pour vérifier les conditions météorologiques locales et déclencher automatiquement des paiements en cas de mauvais temps.

 

Jeux & paris décentralisés :

Les oracles peuvent être utilisés pour apporter des informations extérieures à des jeux décentralisés. Par exemple, dans un jeu de paris décentralisé basé sur Ethereum, un oracle peut être utilisé pour fournir les résultats d’un événement sportif sur lequel les joueurs ont parié.

 

L’utilisation des oracles présente également l’introduction d’intermédiaires et de programmes externes pour le bon fonctionnement de certaines Dapps. Ces intermédiaires sont des potentielles portes pour les attaquants de pouvoir détourner des fonds ou agir de façon malveillante. Nous avons déjà vu plusieurs attaques se produire. 

 

De manière générale, les oracles centralisés, qui sont contrôlés par une seule entité, peuvent être vulnérables aux attaques et à la manipulation des données. Si un oracle centralisé est compromis, cela peut avoir des répercussions sur les smart contracts qui utilisent ce type d’oracle.

 

Pour remédier à ces problèmes, la communauté Ethereum travaille sur le développement d’oracles décentralisés et de mécanismes de consensus pour assurer l’intégrité des données fournies aux smart contracts. Des initiatives telles que Chainlink ont émergé pour fournir des oracles décentralisés et sécurisés sur Ethereum.

 

Pourquoi choisir le compte Premium ?

Notre compte Premium vous permet d’arbitrer en ayant toutes les cartes en main. Notre accompagnement et nos services vous offriront toutes les connaissances nécessaires pour faire fructifier vos investissements crypto, mais aussi pour construire une relation correspondant à vos besoins et vos envies. Grâce au compte Premium, vous bénéficiez de toutes nos expertises, de notre partage de connaissances, et d’un accompagnement au plus près pour développer votre patrimoine crypto.

Vous aimerez aussi.

Devenez un investisseur averti !