Aller au contenu

Qu'est-ce qu'un smart contract ?

Les smart contracts sont du code exécutable fonctionnant sans intermédiaire, et constituent la base de la DeFi, des stablecoins et des NFTs. Découvrez leur fonctionnement.

7 minutes
Qu'est-ce qu'un smart contract ?

Un smart contract est un code auto-exécutable stocké sur un réseau blockchain qui applique automatiquement un accord dès que ses conditions sont remplies, sans nécessiter d'intermédiaire. Les smart contracts alimentent les applications, la DeFi, les NFT et les DAO en appliquant des règles de manière transparente et fiable. Les smart contracts ne sont pas propres à un seul réseau ; Ethereum et d'autres blockchains compatibles EVM, Solana, Cardano, Polkadot et Sui exécutent tous des smart contracts, chacun utilisant son propre langage de programmation et son propre modèle d'exécution. Parce qu'un smart contract vit onchain, il fonctionne sans intermédiaire, ses règles sont visibles par quiconque souhaite les consulter, et une fois déployé, il ne peut généralement pas être modifié. Les smart contracts sont les briques fondamentales de la plupart des applications blockchain, notamment les protocoles DeFi, les stablecoins, les NFT et les DAO.

Avertissement : Ce guide est fourni à des fins éducatives uniquement. Il ne constitue pas un conseil financier, une sollicitation, et n'est pas destiné au public britannique. Interagir avec des smart contracts comporte des risques et n'est pas adapté à tous les utilisateurs.

Comment fonctionnent les smart contracts

Un développeur rédige un contrat et le déploie une seule fois sur une blockchain. À partir de ce moment, n'importe qui peut interagir avec lui, et il exécute sa logique dès que ses conditions sont déclenchées — par exemple, libérer des tokens lors de la réception d'un paiement, ou permettre à un utilisateur de retirer des fonds après un certain block height. Deux propriétés définissent les smart contracts sur tous les réseaux qui les prennent en charge : l'exécution est automatique et ne nécessite aucun intermédiaire, et le code est immuable par défaut, ce qui signifie qu'un bug est permanent à moins que le contrat n'ait été spécifiquement conçu pour être évolutif.

L'exécution d'un smart contract a également un coût. Chaque réseau facture des frais de réseau pour traiter le calcul et le stockage qu'un contrat utilise — appelés « gas » sur Ethereum et la plupart des chaînes EVM, et désignés par des noms et des modèles de frais différents ailleurs (frais par transaction sur Solana, frais par transaction plus unités d'exécution de script sur Cardano, frais basés sur le poids sur Polkadot). Les mécanismes diffèrent, mais le principe est le même : l'exécution de code sur les blockchains consomme des ressources réseau, et quelqu'un doit en payer le coût.

Brève histoire des smart contracts

L'idée des smart contracts est antérieure à toute blockchain. L'informaticien et juriste Nick Szabo a inventé le terme « smart contract » en 1994 et l'a développé dans un essai de 1996, décrivant un protocole de transaction informatisé qui exécute les termes d'un accord, comparant le concept à un distributeur automatique qui délivre de manière fiable un bien dès réception du paiement, sans avoir besoin de faire confiance à l'autre partie (écrits originaux de Szabo, tels que référencés dans les historiques du concept). À l'époque, aucune plateforme n'existait pour exécuter ce type de code de manière à minimiser la confiance et à résister aux manipulations, de sorte que l'idée est restée largement théorique pendant deux décennies.

Bitcoin, lancé en 2009, a introduit une blockchain mais uniquement un langage de script limité (Bitcoin Script), qui n'est intentionnellement pas Turing-complet — il peut appliquer des conditions de dépense comme les exigences multisignature et les timelocks, mais il ne peut pas exécuter des programmes arbitraires à usage général. Bitcoin Script régit la façon dont les fonds existants peuvent être dépensés ; il ne peut pas exprimer une logique ouverte sur ce qui se passe ensuite, c'est pourquoi Bitcoin n'est pas considéré comme une plateforme de smart contracts à usage général.

Ethereum, lancé le 30 juillet 2015, a été la première grande blockchain construite spécifiquement pour exécuter des smart contracts à usage général, via l'Ethereum Virtual Machine (EVM), un environnement d'exécution partagé que chaque nœud Ethereum exécute de manière identique (ethereum.org, History of Ethereum). Cela a rendu Ethereum programmable d'une manière que les blockchains antérieures ne l'étaient pas, et c'est pourquoi la plupart de la terminologie des smart contracts — gas (aussi appelé frais de réseau), comptes de contrats, Solidity — y trouve son origine. Au fil des années, d'autres réseaux ont développé leurs propres environnements de smart contracts en utilisant différents langages et modèles d'exécution, notamment Solana (2020), les scripts Plutus de Cardano (2021), les contrats ink! de Polkadot, et les objets basés sur Move de Sui (2023), étendant le concept bien au-delà d'un seul réseau.

Où s'exécutent les smart contracts ?

L'environnement d'exécution et le langage qu'un smart contract utilise dépendent entièrement du réseau sur lequel il est déployé. Certains réseaux suivent l'état sous forme de soldes de comptes que les contrats lisent et écrivent (modèle de compte d'Ethereum) ; d'autres suivent l'état sous forme de sorties discrètes et dépensables (modèle eUTXO de Cardano, une extension du modèle UTXO de Bitcoin) ou sous forme d'objets individuellement possédés (modèle centré sur les objets de Sui). Ces différences affectent la façon dont les contrats sont rédigés et comment ils peuvent être composés, mais pas la garantie fondamentale : un code qui s'exécute automatiquement et qui, une fois déployé, est difficile voire impossible à modifier.

Réseau

Langage

Modèle d'exécution

Utilisation notable dans l'écosystème

Ethereum et réseaux EVM

Solidity ; Vyper ; Compilé en bytecode EVM

Basé sur les comptes ; un appel de contrat s'exécute à la fois par chaîne

DeFi ; Stablecoins ; Tokens ERC-20 et ERC-721

Solana

Rust, couramment avec le framework Anchor

Sealevel : exécute les transactions en parallèle lorsqu'elles ne touchent pas les mêmes données

DeFi à haut débit ; Marchés NFT

Cardano

Plutus (basé sur Haskell)

Extended UTXO (eUTXO) : les résultats des transactions peuvent être vérifiés avant soumission

DeFi ; Émission de tokens natifs

Polkadot (via parachains)

ink! (basé sur Rust) ; les parachains EVM comme Moonbeam exécutent également Solidity

S'exécute sur des parachains basées sur Substrate ; déploiement sans permission

Applications parachain ; Prototypage

Sui

Move

Centré sur les objets : les transactions modifient des objets possédés, permettant un traitement parallèle

NFT ; Gaming ; DeFi

Bitcoin

Bitcoin Script

Limité, non Turing-complet ; applique uniquement des conditions de dépense

Portefeuilles multisignature ; Timelocks ; Protocoles Layer-2

Source : ethereum.org; Solana Sealevel; Cardano eUTXO; documentation use.ink; Concepts Sui Move.

Qui rédige et utilise les smart contracts ?

Les développeurs rédigent et déploient les smart contracts ; toute personne disposant des outils appropriés et d'une quantité suffisante du token natif d'un réseau pour couvrir les coûts de déploiement peut le faire, et le déploiement ne nécessite pas d'autorisation de la part du réseau sous-jacent. Une fois qu'un contrat est en ligne, n'importe qui peut interagir avec lui — généralement via l'interface d'une application plutôt qu'en écrivant du code directement. Une personne qui échange des tokens, crée un NFT ou vote dans une DAO déclenche l'exécution d'un smart contract, sans avoir besoin de comprendre le langage sous-jacent ou l'environnement d'exécution.

Standards de tokens

De nombreux actifs décrits comme des « tokens » sont des smart contracts qui suivent un standard partagé, ce qui permet aux portefeuilles et aux applications d'interagir de la même manière avec tout token conforme. Sur Ethereum et les autres chaînes EVM, l'ERC-20 est le standard pour les tokens fongibles, notamment la plupart des stablecoins et des utility tokens, et l'ERC-721 est le standard pour les NFT, où chaque token est unique. D'autres réseaux ont leurs propres équivalents — le standard de token SPL de Solana, par exemple — conçus pour leurs modèles d'exécution respectifs.

Que font fonctionner les smart contracts ?

Dans tous les écosystèmes, les smart contracts sont le moteur des applications : protocoles DeFi pour le prêt, l'emprunt et le trading ; marchés de NFT et d'actifs numériques ; et DAO dont les règles de gouvernance vivent dans le code plutôt que dans la politique interne d'une entreprise. L'implémentation spécifique varie selon le réseau, mais le schéma sous-jacent — un code qui applique un accord sans intermédiaire — est constant.

Pourquoi les smart contracts existent-ils ?

Les smart contracts existent pour supprimer le besoin d'un intermédiaire de confiance pour faire respecter un accord. Au lieu de s'appuyer sur une banque, un agent de séquestre ou un opérateur de plateforme pour détenir des fonds et appliquer un ensemble de règles, les règles sont encodées directement et s'exécutent de la même manière pour tous ceux qui interagissent avec le contrat. C'est cette propriété qui rend possible la finance programmable et auto-custodiée, la propriété numérique et la gouvernance blockchain à grande échelle — quel que soit le réseau qui héberge le code.

Approbations de tokens et sécurité

Utiliser une application implique souvent d'accorder à un smart contract une approbation de token — la permission de déplacer un token spécifique en votre nom. C'est une pratique normale, mais c'est aussi un vecteur d'attaque courant, car un contrat malveillant peut demander une approbation lui permettant de déplacer plus que ce qu'un utilisateur avait prévu. Une approbation de token peut être limitée à un montant spécifique ou illimitée. L'extension MetaMask affiche l'intégralité de la portée de l'approbation de token — y compris l'adresse du contrat et si l'approbation est limitée ou illimitée — avant la signature, ce qui permet à l'utilisateur de la vérifier au préalable. Notre guide sur les approbations de tokens explique comment les examiner et les révoquer.

Risques liés aux smart contracts

  • Les bugs sont permanents : un code immuable présentant une faille ne peut généralement pas être corrigé après le déploiement.

  • Les audits réduisent le risque sans l'éliminer : des contrats audités ont tout de même été exploités.

  • Des contrats malveillants existent sur tous les réseaux qui les prennent en charge, pas seulement sur un seul réseau.

Questions fréquentes sur les smart contracts

Traduit par IA. Peut contenir des erreurs. Veuillez toujours vérifier les informations.

Évaluer la traduction

Cet article a été rédigé par :

  • MetaMask

    MetaMask, anciennement Consensys Software Inc, est la plus grande plateforme financière self-custodial au monde, offrant aux utilisateurs un espace unique pour détenir, dépenser, épargner et faire fructifier leur argent, aussi bien en crypto qu'en actifs traditionnels. La société développe la plateforme grand public au sein de laquelle tout cela se concrétise, en réunissant paiements, épargne, investissement et actifs numériques dans une expérience fluide et unifiée. Issu du wallet self-custodial le plus utilisé au monde, MetaMask donne aux utilisateurs un contrôle direct sur leur argent et leurs actifs, avec une présence dans environ 190 pays. MetaMask joue un rôle fondateur dans la croissance d'Ethereum depuis 2016. Aujourd'hui, MetaMask occupe une place centrale dans l'économie blockchain, en construisant le système d'exploitation de l'Open Money et en donnant aux individus un contrôle total sur leur vie financière.

    Lire tous les articles