Qu'est-ce qu'un smart contract ?
Accueil
Articles
Qu'est-ce qu'un smart contract ?

Qu'est-ce qu'un smart contract ?

Intermédiaire
Publié le Sep 16, 2019Mis à jour le Jun 9, 2023
9m

Introduction

Nick Szabo a dĂ©crit pour la premiĂšre fois les smart contracts dans les annĂ©es 1990. À l'Ă©poque, il avait dĂ©fini un smart contract comme un outil qui formalise et sĂ©curise les rĂ©seaux informatiques en combinant des protocoles et des interfaces utilisateur.

Szabo a évoqué l'utilisation potentielle des smart contracts dans divers domaines impliquant des accords contractuels, tels que les systÚmes de crédit, le traitement des paiements et la gestion des droits sur les contenus.

Dans le monde des cryptomonnaies, nous pouvons dĂ©finir un smart contract comme une application ou un programme qui s'exĂ©cute sur une blockchain. En gĂ©nĂ©ral, ils fonctionnent comme un accord numĂ©rique qui est appliquĂ© par un ensemble de rĂšgles spĂ©cifiques. Ces rĂšgles sont prĂ©dĂ©finies par code informatique, qui est rĂ©pliquĂ© et exĂ©cutĂ© par tous les nƓuds du rĂ©seau.

Les smart contracts blockchain permettent de crĂ©er des protocoles sans confiance. Cela signifie que deux parties peuvent prendre des engagements via la blockchain, sans avoir Ă  se connaĂźtre ou Ă  se faire confiance. Ils peuvent ĂȘtre sĂ»rs que si les conditions ne sont pas remplies, le contrat ne sera pas exĂ©cutĂ©. En outre, l'utilisation de smart contracts peut Ă©liminer le besoin d'intermĂ©diaires, ce qui rĂ©duit considĂ©rablement les coĂ»ts opĂ©rationnels.

Bien que le protocole Bitcoin prenne en charge les smart contracts depuis de nombreuses annĂ©es, ils ont Ă©tĂ© rendus populaires par le crĂ©ateur et cofondateur d'Ethereum, Vitalik Buterin. Il convient toutefois de noter que chaque blockchain peut prĂ©senter une mĂ©thode diffĂ©rente de mise en Ɠuvre des smart contracts.

Cet article se concentre sur les smart contracts qui fonctionnent sur la machine virtuelle Ethereum (EVM), qui est une partie essentielle de la blockchain Ethereum.


Alors, comment fonctionnent-ils ?

En termes simples, un smart contract fonctionne comme un programme déterministe. Il exécute une tùche particuliÚre quand et si certaines conditions sont remplies. Par conséquent, un systÚme de smart contract suit souvent les fonctions « si... alors.. ». Mais malgré la terminologie, les smart contracts n'ont pas de valeur légale, et ne sont pas intelligents. Il s'agit simplement d'un code exécuté sur un systÚme distribué (une blockchain).

Sur le réseau Ethereum, les smart contracts sont chargés d'exécuter et de gérer les opérations de la blockchain qui ont lieu lorsque les utilisateurs (adresses) interagissent entre eux. Toute adresse qui n'est pas un smart contract s'appelle un compte détenu en externe (EOA). Ainsi, les smart contracts sont contrÎlés par code informatique, et les EOA sont contrÎlés par les utilisateurs.

Fondamentalement, les smart contracts Ethereum sont constituĂ©s d'un code de contrat et de deux clĂ©s publiques. La premiĂšre clĂ© publique est celle fournie par le crĂ©ateur du contrat. L'autre clĂ© reprĂ©sente le contrat lui-mĂȘme, agissant en tant qu'identifiant numĂ©rique unique Ă  chaque smart contract.

Le dĂ©ploiement d'un smart contract est effectuĂ© par le biais d'une transaction blockchain. Il ne peut ĂȘtre activĂ© que lorsqu'il est appelĂ© par un EOA (ou par d'autres smart contracts). Cependant, le premier dĂ©clencheur est toujours causĂ© par un EOA (utilisateur).


Caractéristiques principales

Un smart contract Ethereum présente souvent les caractéristiques suivantes :

DistribuĂ©. Les smart contracts sont rĂ©pliquĂ©s et distribuĂ©s dans tous les nƓuds du rĂ©seau Ethereum. C'est l'une des principales diffĂ©rences avec les autres solutions qui reposent sur des serveurs centralisĂ©s.

DĂ©terministe. Les smart contracts n'effectuent que les actions pour lesquelles ils ont Ă©tĂ© conçus, Ă  condition que les exigences soient respectĂ©es. De plus, le rĂ©sultat sera toujours le mĂȘme, peu importe qui les exĂ©cute.

Autonome. Les smart contracts peuvent automatiser toutes sortes de tùches, en fonctionnant comme un programme auto-exécutable. Dans la plupart des cas, cependant, si un smart contract n'est pas déclenché, il restera « en sommeil » et n'effectuera aucune action.

Immuable. Les smart contracts ne peuvent pas ĂȘtre modifiĂ©s aprĂšs leur dĂ©ploiement. Ils ne peuvent ĂȘtre « supprimĂ©s » que si une fonction particuliĂšre a Ă©tĂ© mise en Ɠuvre prĂ©cĂ©demment. Ainsi, nous pouvons dire que les smart contracts peuvent fournir un code inviolable.

Personnalisable. Avant leur dĂ©ploiement, les smart contracts peuvent ĂȘtre codĂ©s de diffĂ©rentes maniĂšres. Ils peuvent donc ĂȘtre utilisĂ©s pour crĂ©er de nombreux types d'applications dĂ©centralisĂ©es (DApps). Cela est dĂ» au fait qu'Ethereum est une blockchain Turing-complĂšte.

Sans confiance. Deux parties ou plus peuvent interagir via des smart contracts sans se connaßtre ni se faire confiance. En outre, la technologie blockchain garantit l'exactitude des données.

Transparence. Les smart contracts étant basés sur une blockchain publique, leur code source est non seulement immuable, mais également visible par tous.


Puis-je modifier ou supprimer un smart contract ?

Il est impossible d'ajouter de nouvelles fonctions à un smart contract Ethereum aprÚs son déploiement. Toutefois, si son créateur inclut une fonction appelée SELFDESTRUCT dans le code, il est en mesure de « supprimer » le smart contract à l'avenir, et de le remplacer par un nouveau. En revanche, si la fonction n'est pas incluse dans le code au préalable, il est impossible de le supprimer.

Remarquablement, les smart contracts évolutifs permettent aux développeurs d'avoir plus de flexibilité sur l'immuabilité des contrats. Il existe de nombreuses façons de créer des smart contracts évolutifs, avec différents degrés de complexité.

Dans un exemple simplifiĂ©, imaginons qu'un smart contract soit divisĂ© en plusieurs petits contrats. Certains d'entre eux sont conçus pour ĂȘtre immuables, tandis que d'autres ont la fonction « Supprimer » activĂ©e. Cela signifie qu'une partie du code (smart contracts) peut ĂȘtre supprimĂ©e et remplacĂ©e, tandis que d'autres fonctionnalitĂ©s restent intactes.


Avantages et cas d'usage

En tant que code programmable, les smart contracts sont hautement personnalisables et peuvent ĂȘtre conçus de diffĂ©rentes maniĂšres, offrant ainsi de nombreux types de services et de solutions.

En tant que programmes dĂ©centralisĂ©s et auto-exĂ©cutables, les smart contracts peuvent offrir une transparence accrue et rĂ©duire les coĂ»ts opĂ©rationnels. En fonction de leur mise en Ɠuvre, ils peuvent Ă©galement accroĂźtre l'efficacitĂ© et rĂ©duire les dĂ©penses administratives.

Les smart contracts sont particuliĂšrement utiles dans les situations impliquant le transfert ou l'Ă©change de fonds entre deux parties ou plus.

En d'autres termes, les smart contracts peuvent ĂȘtre conçus pour une grande variĂ©tĂ© de cas d'utilisation. Parmi les exemples, citons la crĂ©ation d'actifs tokenisĂ©s, de systĂšmes de vote, de portefeuilles de cryptomonnaies, d'exchanges dĂ©centralisĂ©s, de jeux et d'applications mobiles. Ils peuvent Ă©galement ĂȘtre dĂ©ployĂ©s avec d'autres solutions blockchain qui abordent les domaines des soins de santĂ©, des organismes de bienfaisance, de la chaĂźne logistique, de la gouvernance et de la finance dĂ©centralisĂ©e (DeFi).


ERC-20

Les tokens émis sur la blockchain Ethereum suivent une norme connue sous le nom de ERC-20. La norme décrit les fonctions de base de tous les tokens basés sur Ethereum. Par conséquent, ces actifs numériques sont souvent appelées tokens ERC-20 et représentent une grande partie des cryptomonnaies existantes.
De nombreuses entreprises et startups de la blockchain ont déployé des smart contracts afin d'émettre leurs tokens numériques sur le réseau Ethereum. AprÚs l'émission, la majorité de ces entreprises ont distribué leurs tokens ERC-20 par le biais d'offre initiales de piÚces (ICO). Dans la plupart des cas, l'utilisation de smart contracts a permis d'échanger des fonds et de distribuer des tokens de maniÚre fiable et efficace.


Limites

Les smart contracts sont constituĂ©s de code informatique Ă©crit par des humains. Cela prĂ©sente de nombreux risques, car le code est soumis Ă  des vulnĂ©rabilitĂ©s et Ă  des bugs. IdĂ©alement, ils devraient ĂȘtre Ă©crits et dĂ©ployĂ©s par des programmeurs expĂ©rimentĂ©s, surtout lorsqu'ils impliquent des informations sensibles ou des sommes d'argent importantes.

Par ailleurs, certains affirment que les systĂšmes centralisĂ©s peuvent fournir la plupart des solutions et des fonctionnalitĂ©s offertes par les smart contracts. La principale diffĂ©rence est que les smart contracts s'exĂ©cutent sur un rĂ©seau P2P distribuĂ©, plutĂŽt qu'un serveur centralisĂ©. Et parce qu'ils reposent sur un systĂšme blockchain, ils ont tendance Ă  ĂȘtre immuables ou trĂšs difficiles Ă  modifier.

Être immuable peut ĂȘtre gĂ©nial dans certaines situations, mais trĂšs mauvais dans d'autres. Par exemple, lorsqu'une organisation autonome dĂ©centralisĂ©e (DAO) appelĂ©e « DAO » a Ă©tĂ© piratĂ©e en 2016, des millions d'Ă©thers (ETH) ont Ă©tĂ© volĂ©s en raison de dĂ©fauts dans leur code de smart contracts.

Puisque leur smart contract Ă©tait immuable, les dĂ©veloppeurs n'ont pas pu corriger le code. Cela a finalement conduit Ă  un hard fork, donnant naissance Ă  une deuxiĂšme chaĂźne Ethereum. Pour faire simple, une chaĂźne a « annulĂ© » le piratage et a renvoyĂ© les fonds aux propriĂ©taires lĂ©gitimes (cela fait partie de la blockchain Ethereum actuelle). L'autre chaĂźne a dĂ©cidĂ© de ne pas interfĂ©rer avec le piratage, en indiquant que les choses qui se produisent sur une blockchain ne doivent jamais ĂȘtre modifiĂ©es (cette chaĂźne s'appelle dĂ©sormais Ethereum Classic).

Il est important de noter que le problĂšme ne vient pas de la blockchain Ethereum. Au lieu de cela, il a Ă©tĂ© causĂ© par une mauvaise mise en Ɠuvre du smart contract.

Une autre limite des smart contracts est liée à leur statut juridique incertain. Non seulement parce qu'il s'agit d'une zone grise dans la plupart des pays, mais aussi parce que les smart contracts ne conviennent pas au cadre juridique actuel.

Par exemple, de nombreux contrats exigent que les deux parties soient correctement identifiées et de plus de 18 ans. La pseudonymité fournie par la technologie blockchain, associée au manque d'intermédiaires, peut menacer ces exigences. Bien qu'il existe des solutions potentielles à ce problÚme, l'applicabilité juridique des smart contracts est un véritable défi, surtout lorsqu'il s'agit de réseaux distribués sans frontiÚres.


Critiques

Certains passionnés de blockchain considÚrent les smart contracts comme une solution qui va bientÎt remplacer et automatiser une grande partie de nos systÚmes commerciaux et administratifs. Bien que c'est possible, c'est probablement loin de devenir la norme.

Les smart contracts constituent certainement une technologie intéressante. Mais le fait qu'ils soient distribués, déterministes, transparents et quelque peu immuables peut les rendre moins attrayants dans certaines situations.

La critique s'appuie essentiellement sur le fait que les smart contracts ne constituent pas une solution adaptĂ©e Ă  de nombreux problĂšmes du monde rĂ©el. En fait, certaines organisations ont intĂ©rĂȘt Ă  utiliser des solutions classiques basĂ©es sur des serveurs.

Par rapport aux smart contracts, les serveurs centralisés sont plus faciles et moins chers à entretenir, et ont tendance à présenter une efficacité accrue en termes de vitesse et de communication inter-réseaux (interopérabilité).


Pour conclure

Il ne fait aucun doute que les smart contracts ont eu un impact important dans le monde des cryptomonnaies, et qu'ils ont certainement rĂ©volutionnĂ© l'espace blockchain. MĂȘme si les utilisateurs finaux n'interagissent pas directement avec des smart contracts, ils sont susceptibles d'alimenter un large Ă©ventail d'applications Ă  l'avenir, allant des services financiers Ă  la gestion de la chaĂźne logistique.

Ensemble, les smart contracts et la blockchain ont le potentiel de disrupter presque tous les domaines de notre société. Mais seulement le temps dira si ces technologies révolutionnaires parviendront à surmonter les nombreux obstacles à leur adoption à grande échelle.

Partager des publications
S’inscrire pour un compte.
Mettez vos connaissances en pratique en ouvrant un compte Binance dùs aujourd’hui.