Qu'est-ce qu'un Smart Contract?

Partager
Copied to clipboard!
Qu'est-ce qu'un Smart Contract?
Ecoutez cet article
00:00 / 00:00

Nick Szabo a d'abord décrit les smart contracts, les contrats intelligents en français, dans les années 1990. À l'époque, il établit la définition d'un contrat intelligent comme un outil qui formalise et sécurise les réseaux informatiques en combinant des protocoles avec des interfaces utilisateur. Szabo décrivait l'utilisation potentielle de contrats intelligents 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 un contenu.

Dans le monde des crypto-monnaies, nous pouvons définir un contrat intelligent comme une application ou un programme qui fonctionne sur une blockchain. Généralement, ils fonctionnent comme un accord numérique qui est réalisé au travers d'un ensemble de règles spécifiques. Ces règles sont prédéfinies par le code informatique, qui est reproduit et exécuté par tous les noeuds de réseau.

Dans les grandes lignes, les contrats intelligents permettent la création de protocoles dits "trustless". Cela signifie que deux parties peuvent s'impliquer contractuellement sans qu'ils n'aient besoin de se connaître ou de se faire confiance. Ils sont assurés que si les conditions du contrat ne sont pas remplies, ce dernier ne sera pas exécuté. En plus de cela, l'utilisation de contrats intelligents peut permettre de supprimer le besoin d'intermédiaires, et ainsi réduire les coûts opérationnels de manière significative.

Bien que le protocole Bitcoin intègre les contrats intelligents depuis quelques années déjà, ils furent rendu populaires par le créateur et co-fondateur d'Ethereum, Vitalik Buterin. Il est important de noter que chaque blockchain peut présenter une manière différente d'implémenter les contrats intelligents. 

Cet article se concentrera sur les contrats intelligents qui fonctionnent sur la machine virtuelle Ethereum (EVM), qui est une composante essentielle de la blockchain Ethereum.


Comment fonctionnent-ils?

En termes simples, un contrat intelligent fonctionne en tant que programme déterministe. Il exécute une tâche particulière quand, et si, certaines conditions sont remplies. En tant que tel, un système de contrats intelligents suit souvent l'ordre d'execution "si… alors…". Mais malgré la terminologie populaire, les contrats intelligents ne sont pas des contrats légaux, ni intelligents. Ils ne sont qu'un morceau de code fonctionnant sur un système distribué (blockchain).

Sur le réseau Ethereum, les contrats intelligents sont responsables de l'exécution et de la gestion des opérations de blockchain qui se déroulent lorsque les utilisateurs (adresses) interagissent entre eux. Toute adresse qui n'est pas un contrat intelligent est appelée un compte externe (EOA). Ainsi, les contrats intelligents sont contrôlés par les nœuds informatiques, et les EOA par les utilisateurs.

En principe, les contrats intelligents Ethereum sont constitué 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 comme un identifiant numérique unique, propre à chaque contrat intelligent.

Le déploiement d'un contrat intelligent est effectué par une transaction blockchain, et il ne peut être activé que par un EOA ou par d’autres contrats intelligents. Cependant, le premier déclencheur sera toujours un EOA (utilisateur).


Principales caractéristiques

De manière générale, un contrat intelligent Ethereum présente les caractéristiques suivantes:

Distribué. Les contrats intelligents sont répliqués et distribués dans tous les nœuds du réseau Ethereum. C'est l'une des principales différence par rapport aux autres solutions existantes et basées sur des serveurs centralisés.

Déterministe. Les contrats intelligents ne réalisent que les actions pour lesquelles ils ont été conçus, et ce seulement si les exigences contractuelles sont respectées. De plus, le résultat sera toujours le même, peu importe l'origine de leur exécution.

Autonome. Les contrats intelligents permettent d'automatiser toutes sortes de tâches, grâce à leur fonctionnalité d'auto-exécution. Cependant, dans la plupart des cas, s'ils ne sont pas déclenchés, ils resteront "dormant" et ne réaliseront aucune action.

Immuable. Les contrats intelligents ne peuvent pas être modifiés après déploiement. Ils ne peuvent être que "supprimés" si une fonction particulière a été implémentée en amont. Ainsi, nous pouvons dire des contrats intelligents qu'ils fournissent un code infalsifiable.

Personnalisable. Avant le déploiement, les contrats intelligents peuvent être codés de plusieurs manières. Ainsi, ils peuvent être utilisés pour créer de nombreux types d'applications décentralisées (DApps). Ceci est lié au fait que Ethereum est une blockchain Turing-complet.

Trustless. Deux parties, ou plus, peuvent interagir par le biais de contrats intelligents sans qu'elles n'aient besoin de se connaître ou de se faire confiance. De plus, la technologie blockchain garantie l'intégrité et l'exactitude des données.

Transparent. Puisque les contrats intelligents sont basés sur une blockchain publique, leur code source n'est pas seulement immuable, mais aussi visible et consultable par n'importe qui.


Puis-je modifier ou supprimer un contrat intelligent ?

Il est impossible d'ajouter des nouvelles fonctionnalités à un contrat intelligent Ethereum après son déploiement. Cependant, si son créateur inclue la fonction dénommée AUTODESTRUCTION dans le code, il sera en mesure de "supprimer" le contrat intelligent par la suite - et de la remplacer par un nouveau. A l'inverse, si la fonction n'est pas incluse dans le code en amont, il sera impossible de supprimer le contrat.

Il existe des contrats intelligents dit "actualisables" qui offrent aux développeurs une plus grande flexibilité vis à vis de l'immuabilité des contrats. On dénombre de multiples manières de créer des contrats intelligents actualisables, avec différents degrés de complexité.

Pour prendre un exemple simplifié, imaginons qu'un contrat intelligent est divisé en plusieurs contrats plus petits. Certains étant conçus pour être immuables, et d'autres possédant la fonction de "suppression". Cela signifie qu'une partie du code des contrats peut être effacée et remplacée, alors que d'autres fonctionnalités resteront intactes.


Avantages et cas d'utilisation

En tant que code programmable, les contrats intelligents sont hautement personnalisables et peuvent être conçus de différentes façons, offrant de nombreux types de services et de solutions.

Tenant compte que ces programmes sont décentralisés et autoexécutifs, les contrats intelligents peuvent accroître la transparence et réduire les coûts opérationnels, et, en fonction de la mise en œuvre, ils peuvent également accroître l'efficacité et réduire les dépenses bureaucratiques.

Les contrats intelligents sont particulièrement utiles dans des situations impliquant le transfert ou l'échange de fonds entre deux parties ou plus.

En d'autres termes, les contrats intelligents peuvent être conçus pour une grande variété de cas d'utilisation. Certains exemples incluent la création d'actifs tokenisés, les systèmes de vote, les portefeuilles crypto, les échanges décentralisés, les jeux et les applications mobiles. Ils peuvent également être déployés avec d'autres solutions blockchain qui s'attaquent aux domaines medicauxcaritatifs, des chaîne d'approvisionnement, 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 principales de tous les tokens basés sur Ethereum. En conséquence, ces actifs numériques sont souvent appelés tokens ERC-20, et ils représentent une grande partie des crypto-monnaies existantes.

De nombreuses entreprises et start-ups liées à la blockchain ont déployé des contrats intelligents pour émettre leurs jetons numériques sur le réseau Ethereum. Après émission, la majorité de ces entreprises ont distribué leurs jetons ERC-20 par l'intermédiaire d'Initial Coin Offering (ICO). Dans la plupart des cas, l'utilisation de contrats intelligents a permis l'échange de fonds, et la distribution de jetons, de manière fiable et efficace.


Limitations

Les contrats intelligents sont établis à partir de code informatique rédigé par des humains. Cela implique de nombreux risques, car en conséquence, ce code est soumis à des vulnérabilités et des bogues. Idéalement, il doit être écrit et déployé par des programmeurs expérimentés, en particulier lorsque ces contrats impliquent des informations sensibles ou de grandes quantités d'argent.

En outre, certain soutiennent que des systèmes centralisés peuvent fournir la plupart des solutions et fonctionnalités offertes par les contrats intelligents. La principale différence étant que les contrats intelligents fonctionnent sur un réseau P2P plutot qu'un serveur centralisé. De ce fait, parce qu'ils sont basé sur un système blockchain, ils tendent à être immuables ou très difficile à changer.

La caractéristique d'immuabilité peut s'avérer fantastique dans certaines situations, et handicapante dans d'autres. Par exemple, lorsqu'une Organisation Autonome Decentralisée (DAO) nommée The DAO fut hackée en 2016, des millions d'Ether (ETH) furent dérobés en raison de défauts présents dans le code du contrat intelligent.

Comme leur contrat intelligent était immuable, les développeurs n'ont pas pu corriger le code. Cela a finalement conduit à une hard fork, qui donna naissance à une deuxième chaîne Ethereum. Résumé de manière simple, la chaîne à été "rembobinée" jusqu'au moment précédant le hack et les fonds ont donc été rendus aux propriétaires légitimes (sur la chaîne Ethereum actuelle). L'autre chaîne a décidé de ne pas interférer avec le hack, en revendiquant que les choses qui se produisent sur une blockchain se doivent de ne jamais être modifiées (cette chaîne est maintenant appelée Ethereum Classic).

Il est important de noter que le problème ne venait pas de la chaîne Ethereum en elle-même, mais d'une implémentation défectueuse d'un smart contract.

Une autre limitation relative aux contrats intelligents réside dans leur manque de certitude vis à vis des statuts légaux. Non seulement parce qu'il constituent une zone grise dans la plupart des pays, mais aussi parce que les contrats intelligents ne sont pas inclus dans le cadre juridique actuel.

Par exemple, de nombreux contrats exigent que les deux parties soient correctement identifiées et aient plus de 18 ans. La pseudonymité fournie par la technologie de la blockchain, combinée à l'absence d'intermédiaires, risque de menacer ces exigences. Alors qu'il existe de potentielles solutions à cela, l'application légale des contrats intelligents représente un vrai challenge - surtout lorsque l'on traite avec des réseaux distribués sans frontières.


Critiques

Certains passionnés de la blockchain considèrent que les contrats intelligents remplaceront et automatiseront une grande partie de nos systèmes commerciaux et bureaucratiques. Bien que cette réalité soit possible, nous sommes encore probablement loin de son avènement.

Les contrats intelligents sont certainement un élément de technologie intéressant, mais leur propriétés (distribués, déterministes, transparents et immuables) peuvent les rendre moins attrayants dans certaines situations.

Essentiellement, les critiques reposent sur le fait que les contrats intelligents ne sont pas une solution appropriée pour de nombreux problèmes réels. En fait, certaines organisations sont mieux loties en utilisant des alternatives conventionnelles basées sur des serveurs.

Par rapport aux contrats intelligents, les serveurs centralisés sont plus faciles et moins coûteux à maintenir, et ont tendance à présenter une plus grande efficacité en termes de vitesse et de communication interréseau (interopérabilité).


Pour conclure

Il ne fait aucun doute que les contrats intelligents ont eu un impact important dans le monde des crypto-monnaies, ils ont clairement révolutionné l'espace de la blockchain. Bien que les utilisateurs n'interagissent pas spécialement de manière directe avec les contrats intelligents, il est fort probable que ces derniers constituent la clé de voûte d'une large variété d'applications dans le futur, s'étendant de services financiers jusqu'aux chaînes d'approvisionnement.

Lorsqu'ils sont combinés, les contrats intelligents et la blockchain ont le potentiel de révolutionner de nombreux domaines de notre société actuelle. Mais seul le temps nous dira si ces technologies innovantes parviendront à surmonter les obstacles qui les séparent de leur adoption à grande échelle.

Loading