Skip to content
Concepts Techniques

Smart Contract

Contrat Intelligent

Code auto-exécutant qui fait automatiquement respecter les termes du contrat sur blockchain

Définition

Un smart contract est un programme déployé sur une blockchain, dont le code s'exécute exactement comme il a été écrit, sans intermédiaire capable de l'interrompre ou d'en modifier le résultat. Sur Ethereum, c'est du bytecode EVM généralement compilé depuis Solidity ou Vyper, associé à une adresse et à un état persistant. Une fois déployé, il est immuable : la seule façon de le corriger est d'avoir prévu à l'avance un proxy évolutif ou des paramètres administrables, ce qui réintroduit précisément la confiance que l'on cherchait à éliminer. Toute la DeFi est faite de ces contrats : un pool Uniswap, un marché Aave, un CDP Sky ne sont rien d'autre. Leur composabilité fait leur puissance, puisque n'importe quel contrat peut en appeler un autre sans autorisation, et leur fragilité, puisqu'un maillon défaillant contamine tout ce qui s'appuie sur lui.

Un smart contract est un programme posé sur la blockchain qui exécute ses règles sans que personne puisse intervenir. C'est la force du système et sa principale source de pertes.

Exemple

Un pool Uniswap v2 tient en quelques centaines de lignes : il conserve deux réserves, applique la formule x*y=k et prélève 0,30 % par échange. Personne ne peut geler vos fonds, changer les frais ni refuser un ordre, parce que ces fonctions n'existent tout simplement pas dans le code. À l'inverse, le contrat d'un token dont le propriétaire peut modifier la taxe de vente sans plafond accorde à une seule clé le pouvoir de rendre le token invendable. Les deux sont des smart contracts ; ce qui les sépare n'est pas la technologie mais les pouvoirs qui ont été inscrits dedans.

1

Comment ça marche

Le code est déployé à une adresse et conserve son propre état. Chaque appel est exécuté par tous les nœuds et payé en gas. Les contrats s'appellent entre eux librement, ce qui rend la DeFi composable.

2

Pourquoi c'est important

Tout ce que vous utilisez en DeFi est un contrat, et vos fonds y sont soumis sans recours possible. Savoir qui détient quels pouvoirs sur ce code est la question de sécurité la plus importante à poser.

3

À vérifier

Identifiez les fonctions d'administration, la présence d'un proxy évolutif et la durée du timelock. Regardez l'ancienneté du contrat, la valeur qu'il sécurise, le contenu réel des audits et le nombre de couches que vous empilez.

Risques à considérer

  • Bugs irréversibles : une faille dans un contrat immuable ne se corrige pas, elle s'exploite jusqu'à ce que les fonds soient sortis
  • Fonctions d'administration, proxys évolutifs et clés de pause qui permettent de modifier les règles après coup
  • Risque de composabilité : un protocole sain peut être vidé parce qu'un oracle ou un pool dont il dépend ne l'était pas
  • Un audit réduit la probabilité d'un incident, il ne l'élimine pas ; de nombreux protocoles audités ont été exploités

Questions fréquentes

Un smart contract est-il vraiment immuable ?

Le bytecode à une adresse donnée l'est, mais la plupart des protocoles sérieux déploient derrière un proxy : l'adresse reste la même et l'implémentation peut être remplacée. C'est indispensable pour corriger des bugs, et c'est aussi un pouvoir considérable. La vraie question n'est donc pas « est-ce immuable ? » mais « qui peut changer quoi, en combien de temps, et derrière quel timelock ? ».

Que signifie concrètement « contrat audité » ?

Qu'un cabinet a relu le code sur un périmètre et à une date donnés, et a publié ses observations. Cela ne couvre ni les modifications ultérieures, ni les hypothèses économiques, ni les dépendances externes comme les oracles. Lisez le rapport plutôt que le badge : le périmètre exact, la sévérité des points relevés et le fait qu'ils aient été corrigés ou simplement « acceptés » en disent bien plus que le nom de l'auditeur.

Comment limiter son exposition au risque de contrat ?

Privilégiez les contrats anciens, très utilisés et détenteurs d'une valeur importante depuis longtemps, car la durée est le test le plus honnête. Limitez le nombre de couches empilées : chaque coffre, wrapper ou auto-composeur ajoute un contrat qui doit tenir. Accordez des autorisations limitées plutôt qu'illimitées quand l'interface le permet, et révoquez régulièrement les anciennes approbations, qui restent actives indéfiniment.