Smart contract : définition simple et fonctionnement
Les smart contracts sont devenus des éléments incontournables de l'activité des blockchains, même si leur fonctionnement reste encore méconnu.
Qu'est-ce qu'un smart contract ?
Il s'agit d'un contrat reposant sur un code informatique, dont l'exécution répond à des conditions prédéfinies. Malgré ce que son intitulé laisse penser, un smart contract n'est donc pas si intelligent qu'on l'imagine. Hébergé sur un réseau décentralisé comme une blockchain, il devient en revanche autonome et éternellement accessible à tous.
Contrairement à une croyance répandue, le concept de smart contract n'a pas été inventé par Vitalik Buterin ou d'autres développeurs d'Ethereum mais a été initialement pensé au début des années 1990 par Nick Szabo, informaticien, cryptographe et par ailleurs inventeur d'un des premiers concepts de monnaie numérique décentralisée, Bit Gold.
Pourquoi utiliser un smart contract ?
Un smart contract permet d'opérer une relation transactionnelle de manière désintermédiée et automatisée. A titre d'exemple, si vous souhaitez exécuter une transaction à une date de votre choix, il vous faudra passer par un smart contract, ici relativement primitif (timelock). L'existence de smart contract permet nombre d'usages et constitue le socle de ce que l'on appelle la DeFi (finance décentralisée).
Quel est le lien entre smart contract et NFT ?
L'émission de NFT, communément appelé mint, se déroule par l'exécution d'un smart contract, au sein duquel sont délimitées certaines conditions (prix, nombre total, date de clôture, etc…).
Un smart contract est-il infaillible ?
Même si l'utilisation de smart contract présente de nombreux avantages, elle comporte également des risques. Comme tout code, un smart contract peut conduire à des bugs ou des failles susceptibles d'intéresser les hackers : l'exemple le plus connu est celui de The DAO, un smart contract lancé en 2016 pour collecter des fonds destinés à une organisation autonome décentralisée. Après une levée d'environ 150 millions de dollars, le contrat a été piraté trois mois plus tard à hauteur de 60 millions de dollars en ether, ce qui a conduit à une réécriture polémique de la blockchain Ethereum pour sauver ces fonds.
Par ailleurs, un smart contract est rarement intelligible pour un utilisateur non aguerri : de nombreux vols de cryptomonnaies ont lieu par des interactions avec des smart contracts malveillants, par exemple prétendument des mints de NFT.
Sur quelles blockchains trouvent-on des smart contracts ?
En fait, la plupart des blockchains sont en mesure d'accueillir des smart contracts : peu le savent mais de nombreux smart contracts sont exécutés sur le layer-1 de Bitcoin, comme le multi-signature (la délivrance de fonds par plusieurs décisionnaires) et les timelock contracts (la délivrance de fonds à une certaine date). Une capacité d'ailleurs facilitée par la mise à jour de 2021, Taproot, qui réduit le poids et le coût de telles opérations. De plus, son layer-2 Lightning Network n'est en fait qu'un réseau de paiements en pair-à-pair s'appuyant sur ces smart contracts natifs.
Cependant, lorsqu'il est question de smart contract, nombreux sont ceux qui pensent à ceux d'Ethereum, première plateforme à accueillir des smart contracts dits Turing-complet, c'est-à-dire en mesure de répliquer l'ensemble des fonctionnalités d'une machine de Turing, tant qu'il bénéficie de suffisamment de ressources.
Ce sont deux approches qui s'opposent et les développeurs de Bitcoin, tour à tour, ont toujours jugé l'utilisation de smart contract Turing-complet dangereuse sur le layer-1 car représentant un vecteur d'attaque dDos. La multiplication de smart contracts sur le layer-1 Ethereum représente en effet toujours un problème de congestion du réseau, d'où les nombreuses créations de layer-2 et sidechains. D'ailleurs, selon deux études (l'une issue de l'université de Zurich, l'autre de l'université islamique de Malaysie), seulement 6,9% des smart contracts ethereum sont véritablement Turing-complet.
Aujourd'hui, outre les réseaux EVM-compatibles (c'est-à-dire s'appuyant sur le code d'Ethereum) comme Arbitrum, Gnosis Chain Loopring, Optimism ou Polygon, les plateformes Algorand, Avalanche, Cardano, Cosmos, Polkadot, Stacks, Solana, Tezos ou Waves accueillent elles aussi des smart contracts. Même si ce réseau est aujourd'hui quelque peu oublié, Obyte (ex-Byteball) permettait de créer aisément des smart contracts en no code au sein de son wallet, associés à des oracles (des sources d'informations) pour les exécuter.