Aller au contenu
PlatformCrypto.eu
Menu

Qu'est-ce qu'un smart contract ?

Par Rédaction PlatformCrypto.eu · dernière vérification le

Réponse courte

Un smart contract est un programme stocké sur une blockchain qui applique seul ses règles dès que les conditions convenues sont réunies. Aucune entreprise ne valide les étapes, et une action terminée est irréversible. Jetons, plateformes d'échange décentralisées et NFT reposent tous dessus.

Malgré son nom, aucun juriste n'intervient et il n'y a généralement aucun accord signé. L'ESMA, l'autorité européenne des marchés financiers, décrit les smart contracts comme des programmes informatiques stockés sur la blockchain qui s'exécutent lorsque des conditions prédéfinies sont remplies, et les qualifie de colonne vertébrale de la finance décentralisée. L'idée remonte à l'informaticien Nick Szabo, au début des années 1990. Elle a pris son essor lorsqu'Ethereum a permis à chacun de publier de tels programmes, l'ESMA datant leur arrivée sur cette blockchain à 2015.

Comment s'exécute un smart contract ?

Sur Ethereum, chaque contrat a sa propre adresse et associe du code à des données stockées, comme des soldes. Il se comporte comme un compte : il peut détenir des cryptos et recevoir des transactions, mais personne ne le contrôle. La documentation pour développeurs d'Ethereum le compare à un distributeur automatique : vous insérez la bonne somme, choisissez un snack, et la machine vous le remet, sans vendeur.

Rien ne se passe tant que personne n'appelle le contrat. Vous le faites en signant une transaction dans votre wallet et en payant des frais de réseau, expliqués dans ce que sont les frais de gas. Quelques caractéristiques distinguent ces programmes :

  • Ouverts à tous. Toute personne capable d'écrire du code peut déployer un contrat, sans demander d'autorisation.
  • Lisibles par tous. Le code est public et les contrats peuvent s'appeler entre eux : les projets s'empilent sur des travaux antérieurs.
  • Aveugles au monde extérieur. Un contrat ne peut pas consulter seul un cours ou un résultat sportif. Des services appelés oracles lui fournissent ces données. Dans leur rapport commun, l'ABE et l'ESMA citent Chainlink comme principal fournisseur d'oracles.

À quoi servent-ils ?

L'ESMA a analysé le code déployé sur Ethereum et l'a classé en cinq grandes catégories : finance, opérations, jetons, wallets et infrastructure. Pour un utilisateur ordinaire, cela donne par exemple :

  • Les jetons. Des stablecoins comme EURC existent sur Ethereum sous forme de contrats de jetons qui enregistrent qui détient combien.
  • Les échanges. Uniswap est un ensemble de contrats qui permet d'échanger des jetons contre des réserves communes plutôt que via un carnet d'ordres. Sa documentation indique que le protocole ne peut pas être mis à jour.
  • Le prêt et l'emprunt. Aave met en relation prêteurs et emprunteurs par le code plutôt que par une banque. L'ensemble du domaine est présenté dans ce qu'est la DeFi.
  • Les objets de collection. Chaque NFT est une entrée numérotée dans un contrat, liée à un propriétaire. Voir ce qu'est un NFT.
  • Les wallets partagés. Un wallet multisig est lui-même un contrat qui ne déplace les fonds qu'après la signature de plusieurs clés.

Peut-on modifier ou arrêter un contrat ?

Pas le code à une adresse donnée : ethereum.org explique qu'un programme déployé reste tel quel et que, par défaut, les contrats ne peuvent pas être supprimés. Beaucoup d'équipes prévoient néanmoins des mises à jour. Avec un « proxy », l'adresse reste la même tandis que la logique qui se trouve derrière peut être remplacée, et quiconque détient ce pouvoir de mise à jour peut changer tout le contrat.

La question « qui détient les clés ? » devient donc aussi importante que « que fait le code ? ». Les recommandations d'Ethereum pour les développeurs suggèrent de répartir les droits de mise à jour via un multisig ou un vote de la communauté, et d'ajouter un délai (timelock) pour que les utilisateurs puissent partir avant qu'un changement n'entre en vigueur.

Qu'est-ce qui peut mal tourner ?

  • Les bugs. ethereum.org estime que « facilement plus d'un milliard de dollars » ont été volés ou perdus à cause de vulnérabilités dans des contrats. L'attaque contre The DAO en 2016 a vidé à elle seule 3,6 millions d'ETH. Les audits réduisent le risque mais ne détectent pas toutes les failles.
  • Pas de retour en arrière. Comme le code ne peut pas être modifié, les fonds volés sont le plus souvent perdus pour de bon. L'ABE et l'ESMA notent que les utilisateurs de la DeFi n'ont souvent que des recours flous, voire aucun.
  • Des autorisations illimitées. Les applications demandent souvent l'autorisation de dépenser une quantité illimitée d'un jeton. Cette autorisation n'expire jamais, même après avoir déconnecté votre wallet, et un contrat malveillant peut s'en servir pour vider votre solde. La révoquer est une transaction distincte, avec ses propres frais.
  • Les clés volées. Depuis 2022, l'ABE et l'ESMA considèrent les clés privées compromises comme la principale source de piratages DeFi, les attaquants misant de plus en plus sur le phishing. Protéger votre seed phrase compte autant que le code.

Qui surveille un smart contract ?

En général, personne. MiCA, le règlement européen sur les crypto-actifs, s'applique aux personnes et entreprises qui fournissent des services sur crypto-actifs, y compris lorsqu'une partie du service fonctionne de manière décentralisée. Un service entièrement assuré par du code, sans aucun intermédiaire, n'en relève pas (considérant 22). Acheter de l'ETH sur une plateforme inscrite au registre MiCA est donc une tout autre situation que l'envoyer vous-même dans un contrat.

Pour utiliser des smart contracts, il vous faut de l'ETH pour les frais et un wallet auto-hébergé comme MetaMask. Notre comparateur montre quelle plateforme agréée vous donne le plus d'ETH pour vos euros.

Autres questions sur la crypto

Les 20 questions