Comment les audits de contrats intelligents DAO aident-ils à renforcer la sécurité ? Intelligence des données PlatoBlockchain. Recherche verticale. Aï.

Comment les audits de contrats intelligents DAO aident-ils à renforcer la sécurité ?

Temps de lecture: 6 minutes

La création de DAO est unique à web3, qui tire parti de la compétence de la blockchain pour régir les protocoles sans impliquer d'entités centralisées.  

DAO est fortement centré sur deux facettes : le chiffrement et le stockage distribué. Cela leur donne la capacité de fonctionner sur la base de la décision collective des membres de la communauté.

Comme pour tout protocole Web3, des problèmes de sécurité concernent également les protocoles DAO. 

Cet article vise à mettre en évidence l'infrastructure sous-jacente de DAO et les directives pour improviser leur sécurité de contrat intelligent pour supporter les attaques.   

Objectif du DAO

Ethereum a toujours le mérite d'être la toute première blockchain programmable. Il joue un rôle immense dans la mise en place d'une véritable décentralisation en permettant aux développeurs de jouer avec le code.

À cet égard, Contrats intelligents DAO sont conçus pour favoriser Gouvernance en chaîne

La gouvernance en chaîne est un moyen par lequel les changements sont mis en œuvre dans les projets de blockchain. Les règles sont encodées dans les protocoles et les développeurs proposent des modifications via des mises à jour de code. Le changement proposé est exécuté sur la base des votes des membres/participants de la communauté.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>gouvernance on-chain justifiant le fait que les communautés exploitent purement la blockchain. 

Comme tout autre contrat intelligent, les contrats DAO sont essentiellement conçus pour automatiser le processus et exécuter des actions lorsque les conditions prédéfinies sont remplies. 

Pour illustrer par un exemple, considérons un contrat de jeton ERC-20. Il est créé sur la base des normes ERC-20 avec des informations telles que l'adresse du contrat, la fourniture du jeton, le nom du jeton, les conditions de transfert du jeton, etc. 

L'opération du jeton est exécutée lorsque les règles définies sont remplies. De même, le contrat DAO est codé pour dicter le fonctionnement de l'organisation, comme décider de la répartition des fonds selon les propositions de vote des membres. 

Par exemple, DAO a des trésoreries intégrées. Les fonds provenant de ceux-ci sont dépensés après l'approbation du groupe, et aucune autorité unique n'a accès à l'exécution d'un plan. 

Les propositions de vote pour prendre des décisions critiques concernant le projet garantissent que la voix de chaque participant est entendue, ce qui conduit à une meilleure confiance et transparence dans les activités en chaîne. 

Les droits de gouvernance sur les activités des organisations varient d'un protocole à l'autre, et il est purement subjectif à la façon dont le codage DAO est effectué. Il est donc important de prêter attention aux droits de gouvernance dont disposent les utilisateurs sur le protocole avant de s'inscrire à un DAO. 

Étapes impliquées dans la mise en place de contrats intelligents DAO

La mécanique de Gouvernance en chaîne

La gouvernance en chaîne est un moyen par lequel les changements sont mis en œuvre dans les projets de blockchain. Les règles sont encodées dans les protocoles et les développeurs proposent des modifications via des mises à jour de code. Le changement proposé est exécuté sur la base des votes des membres/participants de la communauté.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>la gouvernance en chaîne est exécutée via un ensemble de contrats – jeton, gouverneur et timelock . Découvrons le rôle de chacun d'entre eux. 

Token: Les jetons déterminent le pouvoir de vote des membres de la communauté pour participer à Gouvernance en chaîne

La gouvernance en chaîne est un moyen par lequel les changements sont mis en œuvre dans les projets de blockchain. Les règles sont encodées dans les protocoles et les développeurs proposent des modifications via des mises à jour de code. Le changement proposé est exécuté sur la base des votes des membres/participants de la communauté.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>gouvernance en chaîne. Le contrat symbolique assure la vérification de l'équilibre pour récupérer le pouvoir et permettre aux participants d'exprimer leur choix sur les propositions de gouvernance. 

Gouverneur: Le contrat du gouverneur est codé avec des conditions sur l'attribution du pouvoir aux détenteurs de jetons, le type de jetons acceptable, le nombre de votes requis pour le forum, etc. Cependant, les développeurs peuvent coder avec les spécificités des fonctionnalités sur la manière dont ils souhaitent que les contrats fonctionnent. 

En outre, le contrat du gouverneur inclut également le délai de vote et les détails de la proposition de vote dans le code. Il a pour but de donner des instructions sur la durée pendant laquelle la proposition de vote est ouverte au vote des participants. 

Verrouillage : L'aspect Timelock implique la configuration d'AcessControl pour le rôle proposé, le rôle d'exécuteur et le rôle d'administrateur. L'intégration du composant timelock avec les systèmes de gouvernance donne la liberté aux participants de se retirer en cas de désaccord avec la décision. 

Vue de haut niveau sur les dreads de sécurité pour les DAO. 

La dépendance des DAO aux contrats intelligents les rend responsables du vote de gouvernance et de la maintenance de la trésorerie. Et chacun de ces éléments a ses propres soucis de sécurité ; déroulons-les ci-dessous. 

Problèmes de sécurité dans le contrat intelligent

Revenons un peu en arrière et souvenons-nous de la fameuse « chute de DAO ». La cause principale était le bogue dans le code DAO. Le pirate a pu exploiter la vulnérabilité et drainer les fonds du contrat en faisant Appels récursifs

L'appel récursif est une condition qui peut se référer à elle-même et les rappeler encore et encore dans une boucle. La fonction récursive utilise le cas de base (if) et le cas d'induction (else). Les attaques de réentrance sont effectuées en exploitant des appels récursifs dans le code.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>appels récursifs. 

Le contrat contenait 12.7 millions d'éther, dont le pirate a volé 3.6 millions d'ETH en tirant parti de la faille du contrat.

Cet incident illustre clairement le besoin de plus d'expérience et d'expérimentation avec la sécurité DAO. Bien que DAO soit très apprécié pour son innovation, la qualité du code a causé plus de dégâts.

De plus, le codage des contrats intelligents doit être totalement transparent pour garantir qu'aucune fonctionnalité ne se transforme en bogue ultérieurement. 

Préoccupations de sécurité sur la gouvernance

Les pirates peuvent s'immiscer dans la gouvernance du protocole de plusieurs manières. Pour commencer, les notifications décentralisées sont un moyen par lequel, si un pirate informatique peut bloquer les notifications, il peut introduire des propositions malveillantes qui passent inaperçues des autres membres du DAO. 

Vient ensuite la proposition exigeant des transactions multi-appels. Si la proposition n'est pas examinée ou auditée par DAO, l'attaquant peut les utiliser pour produire des résultats complexes. 

Des seuils incorrects et des blocages horaires inappropriés entraînent la possibilité de mauvaises activités. Les prêts flash sont une autre préoccupation pour la sécurité de la gouvernance. Les attaquants peuvent emprunter une énorme somme de jetons qui leur confère le pouvoir majoritaire de faire passer une proposition. 

Les propositions aux intentions malveillantes soulèvent un grave problème de sécurité sur les changements mis en œuvre dans le protocole. AAVE et Compound ont souffert de ces types de piratage dans le passé. 

Problèmes de sécurité lors de l'exécution

MakerDAO, lancé dans le réseau Ethereum en 2017, se portait bien. Jusqu'à ce qu'un krach boursier se produise en 2020, lorsque le prix de l'Ether est descendu jusqu'à 50 %. C'était la garantie la plus importante utilisée dans le MakerDAO, et la chute des prix a déclenché une liquidité massive.

MakerDAO n'a pas été conçu pour gérer une liquidation aussi importante qui a entraîné une perte financière plus importante. Bien que le codage soit fort ici, la faute était dans l'exécution du mécanisme de liquidation. 

Dès lors, l'exécution du mécanisme DAO a également été ajoutée à la liste des autres problèmes de sécurité existants. 

Liste de contrôle pour les audits de contrats intelligents DAO

La sécurité est l'aspect prédominant de Gouvernance en chaîne

La gouvernance en chaîne est un moyen par lequel les changements sont mis en œuvre dans les projets de blockchain. Les règles sont encodées dans les protocoles et les développeurs proposent des modifications via des mises à jour de code. Le changement proposé est exécuté sur la base des votes des membres/participants de la communauté.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>gouvernance en chaîne afin d'empêcher que le pouvoir ne tombe entre de mauvaises mains. Donc, du point de vue de la sécurité, trouvons les lignes directrices pour développer des contrats DAO robustes.

Appels de bas niveau : Les appels à des contrats arbitraires qui récupèrent des données arbitraires doivent être traités avec soin. 

La gestion des appels de bas niveau est délicate car elle peut ouvrir la voie à des vecteurs d'attaque de réentrance. Il est donc toujours recommandé de vérifier la condition de réussite des appels, puis de gérer les données renvoyées. 

Avoirs ETH : Sur la base des conclusions de l'audit, il y a eu de nombreux cas où l'ETH n'est pas correctement géré dans les contrats liés à la gouvernance. Ainsi, il est suggéré d'assurer la manière d'envoyer des ETH lorsque les contrats de gouvernance nécessitent la manipulation d'ETH.

Une autre précaution à observer est lors de l'utilisation de msg.value qui autorise les appels groupés. Il y a de fortes chances que ce modèle puisse mal tourner. 

S'abstenir des exploits de prêt Flash : Les prêts flash sont utilisés par les exploiteurs qui veulent influencer les décisions de gouvernance et lancer une attaque. Ils prennent des prêts flash et sécurisent les votes de gouvernance grâce à des avoirs symboliques pour manipuler une décision de gouvernance. 

Par conséquent, vous pouvez éviter de mesurer le pouvoir de vote au niveau du bloc actuel, car le prêt flash contracté pour obtenir un pouvoir de gouvernance met le système en danger. 

Mises à jour régulières: Même s'il n'y a pas nécessairement de défauts dans le contrat, vous devez toujours vérifier sur le marché des jetons de gouvernance et ajuster le seuil en conséquence. Sinon, cela permettrait à des acteurs malveillants de prendre en charge les décisions.

Assurez-vous de prêter attention aux spécificités lors de la migration et de la mise à niveau du système de gouvernance. Il y a eu des cas comme celui qui s'est produit avec Uniswap. Sa migration vers le gouverneur Bravo a initialisé une faille contractuelle qui a temporairement interrompu les décisions de gouvernance. 

Inclure les retards à l'aide du contrat timelock : Les actions différées permettent à la communauté d'examiner les modifications apportées au protocole avant leur entrée en vigueur. Ces temporisations peuvent être mises en place via des contrats Timelock. 

Vulnérabilités liées au protocole : Le logiciel utilisé pour coder un protocole fonctionne sur une logique métier spécifique qui peut varier les unes des autres. Il en va de même pour les problèmes qui surviennent lors de l'exécution de modifications dans ce système. 

En fait, le protocole Compound a subi un problème en raison de l'approbation d'une proposition de la communauté manipulatrice. Par conséquent, il est toujours bon d'avoir un examen approfondi du code par des pairs et des parties indépendantes pour garantir la solidité et la solidité du contrat.

QuillAudits Eminence dans l'audit de contrat intelligent DAO

De nos jours, pour qu'un système soit purement autonome, de nombreux projets cherchent à intégrer Gouvernance en chaîne

La gouvernance en chaîne est un moyen par lequel les changements sont mis en œuvre dans les projets de blockchain. Les règles sont encodées dans les protocoles et les développeurs proposent des modifications via des mises à jour de code. Le changement proposé est exécuté sur la base des votes des membres/participants de la communauté.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>gouvernance en chaîne. Ainsi, le domaine évolue rapidement et s'épanouit selon les besoins de leur communauté. 

Les attaques deviennent également compliquées, ce qui est à la fois difficile et coûteux. Par conséquent, il est nécessaire de s'assurer que les processus sont en place et que le code est suivi de près. Audits de plume effectue une étude approfondie et audite le code pour éliminer tout piège potentiel et sécuriser le projet contre les activités malveillantes.

16 Vues

Horodatage:

Plus de Quillhasch