Qu'est-ce que les contrats intelligents ?
Basics
Dans les années 1990, Nick Szabo a introduit le concept de contrats intelligents. Il les a définis comme des outils combinant des protocoles et des interfaces utilisateur pour sécuriser les réseaux informatiques. Szabo a suggéré d'utiliser des contrats intelligents dans divers domaines impliquant des accords contractuels, notamment les systèmes de crédit, le traitement des paiements et la gestion des droits de contenu.
Dans le domaine des crypto-monnaies, les contrats intelligents peuvent être considérés comme des programmes ou des applications s'exécutant sur une blockchain. En général, ils fonctionnent comme des accords numériques appliqués selon des règles prédéfinies dans du code informatique. Tous les nœuds du réseau répliquent et exécutent ce code.
Les contrats intelligents sur une blockchain permettent des protocoles sans confiance, permettant à deux parties de s'engager via la blockchain sans se connaître ni se faire confiance. Ils peuvent être sûrs que l'accord ne s'exécutera pas si les conditions ne sont pas remplies. De plus, les contrats intelligents éliminent le besoin d'intermédiaires, réduisant considérablement les coûts opérationnels.
Bien que Bitcoin ait supporté les contrats intelligents depuis des années, le fondateur d'Ethereum, Vitalik Buterin, les a rendus vraiment populaires. Cependant, différentes blockchains peuvent avoir des façons uniques d'implémenter les contrats intelligents.
Cet article se concentrera sur les contrats intelligents s'exécutant sur la Machine Virtuelle Ethereum (EVM), un composant crucial de la blockchain Ethereum.
How Do Smart Contracts Work?
Lorsqu'un certain nombre de conditions sont remplies, un contrat intelligent exécute une tâche particulière, fonctionnant comme un programme déterministe. Un système de contrat intelligent suit des instructions "si… alors…". Cependant, malgré leur nom, les contrats intelligents ne sont ni intelligents ni des contrats juridiques ; ce sont des morceaux de code s'exécutant sur un système distribué comme une blockchain.
Les contrats intelligents sur le réseau Ethereum exécutent et gèrent des opérations blockchain lorsque des utilisateurs (adresses) interagissent. Les adresses qui ne sont pas des contrats intelligents sont des comptes externes (EOA) contrôlés par des utilisateurs, tandis que les contrats intelligents sont contrôlés par du code informatique.
Les contrats intelligents Ethereum comportent deux composants : le code du contrat et deux clés publiques. La première clé est fournie par le créateur du contrat, et l'autre clé représente le contrat lui-même, servant d'identifiant numérique unique.
Les contrats intelligents sont déployés via une transaction blockchain et ne sont activés que lorsqu'ils sont appelés par un EOA ou d'autres contrats intelligents. Cependant, un EOA déclenche toujours la première activation.
Key Features of Smart Contracts
Les contrats intelligents sur le réseau Ethereum présentent les caractéristiques clés suivantes :
- Ils sont distribués et répliqués sur tous les nœuds du réseau, contrairement aux solutions basées sur des serveurs centralisés.
- Ils sont déterministes et n'exécuteront leurs actions désignées que lorsque les exigences sont remplies. Le résultat sera le même quel que soit l'exécuteur.
- Ils sont autonomes et peuvent automatiser des tâches en tant que programme auto-exécutable. Cependant, s'ils ne sont pas déclenchés, ils restent inactifs.
- Ils sont immuables, ce qui signifie qu'ils ne peuvent pas être modifiés après le déploiement, mais peuvent être "supprimés" si une fonction spécifique a été implémentée. Cela fournit un code à l'épreuve des altérations.
- Ils sont personnalisables et peuvent être codés de différentes manières avant le déploiement, ce qui les rend utiles pour créer divers types d'applications décentralisées (DApps). Cela est rendu possible parce qu'Ethereum est une blockchain Turing-complète.
- Ils sont sans confiance, permettant à deux parties ou plus d'interagir sans connaissance ou confiance préalable. La technologie blockchain assure l'exactitude des données.
- Ils sont transparents puisque basés sur une blockchain publique, ce qui signifie que leur code source est visible par tous.
Is It Possible to Modify or Delete a Smart Contract?
Modifier ou supprimer un contrat intelligent Ethereum après son déploiement n'est pas possible. La fonction SELFDESTRUCT est le seul moyen de "supprimer" un contrat, mais elle doit être incluse dans le code lors de la création. Si la fonction est absente, le contrat est immuable et ne peut pas être supprimé. Cependant, les développeurs peuvent créer des contrats intelligents upgradables offrant plus de flexibilité en divisant le code en contrats plus petits. Certains de ces contrats peuvent être supprimés et remplacés, tandis que d'autres restent immuables. Le processus de création de contrats intelligents upgradables peut varier en complexité.
Use Cases and Benefits of Smart Contracts
Les contrats intelligents offrent divers avantages et cas d'utilisation grâce à leur nature programmable. Ils peuvent être conçus de multiples façons pour fournir différents services et solutions. En tant que programmes décentralisés et auto-exécutables, les contrats intelligents apportent une plus grande transparence et réduisent les coûts opérationnels tout en augmentant l'efficacité et en diminuant les charges bureaucratiques.
Les contrats intelligents sont particulièrement utiles dans les scénarios impliquant le transfert ou l'échange de fonds entre plusieurs parties. Ils peuvent être utilisés pour divers cas d'usage, tels que la création d'actifs tokenisés, des systèmes de vote, des portefeuilles crypto, des échanges décentralisés, des jeux et des applications mobiles. De plus, ils peuvent être déployés en conjonction avec d'autres solutions blockchain pour couvrir des domaines comme la santé, la charité, la chaîne d'approvisionnement, la gouvernance et la finance décentralisée (DeFi). En résumé, les contrats intelligents sont hautement personnalisables et peuvent être conçus pour offrir de nombreux services et solutions différents.
ERC-20 Tokens
La blockchain Ethereum sert de base à de nombreux tokens standardisés selon la spécification ERC-20. Ces tokens sont souvent appelés tokens ERC-20 et représentent une part importante du marché actuel des crypto-monnaies.
De nombreuses startups et entreprises blockchain ont utilisé des contrats intelligents pour créer leurs propres tokens sur le réseau Ethereum, les Initial Coin Offerings (ICO) étant la méthode de distribution typique. En intégrant des contrats intelligents dans le processus d'ICO, les entreprises peuvent gérer l'échange de fonds et la distribution de tokens de manière efficace et sécurisée, sans nécessiter de confiance entre les parties.
Limitations
La nature décentralisée et programmable des contrats intelligents offre de nombreux avantages, tels qu'une plus grande transparence et efficacité, une réduction des coûts et un large éventail de cas d'utilisation. Cependant, il existe aussi quelques limites à connaître.
Une limitation est le risque de vulnérabilités et de bugs dus au code écrit par des humains. Pour minimiser ces risques, il est conseillé de faire appel à des programmeurs expérimentés pour écrire et déployer les contrats intelligents, en particulier lorsque des informations sensibles ou de grosses sommes d'argent sont en jeu.
De plus, les systèmes centralisés peuvent offrir des fonctionnalités similaires à celles des contrats intelligents. La principale différence est que les contrats intelligents s'exécutent sur un réseau P2P distribué, ce qui les rend immuables ou du moins difficiles à modifier. Si l'immuabilité peut être bénéfique dans certaines situations, elle peut aussi être préjudiciable dans d'autres. Par exemple, lorsque The DAO a été piraté en 2016 en raison de failles dans son code de contrat intelligent, des millions d'ETH ont été volés. L'immuabilité du contrat a empêché les développeurs de le corriger, entraînant un hard fork et la création d'une seconde chaîne Ethereum.
Une autre limitation est le statut juridique incertain des contrats intelligents, qui ne sont pas toujours conformes aux cadres juridiques actuels. Par exemple, certains contrats requièrent une identification appropriée et une vérification de l'âge des deux parties, ce qui peut être mis en danger par la pseudonymie et l'absence d'intermédiaires offerte par la technologie blockchain. Ce défi d'applicabilité juridique est particulièrement pertinent pour les réseaux sans frontières et distribués.
A Critical View of Smart Contracts
Le potentiel des contrats intelligents pour remplacer et automatiser les systèmes commerciaux et bureaucratiques est une idée populaire parmi les enthousiastes de la blockchain. Cependant, cette réalité peut ne pas être réalisable pour de nombreux problèmes du monde réel en raison des limites des contrats intelligents.
Bien que les contrats intelligents soient une technologie fascinante, leur nature distribuée, déterministe, transparente et immuable peut les rendre moins attrayants dans certaines situations. Par conséquent, certaines organisations peuvent trouver plus efficace d'utiliser des alternatives conventionnelles basées sur des serveurs plutôt que des contrats intelligents.
L'une des principales critiques des contrats intelligents est leur inadaptation à certains cas d'utilisation. Les serveurs centralisés, en comparaison, sont plus faciles et moins coûteux à maintenir et offrent une plus grande efficacité en termes de vitesse et de communication inter-réseaux.
Conclusion
Les contrats intelligents ont transformé l'industrie de la blockchain, provoquant un impact significatif sur les crypto-monnaies. Bien que les utilisateurs n'interagissent généralement pas directement avec les contrats intelligents, ils ont le potentiel d'alimenter une grande variété d'applications, des services financiers à la gestion de la chaîne d'approvisionnement.
Les contrats intelligents et la blockchain ont le potentiel de révolutionner la société, mais il reste à voir si ces technologies révolutionnaires pourront surmonter les obstacles à une adoption généralisée.