Définition
Smart contract : définition
Aussi appelé : contrat intelligent
Un smart contract, ou contrat intelligent, est un programme déployé sur une blockchain qui s'exécute de manière déterministe selon son code, sans intermédiaire, et dont l'état et les règles sont vérifiables par tous les participants du réseau.
Thème : Ethereum et smart contracts
L'idée a été formulée dans les années 1990 par l'informaticien Nick Szabo, mais elle s'est concrétisée à grande échelle avec Ethereum, conçu pour exécuter des programmes arbitraires. Un smart contract possède une adresse, du code et un espace de stockage. N'importe qui peut l'appeler en envoyant une transaction ; chaque nœud du réseau exécute alors le même code et aboutit au même résultat.
Malgré son nom, un smart contract n'est ni intelligent ni forcément un contrat au sens juridique. C'est un programme qui applique mécaniquement des règles : si telle condition est remplie, transférer tel montant, enregistrer tel vote ou créer tel token. Il ne s'exécute pas seul : il réagit à des transactions, et il ne connaît du monde extérieur que ce que lui transmettent des oracles. Les smart contracts sont la base des tokens, des DEX, des protocoles de prêt, des NFT ou des DAO. Une fois déployé, le code est en principe immuable, sauf si ses auteurs ont prévu un mécanisme de mise à jour, ce qui introduit d'autres questions de confiance.
Un exemple concret
Imaginons un contrat de collecte de fonds : chaque contributeur envoie des cryptos au contrat avant une date limite. Si l'objectif est atteint, le contrat transfère la somme au porteur de projet ; sinon, chaque contributeur peut appeler une fonction pour récupérer sa mise. Aucune banque ni plateforme n'intervient, et tout le monde peut vérifier le code.
Les risques à connaître
Un bug dans le code peut être exploité et entraîner la perte des fonds, sans recours possible. Le piratage de The DAO en 2016 en est un exemple célèbre. Les clés d'administration, les mécanismes de mise à jour et la dépendance aux oracles sont d'autres sources de risque. Un audit réduit ces risques sans les supprimer.
Questions fréquentes sur Smart contract
Un smart contract a-t-il une valeur juridique ?
Pas automatiquement. C'est un programme ; sa portée juridique dépend du droit applicable et des accords conclus entre les parties en dehors du code.
Peut-on modifier un smart contract après son déploiement ?
Le code déployé ne change pas, mais les développeurs peuvent prévoir une architecture de proxy qui redirige vers une nouvelle version. Il faut alors savoir qui détient ce pouvoir.