Un smart contract est un programme déposé sur une blockchain, qui s'exécute tout seul quand ses conditions sont réunies et que plus personne ne peut modifier, pas même celui qui l'a écrit. C'est ce qui permet à un prêt, un échange ou une assurance de fonctionner sans que personne ne tienne les comptes.

Un smart contract, c'est un distributeur automatique : vous mettez la pièce, il donne le produit, il n'y a personne derrière.Le terme est trompeur : ce n'est ni un contrat au sens juridique, ni intelligent. C'est du code, bête et discipliné.

Un smart contract, c'est quoi exactement ?

Le terme a été inventé en 1994 par Nick Szabo, un informaticien et juriste, bien avant l'existence de la moindre blockchain. Son exemple était déjà le distributeur automatique : une machine qui exécute un accord commercial sans arbitre, sans confiance et sans recours. Vous insérez une pièce, la machine délivre la boisson. Personne ne vérifie que vous êtes solvable, personne ne peut décider de ne pas vous servir.

Il a fallu attendre Ethereum, en 2015, pour que l'idée devienne réalité. La blockchain apporte ce qui manquait : un endroit où déposer du code que personne ne contrôle et que tout le monde peut vérifier.

Deux malentendus à écarter tout de suite.

Ce n'est pas un contrat. Aucune valeur juridique en soi, aucun tribunal derrière. Si le code fait autre chose que ce que vous croyiez, c'est le code qui gagne. Certains pays commencent à reconnaître leur portée légale, mais un smart contract mal écrit ne devient pas valable parce qu'un avocat l'aurait voulu.

Ce n'est pas intelligent. Aucune interprétation, aucune adaptation aux circonstances. Un contrat classique laisse une marge d'appréciation à un juge. Un smart contract applique sa règle à la lettre, y compris quand le résultat est absurde.

Comment fonctionne un smart contract

Quatre étapes, dans cet ordre, et la deuxième change tout.

Infographie du cycle de vie d'un smart contract en quatre étapes : publication du code sur la blockchain, verrouillage définitif, réalisation d'une condition, puis exécution automatique sans intervention humaine

1. Le code est écrit et publié. Un développeur rédige les règles, le plus souvent en Solidity, le langage d'Ethereum. Le contrat est ensuite déployé sur la blockchain : il reçoit une adresse, comme un portefeuille, et son code devient consultable par tous.

2. Il devient immuable. Une fois déployé, le code ne peut plus être modifié. C'est la propriété qui fonde tout l'édifice et c'est aussi la plus dangereuse. Un bug découvert après coup ne se corrige pas par une mise à jour. Les équipes contournent cette limite avec des contrats évolutifs, où une partie du code peut être remplacée, mais cela réintroduit exactement ce qu'on cherchait à supprimer : quelqu'un qui a le pouvoir de tout changer.

3. Une condition se réalise. Quelqu'un envoie une transaction au contrat, ou un événement attendu se produit. Le contrat ne se réveille jamais seul : il faut qu'une transaction le sollicite.

4. Il s'exécute. Les règles s'appliquent, le résultat est inscrit sur la blockchain, et il est définitif. Aucune annulation.

Le problème de l'oracle

Voici la limite technique la plus importante, et celle que les articles grand public passent sous silence.

Un smart contract ne voit que la blockchain. Il ignore le cours de l'euro, le résultat d'un match, la météo, la livraison d'un colis. Pour réagir au monde réel, il lui faut une source extérieure qui vienne lui écrire l'information : un oracle.

Et là, le raisonnement se mord la queue. Un contrat sans confiance qui dépend d'un oracle pour connaître un prix reporte simplement sa confiance sur l'oracle. Si celui-ci se trompe ou se fait manipuler, le contrat s'exécutera parfaitement, sur des données fausses. Une partie considérable des sommes volées en finance décentralisée provient exactement de là, pas d'une faille dans le code du contrat lui-même.

À quoi servent les smart contracts

Voici ce qui tourne réellement aujourd'hui, avec des montants qui se comptent en milliards.

Les échanges décentralisés. Un protocole comme Uniswap n'est qu'un ensemble de smart contracts. Ils détiennent les réserves de jetons, calculent les prix et exécutent les échanges. Aucun employé, aucune société ne touche les fonds.

Le prêt et l'emprunt. Vous déposez une garantie, le contrat vous prête, et si votre garantie passe sous un seuil il la vend automatiquement pour se rembourser. Sans négociation, sans relance, sans huissier.

Les stablecoins décentralisés. Un jeton indexé sur le dollar dont l'émission et la garantie sont pilotées par du code plutôt que par une société.

Les NFT. Un jeton non fongible n'est rien d'autre qu'un smart contract qui tient un registre de propriété, avec les règles de transfert associées.

Les DAO. Les règles de vote et la trésorerie d'une organisation décentralisée sont inscrites dans des contrats. La gouvernance d'Uniswap ou d'Arbitrum fonctionne ainsi : une proposition adoptée s'exécute automatiquement après un délai, sans qu'aucun dirigeant ne signe quoi que ce soit.

Ce que les smart contracts n'ont pas réussi à faire mérite d'être dit aussi. L'assurance paramétrique automatique, les chaînes logistiques autonomes, les contrats immobiliers auto-exécutants : tous ces cas d'usage annoncés vers 2018 butent sur le même mur. Ils exigent de savoir ce qui se passe dans le monde physique, donc un oracle, donc un tiers de confiance. Le problème que la technologie prétendait résoudre resurgit à l'entrée.

Ce qui peut mal tourner

L'immuabilité coupe dans les deux sens. Personne ne peut altérer un contrat pour vous voler, et personne ne peut le corriger quand il est défaillant.

Les bugs sont définitifs. Le cas fondateur reste The DAO, en 2016 : une faille dans le code a permis de siphonner l'équivalent de dizaines de millions de dollars en ETH. La communauté Ethereum a fini par réécrire l'histoire de la chaîne pour annuler le vol, ce qui a provoqué la scission avec Ethereum Classic. Cet épisode a montré que « le code fait loi » tient jusqu'au moment où les montants deviennent insupportables.

Les audits ne garantissent rien. Faire relire son code par un cabinet spécialisé est devenu la norme, et c'est une bonne pratique. Mais des protocoles audités par les meilleurs cabinets se font vider chaque année. Un audit réduit le risque, il ne l'annule pas, et son absence est en revanche un signal très négatif.

Les autorisations sont le vrai danger pour vous. Utiliser une application décentralisée suppose d'autoriser un contrat à déplacer vos jetons. Beaucoup d'interfaces demandent une autorisation illimitée, valable indéfiniment. Un contrat malveillant, ou un contrat légitime compromis, peut alors vider votre portefeuille. C'est le mécanisme exact des wallet drainers. Connecter un portefeuille ne coûte rien, signer une autorisation engage tout.

N'importe qui peut en déployer un. Aucune vérification, aucune liste blanche. Un contrat peut très bien autoriser l'achat d'un jeton et en interdire la revente : c'est le principe du honeypot.

Sur quelles blockchains trouve-t-on des smart contracts ?

RéseauLangage principalCe qui le distingue
EthereumSolidityLe plus fourni en applications, frais les plus élevés
Arbitrum et les Layer 2Solidity, plus Rust sur ArbitrumMêmes contrats qu'Ethereum, frais divisés par cent
SolanaRust, CTrès rapide, architecture différente
CardanoPlutus, AikenVérification formelle, écosystème plus jeune
BitcoinScriptVolontairement limité, pas de programmation générale

Bitcoin mérite une note. Son langage ne permet pas de programmer librement, et c'est un choix assumé : moins de possibilités veut dire moins de failles. Des projets travaillent à contourner cette limite sans toucher au protocole, mais l'écart de capacité avec Ethereum reste entier.

Faut-il faire confiance à un smart contract ?

La bonne question n'est pas de savoir si la technologie est fiable, mais si ce contrat précis l'est. Quatre vérifications, dans l'ordre.

Le code est-il public ? Un contrat dont le code n'est pas vérifié sur un explorateur de blockchain n'est pas auditable, donc pas fiable. C'est éliminatoire.

A-t-il été audité, et par qui ? Le rapport doit être lisible et daté. Un audit qui porte sur une version antérieure du code ne vaut pas grand-chose.

Depuis combien de temps tourne-t-il, avec combien dedans ? Un contrat qui détient des centaines de millions depuis trois ans a été attaqué en continu sans céder. C'est le meilleur audit qui soit.

Qui garde la main ? Beaucoup de contrats conservent des fonctions d'administration : mettre en pause, modifier un paramètre, remplacer une partie du code. Ce n'est pas forcément malveillant, souvent c'est prudent, mais il faut savoir qui détient cette clé et ce qu'elle permet.

Smart contract : les questions fréquentes

Qu'est-ce qu'un smart contract ?

Un smart contract est un programme déposé sur une blockchain, qui s'exécute automatiquement lorsque les conditions inscrites dans son code sont remplies. Une fois publié, il ne peut plus être modifié, et son exécution ne dépend d'aucun intermédiaire. Le terme est trompeur : ce n'est ni un contrat juridique, ni un système intelligent, mais du code qui applique une règle à la lettre.

Quel est l'objectif principal d'un contrat intelligent ?

Supprimer l'intermédiaire chargé de garantir qu'un accord sera respecté. Là où il fallait un notaire, une banque ou une plateforme pour s'assurer que chacun tient sa part, le code s'en charge et personne ne peut décider de ne pas exécuter. En contrepartie, il n'y a plus ni négociation, ni recours en cas d'erreur.

Comment fonctionne un smart contract ?

Le code est écrit puis déployé sur une blockchain, où il reçoit une adresse et devient consultable par tous. Il est alors figé et ne peut plus être modifié. Lorsqu'une transaction le sollicite et que ses conditions sont réunies, il s'exécute et inscrit son résultat sur la blockchain, de façon définitive. Il ne se déclenche jamais de lui-même : une sollicitation extérieure est toujours nécessaire.

Un smart contract a-t-il une valeur juridique ?

Pas par lui-même. C'est un programme informatique, pas un acte juridique, et aucun tribunal ne se tient derrière son exécution. Plusieurs juridictions ont commencé à reconnaître qu'un accord puisse s'exprimer sous cette forme, mais en pratique c'est le code qui s'applique. Si son comportement diffère de ce que les parties avaient compris, le code l'emporte.

Peut-on modifier ou annuler un smart contract ?

Non, pas dans le cas général. Une fois déployé, son code est figé et ses exécutions passées sont irréversibles. Certains contrats sont conçus dès l'origine avec une fonction de mise en pause ou une architecture évolutive permettant de remplacer une partie du code, mais cela suppose qu'une personne ou une organisation détienne ce pouvoir, ce qui réduit d'autant l'intérêt du dispositif.

Les smart contracts sont-ils sûrs ?

Le mécanisme d'exécution est fiable, le code déposé ne l'est pas toujours. Les pertes proviennent presque toujours de trois sources : un bug dans le contrat, une source de données extérieure manipulée, ou une autorisation de dépense accordée par l'utilisateur à un contrat malveillant. Avant d'interagir, il faut vérifier que le code est public, qu'un audit récent existe et que le contrat tourne depuis assez longtemps avec des montants significatifs.

Sur quelle blockchain sont les smart contracts ?

Ethereum reste la référence et concentre l'essentiel des applications, avec le langage Solidity. Les Layer 2 comme Arbitrum exécutent les mêmes contrats à un centième du coût. Solana et Cardano proposent leurs propres environnements, en Rust pour l'un, en Plutus ou Aiken pour l'autre. Bitcoin dispose d'un langage volontairement limité qui ne permet pas la programmation libre.

Combien coûte le déploiement d'un smart contract ?

Le coût dépend du réseau et de la taille du code. Sur le réseau principal Ethereum, le déploiement d'un contrat un peu conséquent peut représenter plusieurs centaines d'euros de frais de réseau aux heures chargées. Sur un Layer 2, la même opération revient à quelques euros. Chaque appel ultérieur au contrat se paie également, aux frais de celui qui déclenche la transaction.