Ethereum : comment fonctionnent les contrats intelligents ?

Les contrats intelligents sont la principale caractéristique qui a fait le succès d'Ethereum. 

Que sont les contrats intelligents et à quoi servent-ils

Le protocole Bitcoin ne prévoit pas la possibilité de créer des contrats intelligents vraiment complexes, car il a été conçu uniquement pour permettre les transactions. 

En revanche, Ethereum, qui est né 6 ans après Bitcoin, a été conçu dès le départ pour être essentiellement un réseau capable de hébergement et exécution de contrats intelligents

En 2014, le co-fondateur d'Ethereum Vitalik Buterin écrit explicitement dans le whitepaper que le réseau qu'il concevait était un plateforme de nouvelle génération basée sur des contrats intelligents, et que les applications alternatives au Bitcoin basées sur la technologie blockchain comprenaient également l'utilisation d'actifs numériques pour représenter des devises et des instruments financiers personnalisés, des actifs non fongibles et des applications plus complexes. 

En particulier, ces derniers, c'est-à-dire les contrats intelligents, ont été définis comme des applications impliquant un contrôle direct des actifs numériques par un code mettant en œuvre des règles arbitraires, ou des organisations autonomes décentralisées basées sur la blockchain, dites DAO.  

Vitalic a écrit : 

«Ce qu'Ethereum a l'intention de fournir est une blockchain avec un langage de programmation Turing-complete intégré qui peut être utilisé pour créer des« contrats »qui peuvent être utilisés pour coder des fonctions de transition d'état arbitraires, permettant aux utilisateurs de créer l'un des systèmes décrits ci-dessus – ainsi que bien d'autres que nous n'avons pas encore imaginés – simplement en écrivant de la logique en quelques lignes de code ».

Ainsi, les contrats intelligents sur Ethereum sont des lignes de code par lesquelles il est possible de programmer l'exécution automatique des instructions par le réseau, lorsque certaines conditions sont remplies, sans avoir à confier leur exécution à un intermédiaire.

En fait, Buterin lui-même a mis le terme « contrats » entre guillemets, car plutôt que de véritables contrats entre les parties, ils sont programmes informatiques exécutés par un système décentralisé réseau. 

D'un point de vue général, leur fonctionnement n'est donc pas très compliqué. 

contrat intelligent
Les contrats intelligents sont exécutés une fois que les conditions qu'ils contiennent ont été vérifiées

Déployer des contrats intelligents sur la blockchain Ethereum

Tout d'abord, un ou plusieurs développeurs doivent évidemment créer le contrat intelligent en écrivant les lignes de code appropriées, puis ils doivent envoyez-le au réseau Ethereum. 

En termes techniques, le publier sur la blockchain Ethereum signifie que tous les nœuds du réseau le reçoivent et l'exécutent. Une fois publiées, toutes les instructions qu'il contient seront toujours exécutées par tous les nœuds exactement de la même manière. 

Par conséquent, non seulement sa publication mais aussi l'exécution des instructions est irréversible une fois publié sur la blockchain. 

Par conséquent, ce qui compte vraiment, ce sont les instructions qu'il contient - qui peuvent être les plus diverses - et le nombre de personnes qui l'utilisent. En effet, pour que les instructions d'un contrat intelligent soient effectivement exécutées, il doit y avoir une ou plusieurs transactions qui les invoquent

Il convient également de rappeler que ces instructions impliquent généralement l'utilisation de ressources, telles que des données ou des jetons, afin qu'elles soient effectivement exécutées, toutes les conditions fixées comme nécessaires doivent être remplies. 

Parfois, ces données proviennent de l'extérieur, grâce à des soi-disant oracles, alors que parfois, elles proviennent simplement de transactions sur la blockchain. 

Habituellement, la transaction qui déclenche l'exécution des instructions contenues dans un contrat intelligent implique le paiement d'une frais en ETH, et dans de nombreux cas, afin de déclencher réellement l'exécution, cela implique également le paiement ou l'envoi de jetons spécifiques au contrat intelligent lui-même, ou à d'autres contrats intelligents. 

Techniquement, les contrats intelligents sont un type de compte sur le Blockhaus d'Ethereum, « contrôlé » par le réseau plutôt que par une entité centrale. Ils peuvent stocker des ETH ou des jetons, et peuvent également envoyer des transactions sur le réseau de manière autonome.

Comment interagir avec le code et plus généralement avec les dApps

Les utilisateurs peuvent interagir avec des contrats intelligents en envoyant des transactions qui déclencher l'une des fonctions définies dans leur code. 

Par conséquent, le fonctionnement des contrats intelligents sur Ethereum est généralement très simple : il suffit d'envoyer une transaction d'un certain type à un contrat intelligent, et cela déclenchera l'exécution par les nœuds de toutes les instructions contenues dans la fonction du contrat intelligent invoquée par la transaction elle-même. 

Évidemment, selon les instructions contenues dans la fonction invoquée, des conséquences très différentes peuvent être générées, variant non seulement d'un contrat intelligent à l'autre, mais aussi d'une fonction à l'autre. 

L'énorme complexité des contrats intelligents découle donc précisément de ce que font les contrats intelligents individuels, et non en général du fait que le réseau Ethereum les prend en charge et les exécute. De plus, il est absolument impossible de répertorier le fonctionnement réel de tous les types de contrats intelligents sur le réseau. 


Source : https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/