Smart contract : définition, fonctionnement et limites des contrats intelligents
Un smart contract est un programme enregistré sur une blockchain qui s'exécute automatiquement selon les règles inscrites dans son code. Imaginé par Nick Szabo dans les années 1990, il est devenu le socle des jetons, des NFT et de la finance décentralisée.
- Publié le
- · mis à jour le 11 septembre 2025
- Temps de lecture
- 5 min de lecture
- Sources
- 12 sources

Ce qu'est un smart contract
Un smart contract, ou contrat intelligent, est un programme informatique enregistré sur une blockchain. Il s'exécute selon des règles fixées dans son code dès qu'une transaction l'appelle et que les conditions prévues sont réunies. La documentation officielle d'Ethereum le définit comme « un programme qui tourne sur la blockchain Ethereum », composé de fonctions (le code) et de données (son état), stocké à une adresse précise du réseau.
Le terme est trompeur. Un smart contract n'est pas un contrat au sens juridique et n'a rien d'intelligent : il applique une logique de type « si telle condition est remplie, alors telle action est exécutée ». Sa force tient à l'environnement dans lequel il tourne. Le code et son historique d'exécution sont inscrits dans un registre partagé, que chaque participant peut consulter et qu'aucun acteur ne contrôle seul.
Une idée née avant les blockchains
Le concept est antérieur à Bitcoin. Il est attribué à l'informaticien et juriste américain Nick Szabo. Dans un texte de 1994, il écrit qu'« un smart contract est un protocole de transaction informatisé qui exécute les termes d'un contrat ». Il cherche alors à réduire le besoin d'intermédiaires de confiance, les fraudes et les coûts d'application des accords.
En 1996, il développe l'idée dans « Smart Contracts: Building Blocks for Digital Markets ». Il y définit le smart contract comme un ensemble de promesses exprimées sous forme numérique, avec les protocoles par lesquels les parties les exécutent. Il cite le distributeur automatique comme ancêtre primitif du concept : la machine encaisse des pièces, rend la monnaie et délivre le produit, sans vendeur, tant que la somme contenue dans la caisse reste inférieure au coût d'une effraction.
Il manquait à l'époque une infrastructure capable d'exécuter ces programmes sans tiers de confiance. Cette infrastructure arrive avec les blockchains programmables.
Ethereum, la première blockchain pensée pour les smart contracts
Bitcoin dispose d'un langage de script volontairement limité. En 2014, Vitalik Buterin publie le livre blanc d'Ethereum, qui décrit « une blockchain dotée d'un langage de programmation Turing-complet intégré, permettant à chacun d'écrire des smart contracts ». Le réseau est lancé le 30 juillet 2015 avec la version Frontier.
Sur Ethereum, les smart contracts sont le plus souvent écrits en Solidity ou en Vyper, puis compilés pour la machine virtuelle d'Ethereum (EVM). Le déploiement est sans permission : toute personne qui maîtrise un de ces langages et dispose d'assez d'ether pour payer les frais de transaction (le gas) peut publier un contrat. Une fois déployé, le contrat est public et peut être appelé par d'autres contrats, comme une interface ouverte. Ethereum qualifie cette propriété de composabilité.
Comment fonctionne un smart contract
Le cycle de vie d'un smart contract suit quelques étapes simples :
- un développeur écrit le code, le compile et le publie sur la blockchain par une transaction ;
- le contrat reçoit une adresse et conserve son propre état (soldes, paramètres, enregistrements) ;
- un utilisateur ou un autre contrat l'appelle en envoyant une transaction vers cette adresse ;
- les nœuds du réseau exécutent le code de la même façon et s'accordent sur le résultat, qui est inscrit dans un nouveau bloc.
La documentation d'Ethereum reprend l'analogie du distributeur de Nick Szabo : une entrée donnée produit toujours la même sortie. L'argent et le choix d'un produit déclenchent la délivrance du produit, sans intervention humaine.
Immuable par défaut, mais pas toujours
Sur Ethereum, un contrat déployé ne peut plus être modifié. La documentation précise que ces programmes sont immuables par conception. Des techniques permettent toutefois de faire évoluer une application : avec le modèle du proxy, un contrat fixe redirige les appels vers un contrat de logique dont l'adresse peut être remplacée. L'utilisateur garde la même adresse, mais la logique change.
Sur Solana, les smart contracts s'appellent des programmes. Ils sont surtout écrits en Rust et compilés en bytecode sBPF. Selon la documentation de Solana, un programme reste modifiable tant qu'il possède une autorité de mise à jour ; il ne devient immuable que lorsque cette autorité est révoquée. L'immuabilité n'est donc pas une propriété universelle : elle dépend de la blockchain et des choix du développeur.
Le problème des données extérieures
Un smart contract ne peut pas lire seul une information du monde réel, comme un cours de change ou un résultat sportif. Ethereum explique que cette isolation protège le consensus entre les nœuds. La solution passe par les oracles, des services qui collectent des données hors chaîne et les rendent disponibles aux contrats. Le contrat dépend alors de la fiabilité de cet oracle.
Les principaux usages
Les smart contracts servent d'abord à créer des jetons. La norme ERC-20, proposée le 19 novembre 2015 par Fabian Vogelsteller et Vitalik Buterin, définit une interface commune pour les jetons fongibles émis par des smart contracts. Grâce à elle, un portefeuille ou une plateforme d'échange peut gérer des milliers de jetons différents avec le même code.
Les NFT reposent sur le même principe. La norme ERC-721, créée le 24 janvier 2018, fournit une interface standard pour suivre et transférer des jetons non fongibles, chacun étant unique. Une œuvre numérique, un objet de jeu ou un titre de propriété peuvent ainsi être représentés par un jeton dont l'historique est public.
Les smart contracts font aussi fonctionner la finance décentralisée : plateformes d'échange sans intermédiaire, protocoles de prêt et d'emprunt, stablecoins adossés à des garanties. Ils servent également aux organisations autonomes décentralisées (DAO), dont les votes et la trésorerie sont gérés par du code.
Les autres blockchains programmables
Ethereum n'est plus la seule blockchain à exécuter des smart contracts. Solana a choisi une architecture où les programmes sont sans état et où les données sont stockées dans des comptes séparés. Cardano a ajouté cette fonction plus tard : la mise à jour Alonzo, déployée en septembre 2021, a introduit les smart contracts Plutus sur son modèle de comptabilité UTXO étendu.
Les limites et les risques
Un smart contract exécute son code tel qu'il est écrit, y compris ses erreurs. L'épisode de The DAO, en 2016, l'a montré. Le 17 juin 2016, Vitalik Buterin annonce sur le blog de la fondation Ethereum qu'un attaquant exploite une faille d'appel récursif et vide l'ether contenu dans ce fonds d'investissement décentralisé. Selon ethereum.org, plus de 3,6 millions d'ETH ont été détournés. Le réseau a appliqué un hard fork au bloc 1 920 000, le 20 juillet 2016, pour restituer les fonds. Une partie de la communauté a refusé ce changement et a poursuivi la chaîne d'origine, devenue Ethereum Classic.
Cet épisode résume les principales limites des smart contracts :
- une faille de code peut entraîner des pertes que personne ne peut annuler simplement ;
- un contrat modifiable par proxy ou par autorité de mise à jour réintroduit une forme de confiance envers ceux qui détiennent ce droit ;
- la dépendance aux oracles crée un point de fragilité pour toute donnée extérieure ;
- l'exécution a un coût, payé en frais de transaction à chaque appel.
Quel cadre juridique
Le code d'un smart contract ne remplace pas un contrat au sens du droit. Il peut toutefois servir à exécuter un accord conclu par ailleurs. L'Union européenne a commencé à encadrer cet usage. Le règlement sur les données (Data Act), publié au Journal officiel de l'Union le 22 décembre 2023 et applicable depuis le 12 septembre 2025, impose des exigences essentielles aux fournisseurs de smart contracts utilisés pour exécuter des accords de partage de données. Selon la Commission européenne, ces contrats doivent exécuter correctement les dispositions de l'accord et résister à la manipulation par des tiers.
Ce cadre reste limité aux smart contracts qui exécutent des accords de partage de données.
Sources
- Smart ContractsNick Szabo · Document · primaire · 1 janvier 1994
- Smart Contracts: Building Blocks for Digital MarketsNick Szabo · Document · primaire · 1 janvier 1996
- Introduction to smart contractsethereum.org · Source officielle · primaire
- Ethereum Whitepaperethereum.org · Document · primaire · 1 janvier 2014
- Timeline of all Ethereum forksethereum.org · Source officielle · primaire
- Upgrading smart contractsethereum.org · Source officielle · primaire
- ERC-20: Token StandardEthereum Improvement Proposals · Source officielle · primaire · 19 novembre 2015
- ERC-721: Non-Fungible Token StandardEthereum Improvement Proposals · Document · primaire · 24 janvier 2018
- CRITICAL UPDATE Re: DAO VulnerabilityEthereum Foundation Blog · Source officielle · primaire · 17 juin 2016
- ProgramsSolana Documentation · Source officielle · primaire
- AlonzoCardano Docs · Source officielle · primaire
- Data Act explainedCommission européenne · Régulateur · primaire
Publié par InvestX selon sa charte éditoriale. Une erreur ? Écrivez à redaction@investx.fr. Ce contenu n'est pas un conseil en investissement.
Dans le même dossier
- Stablecoin : définition, fonctionnement et régulation des cryptomonnaies stables
- Token BRC-20 : définition, fonctionnement et comment en acheter sur Bitcoin
- Airdrop crypto : définition, fonctionnement et grands exemples
- APY crypto : définition, méthode de calcul et différence avec l'APR
- Arnaques crypto : les 10 escroqueries les plus courantes et comment les repérer
- Baleines crypto : définition, exemples connus et outils pour les suivre
- Bear market crypto : définition, causes et durée des grandes baisses du bitcoin
- Blockchain : réseaux et mécanismes