Introduction
Dans les années 1990, Nick Szabo a été le premier à proposer le concept de contrats intelligents. Il définit alors les contrats intelligents comme des outils permettant de standardiser et d’assurer la sécurité des réseaux informatiques en combinant protocoles et interfaces utilisateurs.
Szabo a discuté de l'utilisation potentielle des contrats intelligents dans divers domaines liés aux accords contractuels, tels que les systèmes de crédit, les processus de paiement et la gestion des droits de contenu.
Dans le domaine des cryptomonnaies, les contrats intelligents peuvent être définis comme des applications ou des programmes exécutés sur la blockchain. Généralement, ils fonctionnent comme un protocole numérique appliqué par des règles spécifiques. Ces règles sont prédéfinies par un code informatique et sont répliquées et exécutées par tous les nœuds du réseau.
Les contrats intelligents Blockchain prennent en charge la création de protocoles sans confiance. Cela signifie que les parties à un contrat s’engagent via la blockchain sans se connaître ni se faire confiance. Les parties ont déterminé que si les conditions n'étaient pas remplies, le contrat ne serait pas exécuté. De plus, l’utilisation de contrats intelligents élimine le besoin d’intermédiaires, ce qui réduit considérablement les coûts d’exploitation.
Bien que les contrats intelligents soient pris en charge par le protocole Bitcoin depuis de nombreuses années, ils ont été popularisés par le créateur et co-fondateur d'Ethereum, Vitalik Buterin. Il convient de noter que chaque blockchain met en œuvre les contrats intelligents différemment.
Cet article se concentrera sur les contrats intelligents exécutés dans la machine virtuelle Ethereum (EVM), une partie importante de la blockchain Ethereum.
Comment fonctionnent les contrats intelligents ?
En termes simples, un contrat intelligent est un programme déterministe qui exécute des tâches spécifiques lorsque certaines conditions sont remplies. Par conséquent, les systèmes de contrats intelligents suivent généralement les instructions conditionnelles « si... alors... ». Bien que le concept de « contrat intelligent » soit bien connu, il ne s’agit ni d’un contrat légal, ni d’un contrat intelligent. Il ne s’agit que d’un morceau de code exécuté dans un système distribué blockchain.
Dans le réseau Ethereum, les contrats intelligents sont responsables de l'exécution et de la gestion des opérations blockchain lorsque les utilisateurs (adresses) interagissent les uns avec les autres. Les adresses en dehors des contrats intelligents sont appelées « Comptes externes (EOA) ». Ainsi, les contrats intelligents sont contrôlés par un code informatique, tandis que les comptes externes (EOA) sont contrôlés par les utilisateurs.
Les contrats intelligents Ethereum se composent essentiellement d’un code de contrat et de deux clés publiques. La première clé publique est fournie par le créateur du contrat, et l'autre clé publique est le contrat lui-même et est utilisée comme identifiant numérique unique pour chaque contrat intelligent.
Tout déploiement de contrat intelligent s'effectue via des transactions blockchain et n'est activé que lorsqu'un compte externe (EOA) ou un autre contrat intelligent est appelé. Cependant, les contrats intelligents sont généralement déclenchés par un compte externe (EOA), c'est-à-dire par l'utilisateur pour la première fois.
Principales caractéristiques
Les contrats intelligents Ethereum présentent les caractéristiques communes suivantes :
distribué. Les contrats intelligents sont répliqués et distribués sur tous les nœuds du réseau Ethereum. Ceci est très différent des autres solutions centralisées basées sur un serveur.
Certitude. Les contrats intelligents n'exécutent des actions prédéfinies que lorsque les exigences sont remplies. Et peu importe qui le fait, les résultats restent cohérents.
autonomie. Par rapport aux programmes « auto-exécutables », les contrats intelligents effectueront automatiquement diverses tâches. La plupart du temps, les contrats intelligents non déclenchés restent dans un état « veille » et n’effectuent aucune action.
Immutabilité. Les contrats intelligents ne peuvent pas être modifiés après leur déploiement. Les contrats intelligents ne peuvent être « supprimés » qu’après la mise en œuvre de fonctions spécifiques. Alors autant dire que les contrats intelligents fournissent un code infalsifiable.
Personnalisation. Avant le déploiement, les contrats intelligents sont codés de différentes manières. Par conséquent, il peut être utilisé pour créer une grande variété d’applications décentralisées (DApps). Cela a tout à voir avec le fait qu’Ethereum est une blockchain complète de Turing.
Méfiance. Deux ou plusieurs parties peuvent interagir via des contrats intelligents sans avoir besoin de se connaître ou de se faire confiance. De plus, la technologie blockchain garantira l’exactitude des données.
Transparence. La base des contrats intelligents est une blockchain publique, de sorte que le code source est non seulement immuable, mais également ouvert et transparent pour tous.
Les contrats intelligents peuvent-ils être modifiés ou supprimés ?
Une fois déployés, les contrats intelligents Ethereum ne peuvent pas ajouter de nouvelles fonctions. Cependant, tant que le créateur du contrat réserve la fonction « SELFDESTRUCT » dans le code, cette fonction peut ultérieurement « supprimer » le contrat intelligent et le remplacer par un nouveau contrat. Si cette fonction n'est pas réservée dans le code, le smart contract ne pourra pas être supprimé.
Il convient de noter que grâce aux contrats intelligents dits évolutifs, les développeurs peuvent fonctionner de manière plus flexible sur l'immuabilité du contrat. Il existe de nombreuses façons de créer des contrats intelligents évolutifs, chacun avec différents niveaux de complexité.
À titre d’exemple simple, supposons qu’un contrat intelligent soit divisé en plusieurs contrats plus petits. Certaines parties sont conçues pour être immuables, tandis que d'autres permettent des fonctions de « suppression ». Autrement dit, des parties du code (contrats intelligents) peuvent être supprimées et remplacées, tandis que d'autres fonctionnalités restent inchangées.
Avantages et cas d'utilisation
En tant que codes programmables, les contrats intelligents sont hautement personnalisables, conçus de nombreuses manières et offrent une grande variété de services et de solutions.
En tant que programmes décentralisés et auto-exécutables, les contrats intelligents augmentent la transparence et réduisent les coûts de fonctionnement. En fonction de la mise en œuvre, les contrats intelligents peuvent également améliorer l’efficacité de la mise en œuvre et réduire les coûts fastidieux.
Les contrats intelligents sont particulièrement utiles lorsqu'il s'agit de transferts de fonds ou de transactions entre deux ou plusieurs parties.
En d’autres termes, les contrats intelligents peuvent être adaptés à un large éventail de cas d’utilisation, notamment la création d’actifs tokenisés, de systèmes de vote, de portefeuilles de crypto-monnaie, d’échanges décentralisés, de jeux et d’applications mobiles. Les contrats intelligents peuvent également être déployés avec d'autres solutions blockchain couvrant des domaines tels que la santé, la charité, la chaîne d'approvisionnement, la gouvernance et la finance décentralisée (DeFi).
ERC-20
Les jetons émis sur la blockchain Ethereum suivent la norme ERC-20. Cette norme spécifie les fonctionnalités de base de tous les jetons Ethereum. Par conséquent, ces actifs numériques sont souvent appelés « jetons ERC-20 » et représentent une grande partie des crypto-monnaies existantes.
De nombreuses sociétés et startups blockchain ont déployé des contrats intelligents pour émettre de manière autonome des jetons numériques sur le réseau Ethereum. Après l'émission d'un jeton, la plupart des entreprises distribuent leurs jetons ERC-20 via une offre initiale de pièces (ICO). Dans la plupart des cas, l'utilisation de contrats intelligents peut réaliser efficacement des transactions de fonds et une distribution de jetons sans confiance.
limites
Les contrats intelligents consistent en un code informatique écrit par l'homme. Le code comportera des défauts et des failles, ce qui entraînera de nombreux risques. Idéalement, les contrats intelligents devraient être rédigés et déployés par des programmeurs expérimentés, en particulier lorsqu'il s'agit d'informations sensibles et de grosses sommes d'argent.
De plus, certains pensent que les systèmes centralisés peuvent fournir la plupart des solutions et fonctions des contrats intelligents. La principale différence est que les contrats intelligents s'exécutent sur un réseau P2P distribué plutôt que sur un serveur centralisé. De plus, les contrats intelligents sont basés sur des systèmes blockchain et ne peuvent donc souvent pas être falsifiés ou difficiles à modifier.
L’immuabilité des contrats intelligents présente des avantages évidents, mais dans certains cas, elle peut s’avérer contre-productive. Par exemple, l'organisation autonome décentralisée « The DAO » a été piratée en 2016 et des millions de pièces Ethereum (ETH) ont disparu. La raison en était que le code du contrat intelligent présentait des failles.
Étant donné que les contrats intelligents sont immuables, les développeurs ne peuvent pas corriger le code. Cela a finalement conduit à un hard fork, à partir duquel la deuxième chaîne Ethereum est née. En termes simples, une chaîne (qui fait partie de la blockchain Ethereum actuelle) est « restaurée » telle qu’elle était avant le piratage, restituant ainsi les fonds à leurs propriétaires d’origine. L’autre chaîne, désormais connue sous le nom d’Ethereum Classic, a décidé de ne pas intervenir dans le piratage, insistant sur le fait que les événements se produisant dans la blockchain ne doivent jamais être falsifiés.
Il est important de noter que ce problème n’est pas causé par la blockchain Ethereum, mais par une exécution incorrecte des contrats intelligents.
Une autre limite des contrats intelligents est liée à leurs effets juridiques flous. Les contrats intelligents se situent dans une zone grise dans la plupart des pays et ne s’appliquent pas encore aux cadres juridiques actuels.
Par exemple, de nombreux contrats exigent que les deux parties à la transaction passent une authentification appropriée par leur nom réel et soient âgées de plus de 18 ans. Cependant, l’anonymat de la technologie blockchain et le manque d’intermédiaires entreront en conflit avec les exigences contractuelles. Une solution à ce problème pourrait apparaître dans le futur. Cependant, les contrats intelligents fonctionnent dans un réseau distribué sans frontières, ce qui rend l'application de la loi très difficile.
Désavantages
Certains passionnés de blockchain considèrent les contrats intelligents comme des solutions autonomes qui remplaceront une grande partie des systèmes commerciaux et bureaucratiques existants. Même si l’idée peut se concrétiser, il reste encore un long chemin à parcourir avant qu’elle ne devienne la norme.
Les contrats intelligents sont en effet une technologie intéressante. Cependant, des caractéristiques telles que la distribution, le déterminisme, la transparence et l’immuabilité réduisent parfois l’attrait des contrats intelligents.
L’inconvénient essentiel des contrats intelligents est qu’ils ne peuvent pas résoudre correctement de nombreux problèmes pratiques. En fait, certaines organisations utilisent actuellement des solutions de serveur traditionnelles comme solution provisoire.
Par rapport aux contrats intelligents, les serveurs centralisés sont plus faciles et moins coûteux à entretenir, et présentent souvent des avantages majeurs en termes de vitesse et de communication inter-réseau (interopérabilité).
Résumer
Il ne fait aucun doute que les contrats intelligents ont eu un impact profond sur le domaine des crypto-monnaies et ont en effet apporté des changements majeurs dans le domaine de la blockchain. Les utilisateurs finaux n’interagissent pas nécessairement directement avec les contrats intelligents. Mais dans un avenir proche, les contrats intelligents seront utilisés plus largement, couvrant divers domaines tels que les services financiers et la gestion de la chaîne d'approvisionnement.
Ensemble, les contrats intelligents et la blockchain bouleversent presque tous les domaines de la société actuelle. Mais seul le temps nous dira si ces technologies révolutionnaires pourront surmonter les obstacles et éventuellement parvenir à une adoption massive.

