Introduction
Depuis quelques années, de plus en plus de protocoles de finance décentralisée (DeFi) émergent portés par l’engouement autour des cryptomonnaies.
Cet enthousiasme pour le secteur a fait fortement monter les volumes et TVL (Total Value Locked) de ces protocoles ce qui les a amenés à être de plus en plus exigeants concernant la sécurité de leurs smart contracts.
Vous n’êtes pas sans savoir que certains de ces protocoles de finance décentralisée gèrent plusieurs dizaines de millions voir milliards de dollars qui sont verrouillés ou qui transige via ces fameux contrats intelligents.
C’est pourquoi la sécurité de ce dernier est au cœur d’un projet DeFi, car elle représente un gage de qualité et de confiance nécessaire à la prospérité de ces protocoles.
Parties de ce constat, plusieurs sociétés se sont spécialisées dans les audits de smart contrats.
Qu’est-ce qu’un audit de smart contract
Un audit de smart contract est un examen poussé au niveau du code informatique interne aux contrats intelligents, effectué par des entreprises tierces au projet nécessitant l’audit en question, concentré sur la robustesse de la sécurité des smart contracts et des potentielles failles se trouvant dans le code de ceux-ci.
Ces audits se déroulent généralement en quatre étapes :
- Envoie des smart contracts du projet vers les auditeurs pour analyse
- Les (potentielles) failles de sécurité ainsi que les optimisations à réaliser dans le code afin d'améliorer l'efficacité du programme sont rapportées au porteur du projet
- L’équipe du projet apporte les modifications nécessaires aux smart contrats
- Les auditeurs publient un rapport final tenant compte des modifications apporté par l’équipe du projet
Pour la communauté crypto, ces audits représentent un gage de confiance et de sérieux de la part des équipes des projets nécessaires pour que ces projets perdurent et gagnent la confiance de la communauté crypto.
Et pour cause, un audit de sécurité peut vite couter plusieurs milliers de dollars. Le prix variera selon le nombre de contrats intelligents à auditer, mais aussi en fonction de la réputation de la société sollicitée.
Voici quelques exemples des sociétés d’audit les plus connus :
- Certik
- Solidproof
- ConsenSys diligence
Cependant, certaines failles sont décelées même après avoir effectué plusieurs audits. Aucun système informatique ne peut se permettre de croire qu'il est sécurisé à 100%, c'est pour cela qu'il est important de rester prudent et de réaliser régulièrement des audits.
L’importance des audits de sécurité
Les transactions sur les réseaux blockchain étant irréversible, il est d’une importance capitale pour un projet gérant beaucoup de fonds de s’assurer que le code informatique de leur protocole est sans faille et efficient.
En effet, étant donné la taille des sommes gérée par ces protocoles, il est normal qu’ils soient victimes de cyberattaque visant à subtiliser ou détourner ces fonds.
Une simple faille dans un smart contrat peut provoquer d’énormes dégâts.
En effet, beaucoup de gens se rappel d’un des hacks les plus connus du milieu sur l’organisation The DAO en 2016, qui se fera voler 3,6 millions d’ETH soit environs 50 millions de dollars à l’époque et représentant aujourd’hui à l’heure où ces lignes sont écrites environs 6 milliards de dollars.
Au-delà de l’aspect monétaire, dont certains protocoles se relèvent, l’image des projets peut être entachée à jamais auprès des utilisateurs qui réfléchiront à deux fois avant de confier à nouveau leur argent à ces projets.
C'est un aspect important à prendre en considération, car dans une optique de mise à l’échelle mondiale, seuls les protocoles les plus fiables seront utilisés par les utilisateurs.
Le fonctionnement d’un audit de smart contract
On notera que les sociétés d’audit ne se contentent pas seulement de vérifier la sécurité des contrats, mais aussi de vérifier leur efficience pour leur tâche à effectuer ainsi que leur optimisation.
Vous n’êtes pas sans savoir que des frais de Gas seront utilisés via ces smart contracts pour des séries de transactions compliquées afin qu’il puisse fonctionner, c’est pourquoi l’optimisation du code permettra de réduire, voire de limiter certaines étapes qui entraineraient plus de frais de gas sur un contrat.
Cette optimisation permet parfois de faire gagner beaucoup d’argent étant donné les couts de gas de certains réseaux. De plus, les étapes inutiles sur un contrat sont accompagnées de risques inutiles pouvant donc être évités.
Elles s’occupent également de tester la fiabilité des API utilisées pour interagir avec les applications décentralisées, même parfois du réseau sur lequel les contrats sont hébergés pour éviter toute forme de vulnérabilité face aux attaques par déni de service (DDoS).
Parfois, les projets font appel à la communauté en échange d’une récompense (bug bounty), afin de vérifier l’étanchéité de leur protocole. Par exemple, la plateforme hackerone, permet de référencer des primes à récupérer en cas de découverte de faille de sécurité.
Conclusion
Les audits de contrats intelligents sont un des piliers qui permet à un nouveau projet de prospérer sur la durée et de conquérir les utilisateurs.
Cependant, les avancer et les outils se développent très rapidement de nos jours, c’est pourquoi il est nécessaire de prendre en considération que le risque zéro n’existe pas.
Néanmoins, les projets, de plus en plus conscients de l’importance de la sécurité, ne lésinent généralement pas sur les moyens financiers alloués à la sécurité pour limiter au maximum le risque de faille.