Dans la DeFi, les dépôts, les prêts et les échanges sont tous exécutés automatiquement par des contrats intelligents. Il n’y a pas de vérification humaine ni de service client capable de récupérer l’argent envoyé par erreur. Si le contrat est bien écrit, il constitue la règle la plus fiable ; s’il comporte une erreur, ses failles seront tout aussi rigoureusement « exécutées ».
$ETH Ethereum est l’une des premières blockchains publiques à prendre en charge les contrats intelligents généralistes. Cours actuel : 2128,02 (-0,12 % sur 24 h).
【Le code fait loi, et les failles aussi】
Une fois déployé sur la blockchain, un contrat intelligent s’exécute automatiquement selon son code. Cela apporte de la transparence et de la prévisibilité : tout le monde peut lire le code et, si le contrat ne peut pas être mis à niveau, ses règles ne changeront pas au gré de quelqu’un.
À l’inverse, si quelqu’un découvre et exploite une faille dans le code, les fonds peuvent être détournés en quelques transactions, et il est alors 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 ce fork, a continué sous le nom d’Ethereum Classic (ETC).
【Que couvre réellement un audit ?】
Un audit de sécurité est un examen réalisé 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 réentrances, les erreurs de contrôle d’accès, les problèmes de précision des calculs ou encore 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 incidents surviennent-ils malgré un audit ?】
Premièrement, l’audit ne porte que sur le code inclus dans le périmètre défini. Les contrats qui en sont exclus et les fonctionnalités ajoutées par la suite n’en font pas partie. Si le code est modifié après l’audit ou si la version réellement 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 : une défaillance de l’oracle ou d’un autre protocole dont dépend le protocole, le vol de la clé d’administration qui permet de le mettre à niveau, ou encore la falsification de l’interface web qui incite les utilisateurs à signer des transactions malveillantes peuvent entraîner des pertes.
【Que peuvent faire les utilisateurs ordinaires ?】
Lorsque vous consultez un rapport d’audit, vérifiez sa date, son périmètre et les problèmes qui n’ont pas encore été corrigés. Ne vous contentez pas de la mention « audité ». Vous pouvez aussi vérifier si le contrat peut être mis à niveau unilatéralement et si ces droits sont contrôlés par une multisignature et un verrou temporel.
Les protocoles qui fonctionnent depuis longtemps et ont géré des volumes importants de fonds sont généralement considérés comme plus fiables, mais cela ne signifie pas qu’ils sont sans faille. Dans la DeFi, ne déposez 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.
【En résumé】
L’audit est un point de départ pour la sécurité, pas une garantie absolue. Considérer le risque lié aux contrats intelligents comme un coût inhérent à la participation à la DeFi est plus réaliste que de se fier aux seuls mots « audité ». Ne misez pas toutes vos économies sur un seul projet.
Quel autre sujet aimeriez-vous voir ? Dites-le en commentaire.