Résumé
Un audit fournira une analyse détaillée de la sécurité des contrats intelligents du projet. Il s’agit d’une norme importante à suivre pour protéger les fonds investis par leur intermédiaire. Puisque toutes les transactions sur la blockchain sont irréversibles, il est impossible de récupérer les fonds en cas de vol. Normalement, les validateurs vérifieront le code des contrats intelligents et créeront des rapports afin que le projet puisse continuer à s'améliorer. Un rapport final sur la sécurité du projet sera ensuite publié. Ce rapport détaille les bogues restants et le travail qui a été effectué pour résoudre les problèmes de performances ou de sécurité.
Introduction
L'audit de sécurité des contrats intelligents est une activité très courante dans l'écosystème de la finance décentralisée (DeFi). Si vous avez investi dans un projet blockchain, les résultats de l'audit du code des contrats intelligents sont quelque chose que vous devez considérer.
Bien que la plupart des gens comprennent l'importance de l'audit pour la sécurité informatique, peu de personnes plongent dans les lignes de code. Explorons les méthodes, les outils et les résultats fréquemment rencontrés lors de l'audit des contrats intelligents afin que vous puissiez prendre des décisions plus éclairées.
Qu'est-ce que l'audit des contrats intelligents ?
L'audit de sécurité des contrats intelligents (smart contract security audit) est le processus d'examen et de commentaire basé sur le code des contrats intelligents d'un projet. En général, ces contrats sont écrits dans le langage de programmation Solidity et sont disponibles via GitHub. L'audit de sécurité est particulièrement important pour les projets DeFi, car ceux-ci traitent des transactions blockchain d'une valeur de millions de dollars ou avec un grand nombre d'utilisateurs. Les audits suivent généralement un processus en quatre étapes :
1. Le contrat intelligent est fourni à l'équipe d'audit pour une analyse initiale.
2. L'équipe d'audit présente ses découvertes au projet afin que celui-ci puisse chercher à remédier aux problèmes.
3. L'équipe du projet effectue des changements basés sur les problèmes identifiés.
4. L'équipe d'audit publie le rapport final, tenant compte de tout changement ou des erreurs restantes.
Pour de nombreux utilisateurs de cryptomonnaies, il est essentiel de déterminer si un projet a audité son contrat intelligent avant de décider d'investir dans un nouveau projet DeFi. L'audit est devenu une norme pour les projets qui souhaitent prouver qu'ils travaillent sérieusement. Certains prestataires de services d'audit de contrats intelligents sont considérés comme des leaders du secteur. Leurs audits sont jugés plus fiables aux yeux des investisseurs par rapport à d'autres parties.
Pourquoi avons-nous besoin d'audits de contrats intelligents ?
Avec la grande quantité de valeur échangée ou verrouillée, les contrats intelligents sont devenus des cibles attrayantes pour des attaques malveillantes de hackers. De petites erreurs dans le code peuvent conduire à de grands vols d'argent. Par exemple, le piratage de la DAO sur la blockchain Ethereum a volé environ 60 millions de dollars en ETH et a même conduit à un hard fork du réseau Ethereum.
Étant donné que les transactions blockchain sont immuables, il est essentiel de s'assurer que le code du projet est sécurisé. Avec la nature hautement sécurisée pour les utilisateurs, la technologie blockchain rend également difficile la récupération des fonds et la résolution des problèmes après que les faits se soient produits, donc il est préférable de prévenir les vulnérabilités de sécurité à tout prix.
Comment se déroule l'audit des contrats intelligents ?
Le processus d'audit des contrats intelligents a été standardisé par les entreprises d'audit. Bien que l'approche de chaque partie puisse être légèrement différente, ce processus se déroule généralement comme suit :
1. Déterminer l'étendue de l'audit. Le contrat intelligent et les spécifications sont définis par le projet (leur objectif prévu) et l'architecture globale. Le cahier des charges aide l'équipe d'audit à comprendre les objectifs du projet lors de l'écriture et de l'utilisation du code.
2. Fournir un devis initial basé sur les travaux nécessaires.
3. Exécuter des tests. La nature exacte de ceux-ci variera selon l'équipe d'audit, les outils d'analyse et leur méthodologie. En général, des tests manuels et automatiques sont effectués.
4. Créer un premier brouillon de rapport avec les erreurs trouvées et le fournir à l'équipe de projet pour retour et corrections.
5. Publier le rapport final, tenant compte de toute action entreprise par l'équipe du projet pour résoudre les problèmes soulevés.
Les méthodes de vérification des contrats intelligents
Efficacité du gaz
L'audit des contrats intelligents ne se concentre pas uniquement sur la sécurité de la blockchain. L'équipe d'audit examine également l'efficacité et l'optimisation. Certains contrats exécutent une série de transactions complexes pour réaliser leurs fonctions prévues. Avec des frais de gaz relativement élevés sur des réseaux comme Ethereum, des contrats efficaces peuvent économiser beaucoup de coûts de transaction.
L'optimisation des performances est également un indicateur pour évaluer les compétences du développeur. Les étapes inefficaces fournissent de nombreux points de défaillance et doivent être évitées. Lorsque les coûts du gaz sont élevés, les contrats intelligents peuvent ne pas être exécutés, même plus que lorsque des limites de gaz faibles sont utilisées.
Vulnérabilité potentielle dans le contrat
La plupart du travail dans les audits concerne l'examen des contrats pour identifier les vulnérabilités de sécurité. Bien que certains problèmes puissent être facilement remarqués, de nombreuses exploitations de vulnérabilités sont liées à des techniques et à des stratégies de retrait. Par exemple, la manipulation du marché peut être utilisée avec des contrats intelligents faibles via des attaques de prêt instantané (flash loan). Pour identifier ces problèmes, les auditeurs commencent le processus d'audit en simulant des attaques malveillantes contre les contrats intelligents. Les vulnérabilités courantes incluent :
1. Problèmes de réentrance : Lorsqu'un contrat intelligent effectue un appel externe à un autre contrat externe avant que toute action ne soit effectuée. Ensuite, le contrat externe peut appeler de manière récursive le contrat intelligent initial et interagir avec lui de manière que cela ne devrait pas être possible, car le solde du contrat initial n'a pas encore été mis à jour.
2. Débordement d'entier : Lorsque le contrat intelligent effectue une opération arithmétique, mais que le résultat dépasse la capacité de stockage (généralement 18 chiffres décimaux). Cela peut conduire à des calculs de montants incorrects.
3. Opportunité de frontrunning : Un code structuré de manière incorrecte peut fournir des informations préalables sur les transactions d'achat ou de vente sur le marché. Cela peut permettre à d'autres d'utiliser ces informations et de trader à leur avantage.
Les erreurs de sécurité de base
La plupart des audits incluent l'examen du réseau hébergeant les contrats et même l'API utilisée pour interagir avec le DApp. Un projet peut être vulnérable à des attaques DDoS ou à des intrusions via l'interface utilisateur du site web, ce qui signifie que les utilisateurs risquent de connecter leur portefeuille à des applications blockchain malveillantes.
Qu'est-ce qu'un rapport d'audit ?
Le rapport d'audit est généré à la fin du processus d'audit. Pour des raisons de transparence, les projets sont censés partager les informations du rapport avec leur communauté. La plupart des rapports classifient les problèmes par niveau de gravité, tels que critique (critical), majeur (major), mineur (minor), etc. Le rapport indiquera également l'état des problèmes, car les projets disposeront d'un délai pour les résoudre avant la publication du rapport final.
Avec un résumé, un rapport standard contiendra des recommandations, des exemples de code de sauvegarde et une analyse complète de l'emplacement des erreurs de codage. Le projet dispose d'un temps pour remédier aux découvertes du rapport avant que sa version finale ne soit publiée.
Où puis-je voir les résultats de l'audit des contrats intelligents du projet ?
Certains services d'audit de contrats intelligents sont devenus célèbres grâce à leur service. Parmi eux, deux entreprises sont particulièrement populaires et leurs rapports fournissent pas mal d'informations.
CertiK
CertiK est l'entreprise leader dans l'industrie en ce qui concerne l'audit des contrats intelligents. Ils ont audité les contrats intelligents de centaines de projets. PancakeSwap, la plus grande plateforme de création de marché automatisé (AMM) de BSC, en est un exemple. Voici les résultats de l'audit de PancakeSwap sur Certik.

De plus, la plupart des projets soutenus par Binance Labs ont été audités par CertiK. CertiK a créé un classement des projets qui ont été audités et vous permet de comparer les scores de sécurité de chaque projet. Notez que, en plus d'Ethereum, CertiK audite également des projets sur BSC et Polygon.

ConsenSys Diligence
Dirigé par Joseph Lubin, co-fondateur d'Ethereum, ConsenSys est l'un des plus grands noms de l'industrie des cryptomonnaies dans le développement de blockchain. Selon ConsenSys Diligence, l'entreprise fournit des services d'audit de contrats intelligents Ethereum. Ils offrent également un service d'audit automatique pour les contrats de la machine virtuelle Ethereum (EVM) afin de détecter les erreurs courantes.
Combien coûte l'audit des contrats intelligents ?
Le coût exact d'un audit dépend du nombre de contrats intelligents à examiner. En général, un audit coûtera des milliers de dollars. Un projet majeur peut facilement coûter plus de 10 000 dollars pour chaque audit. L'entreprise d'audit et sa réputation influenceront également le montant que vous devrez payer.
Résumé
Heureusement pour les investisseurs et les utilisateurs, l'audit des contrats intelligents est devenu une norme obligatoire pour de nombreux projets. Cependant, lorsque chaque projet subit un audit, ses résultats ne constituent plus un indicateur simple de valeur. C'est pourquoi il est extrêmement important de lire vous-même l'évaluation de l'audit. Même si vous n'avez pas de connaissances techniques, en lisant les commentaires et la gravité des problèmes potentiels, les rapports seront toujours très utiles pour vous.
Après cet article, si vous rencontrez un rapport d'audit, vous pourrez au moins en comprendre le contenu plus facilement. Comme toujours, assurez-vous que toute décision d'investissement doit être prise en considérant le contexte global et en tenant compte de toutes les informations.



