Qu'est-ce qu'un smart contract ?
Sans smart contract, la DeFi, les DAOs ou les plateformes de NFTs ne seraient pas possibles. Faisons le zoom sur une des notions les plus importantes du web3.

Luca
8 minutes de lecture
·

À venir dans cette leçon
Information sur cette leçon
Tu es sur le point de lire la leçon n° 5 du niveau
intermédiaire.
Avant de poursuivre, je recommande d'avoir lu :
Si tu es déjà à l'aise avec ces notions, c'est parfait.
Bonne lecture !
Les smart contracts.
Cette notion centrale du web3 est un des concepts les plus importants à connaître.
Une fois cette leçon complétée, tu seras plus au fait :
- des applications qu'il est possible de créer grâce aux smart contracts
- du fonctionnement des sites de finance décentralisée
- du concept de multi-signature
- et plus encore.
Commençons sans plus attendre.
Définition #
Un smart contract (ou contrat intelligent en français) est un programme informatique qui s'exécute automatiquement sur une blockchain.
Il permet notamment l'exécution automatique de différentes actions entre deux acteurs. Plus tard dans cette leçon, je te donnerai des exemples concrets des usages que cela permet dans la vie réelle.
Les smart contracts sont écrits à l'aide de langages de programmation tels que Solidity (pour Ethereum) ou encore Rust (pour Solana).
C'est en les programmant qu'il est possible de déterminer les fonctions qu'ils offriront une fois déployés sur le mainnet de la blockchain pour laquelle ils ont été créés.
Tout comme les contrats classiques (en droit ou en commerce) listent les règles et accords que deux parties s'engagent à suivre vis-à-vis de l'autre, les smart contracts régissent les règles et accords implicitement acceptés par les utilisateurs d'un service en particulier.
Pour plus de clarté, la section suivante contient différents exemples de cas d'usage.
Utilisations #
Les smart contracts ont de très nombreuses utilisations.
De la DeFi aux DAOs, en passant par le minting de NFTs, il est important d'avoir une bonne idée des services que les smart contracts permettent.
Cette section te présente leurs différents usages principaux.
1. Le swap de cryptos #
Les smart contracts sont centraux pour la DeFi.
Et quoi de plus central que... le swap de cryptos ?
Les DEX offrent la possibilité d'échanger une crypto pour une autre sans intermédiaire. Bien évidemment, une telle fonctionnalité est implémentée par des smart contracts.
Un swap implique plusieurs étapes dont :
- l'autorisation de dépenser le coin que tu souhaites swapper
- l'envoi de coins depuis ton wallet vers le destinataire
- l'envoi de coins (depuis le destinataire) vers ton wallet.
Toutes ces fonctionnalités sont gérées de manière transparente et automatique et les conditions d'exécution de chacune d'entre elles ont été codées dans les smart contracts de la plateforme avec laquelle tu interagis.
En plus de ces étapes, il n'est pas rare que tu doives signer une autorisation permettant d'utiliser le coin que tu souhaites swapper et définir le montant maximal que tu autorises la plateforme à dépenser.
Là encore, ce sont les smart contracts qui rendent possible cette fonctionnalité.
2. L'emprunt et le dépôt de liquidité #
Encore un autre cas d'usage du domaine de la DeFi.
L'action de déposer de la liquidité dans une pool ainsi que celle d'en emprunter est évidemment mise en place via des smart contracts.
Dans ce cas, ils sont programmés pour automatiser les aspects de :
- mintage de LP tokens qui prouvent ta contribution à la pool
- distribution des frais de trading aux fournisseurs de liquidité
- yield farming en permettant parfois le staking de LP tokens.
Comme tu peux le constater, sans smart contracts, il n'y aurait tout simplement pas de DeFi.
3. Contrats multi-signatures (multi-sig) #
Ce type de smart contract est utilisé en tant que wallet.
Il permet d'offrir une plus grande sécurité en requérant plusieurs clés privées pour signer (et donc exécuter) une transaction depuis un compte donné.
Dans le cas d'un wallet que tu crées de manière ordinaire, celui-ci ne dispose que d'une seule phrase secrète de récupération. Et donc d'une unique clé privée.
Par conséquent, pour réaliser une transaction tu n'as besoin que de la clé privée stockée dans le wallet que tu utilises et tout est bon : la transaction pourra s'effectuer.
En utilisant un wallet multi-sig, un même compte crypto nécessitera plusieurs signatures de plusieurs adresses différentes pour pouvoir exécuter une transaction.
Et donc, plusieurs clés privées pour signer et valider cette même transaction.
C'est bien plus sécurisé mais peut se révéler être contraignant si tu ne désires pas une protection aussi lourde.
Maintenant que l'on évoque les contraintes, voyons justement quelles sont celles liées à l'utilisation des smart contracts.
Contraintes #
1. Les vulnérabilités aux piratages #
Comme vu dans la partie sur leurs différents usages, les smart contracts permettent une sécurité accrue lorsqu'ils sont utilisés à cet effet.
Mais leur sécurité n'est pas garantie.
Communs sont les cas où le piratage d'un smart contract a résulté en le vol de plusieurs dizaines de millions de dollars.
Prends le cas des bridge crypto par exemple. Ces plateformes sont les cibles préférées des hackers.
En 2022, le piratage de bridges a vu plus de 3 milliards d'euros être subtilisés par des pirates.
Et comment sont implémentés les bridges crypto ?
Tu l'auras deviné : grâce à des smart contracts.
Ce n'est là qu'un exemple parmi de nombreux où la sécurité avec laquelle un smart contract est créé se doit d'être
plus qu'irréprochable.
Si ce n'est pas le cas, les conséquences de ce genre de manquement peuvent être plus que désastreuses.
2. La mise à jour d'un smart contract #
Une fois un smart contract en place, le mettre à jour n'est pas une mince besogne. En fait, ce n'est généralement pas possible.
Contrairement aux logiciels qui ne tournent pas sur une blockchain, la modification est très contraignante. Il faut supprimer l'ancien contrat et en redéployer un nouveau à jour.
Pour ce faire, il faut généralement trouver un moyen de :
- migrer les données de l'ancien contract vers le nouveau
- gérer les potentielles dépendances que l'ancien avait avec des dApps
- faire approuver la mise à jour par les personnes requises.
C'est dû à cette complexité de mise à jour qu'avant de déployer quoi que ce soit sur leur mainnet, la grande majorité des projets cryptos sérieux testent méticuleusement leurs changements sur un testnet.
3. L'intégration de données externes #
Dernier point où les smart contracts ont la vie plus difficile que d'autres logiciels : les données.
Plus particulièrement, les données externes (provenant d'internet ou d'autres sources externes à la blockchain).
Nativement, les smart contracts n'ont pas accès à internet. Pour réaliser des requêtes HTTP ou accéder à des services externes, ils doivent passer par des oracles.
Ces derniers permettent d'intégrer des données off-chain dans la blockchain.
Autre point, l'utilisation d'un tel mécanisme n'est en fait pas gratuite. Des frais sont engendrés et doivent être payés pour chaque sollicitation d'un oracle. Cela peut vite devenir coûteux.
Aussi, en raison de la lente validation des blocs, les données récupérées ne seront presque jamais un reflet en temps réel de leur source. Il est donc préférable de ne pas utiliser la blockchain pour ce type d'application.
Enfin, parce que les oracles représentent une brique si importante des smart contracts, ils véhiculent pour ces derniers une certaine dangerosité quant à l'aspect sécurité.
Ce sont en effet des cibles idéales pour les hacks et autres utilisations non voulues. Ce qui, à son tour, met potentiellement en péril les smart contracts qui les utilisent et nous ramène donc implicitement à la première contrainte.
Applications répandues #
Les smart contracts ont encore plus d'utilités que celles détaillées précédemment mais tu as désormais les principales d'entre elles.
Pour la suite et dernière partie de cette leçon, tu vas découvrir les applications (ou services) les plus répandus qui s'appuient grandement sur les smart contracts pour leur fonctionnement.
Les exchanges décentralisés (DEX) #

Tu es peut-être familier avec Uniswap, 1inch ou encore Sushi .
Ces exchanges sont dits décentralisés car aucune entité centralisée ne régit leur fonctionnement.
À la place, ce sont les smart contracts qui servent "d'intermédiaire".
Voici les différentes fonctionnalités rendues possibles par l'utilisation des smart contracts :
- le swap d'une cryptomonnaie pour une autre
- le dépôt de cryptos dans une pool de liquidité
- l'emprunt de cryptos dans une pool
- le staking de coins dans un protocole en particulier.
Sans les smart contracts, toutes ces actions nécessiteraient un tiers de confiance et les DEX ne seraient donc pas une réalité.
Les Play-to-earn (P2E) #
Les jeux Play-to-earn font naturellement usage des smart contracts.
Que ce soit pour rémunérer automatiquement les joueurs avec des cryptos ou leur envoyer des NFTs après la complétion de certaines quêtes, les smart contracts sont omniprésents dans ce genre de jeux.
Tu peux partir du principe que toute action automatique impliquant l'interaction de deux parties différentes sur une blockchain (ici le joueur et le jeu) nécessite un smart contract.
Un des exemples les plus connus de P2E est Axie Infinity.
Cette section du Culture Crypto sur la définition du Web3 donne davantage d'exemples de jeux P2E.
L'essentiel #
Comme tu l'as vu, les smart contracts sont un des piliers fondamentaux du monde crypto et du web3.
Retiens donc absolument qu'ils sont :
- des programmes informatiques stockés sur une blockchain
- contraignants à "mettre à jour" (remplacer serait plus juste)
- dépendant des oracles pour récupérer des données off-chain
- essentiels à la DeFi et la GameFi.
Tu te souviens de la difficulté qu'ont les smart contracts pour intégrer des données externes à la blockchain sur laquelle ils résident, n'est-ce pas ?
Comme évoqué dans cette leçon, la solution souvent utilisée pour cela est une brique logicielle connue sous le nom d'oracle.
Et c'est justement le sujet de la prochaine leçon.
↑