Dans la DeFi, les dépôts, les prêts et les échanges sont exécutés automatiquement par des contrats intelligents, sans vérification humaine ni service client capable de récupérer l’argent envoyé par erreur. Quand le contrat est bien écrit, il constitue la règle la plus fiable ; quand il ne l’est pas, ses failles sont elles aussi « exécutées » à la lettre.
$ETH Ethereum est l’une des premières blockchains publiques à prendre en charge les contrats intelligents à usage général. Cours actuel : 2239.05 (24 h : -5.02 %).
▍Le code fait loi, et les failles aussi
Une fois déployés sur la blockchain, les contrats intelligents s’exécutent automatiquement selon leur code. Cela garantit transparence et prévisibilité : tout le monde peut lire le code et, pour un contrat non modifiable, les règles ne changent pas au gré de la volonté de quelqu’un.
À l’inverse, dès qu’une faille dans le code est découverte et exploitée, les fonds peuvent être transférés en quelques transactions, et il est très difficile de les récupérer. The DAO, en 2016, en est un exemple : le contrat a été attaqué à cause d’une faille de réentrance. Ethereum a ensuite réagi par un hard fork, tandis que la chaîne d’origine, qui n’a pas suivi cette bifurcation, est devenue Ethereum Classic (ETC).
▍Que vérifie vraiment un audit ?
Un audit de sécurité est une vérification effectuée par une équipe de sécurité indépendante, à un moment donné, sur une version précise du code. Le rapport d’audit répertorie généralement les problèmes détectés, leur niveau de gravité et indique si le projet les a corrigés.
Les vérifications portent souvent sur les failles de réentrance, les erreurs de contrôle des accès, les problèmes de précision des calculs ou les risques de manipulation des oracles. Un audit aide à détecter et à réduire ces failles courantes, mais il est limité par le temps, les ressources humaines et le périmètre de l’audit.
▍Pourquoi des problèmes surviennent-ils malgré un audit ?
Premièrement, l’audit ne couvre que le périmètre de code défini : les contrats hors de ce périmètre et les fonctionnalités ajoutées ultérieurement n’en font pas partie. Si le code est modifié après l’audit, ou si la version effectivement déployée diffère de celle qui a été auditée, les conclusions ne peuvent pas être appliquées telles quelles.
Deuxièmement, certains risques ne viennent pas du code lui-même : un oracle ou un autre protocole dont dépend le protocole peut rencontrer un problème, la clé d’administrateur détenant les droits de mise à niveau peut être volée, ou l’interface web peut être modifiée pour inciter les utilisateurs à signer des transactions malveillantes. Tous ces scénarios peuvent entraîner des pertes.
▍Que peuvent faire les utilisateurs ordinaires ?
En consultant un rapport d’audit, prêtez attention à sa date, à son périmètre et aux problèmes qui n’ont pas encore été corrigés ; ne vous contentez pas de lire les mots « audité ». Vous pouvez aussi vérifier si le contrat peut être mis à niveau unilatéralement et si les droits de mise à niveau sont contrôlés par un portefeuille multisignature et un verrou temporel.
Les protocoles en activité depuis longtemps et éprouvés par d’importants volumes de fonds sont généralement considérés comme plus fiables, mais cela ne signifie pas qu’ils sont exempts de failles. Dans la DeFi, n’investissez donc que des fonds dont vous pouvez supporter la perte, répartissez les sommes importantes entre différents protocoles et pensez à révoquer les autorisations des protocoles que vous n’utilisez plus.
▍Pour conclure
L’audit est le point de départ de la sécurité, pas son aboutissement. Considérer les risques liés aux contrats intelligents comme un coût inévitable de la participation à la DeFi est plus réaliste que de se fier aux seuls mots « audité ». La prudence n’a rien de honteux : survivre compte bien plus que gagner beaucoup en une seule fois.
Si vous avez appris quelque chose, laissez un commentaire ; si quelque chose n’est pas clair, posez vos questions dans les commentaires.