Comment la moindre erreur a entraîné une perte de 80 millions de dollars pour Compound Finance

Please follow and like us:
Pin Share
Bonus de bienvenue Bybit : jusqu'à 600 $ de récompenses

Compound Finance a déployé mercredi la proposition n°62 pour mettre en œuvre la « distribution dynamique des récompenses COMP » et corriger un certain nombre de bogues mineurs.

Cependant, peu de temps après l’exécution de la mise à niveau, Compound Labs a signalé une “activité inhabituelle”, ce qui a permis à certains utilisateurs de réclamer plus de jetons $COMP que ce qui était autorisé.

Après avoir examiné le contrat, l’auditeur de contrat intelligent Kurt Barry a déclaré que le bogue résultait de la plus petite des erreurs. Il a ajouté que cette erreur mineure a coûté des dizaines de millions à Compound Labs.

Mais à quel point cette erreur était-elle minime ?

Le langage Solidity d’Ethereum est impitoyable

Solidity est un langage de programmation orienté objet, ce qui signifie qu’il organise la conception autour d’objets et de données. Par opposition à la fonction et à la logique.

Il a des similitudes avec le C et le C++, il est donc relativement simple à apprendre. Et étant donné le nombre de programmeurs déjà familiarisés avec le C et le C++, la transition vers Solidity ne prend pas grand-chose.

Cependant, cette approche impérative comporte des risques dans la mesure où les programmeurs doivent indiquer exactement au code ce qu’il doit faire à chaque étape. Et une erreur, même une infime omission laisse le contrat intelligent ouvert à des vulnérabilités.

« Avec une approche impérative, un développeur écrit du code qui spécifie les étapes que l’ordinateur doit suivre pour atteindre l’objectif. Ceci est parfois appelé algorithmique la programmation. En revanche, une approche fonctionnelle consiste à composer le problème comme un ensemble de fonctions à exécuter.

Dans ce cas, L’enquête de Barry a montré que l’erreur de proposition #62 de Compound était due au fait que le programmeur manquait un signe “=” à deux endroits.

« Les contrats intelligents ne pardonnent pas les plus petites erreurs… Le bogue COMP est un cas tragique de « > » au lieu de « >= » (dans deux emplacements de code). Deux personnages, des dizaines de millions de valeur perdues.

Les critiques diront que le processus d’audit et de test de Compound aurait dû être plus approfondi. Cependant, n’est-ce pas un autre exemple des défauts de Solidity, qui s’amplifient lorsque des millions de dollars sont en jeu ?

Qu’est-ce que la proposition de financement composé n°62 ?

Auparavant, le taux de récompense de Compound Finance était le même pour les fournisseurs et les emprunteurs, ce qui entraînait des problèmes tels que des taux d’intérêt négatifs lors de l’emprunt d’actifs particuliers.

La proposition n°62 visait à répartir la distribution du COMP entre les fournisseurs et les emprunteurs de liquidités sur la base de ratios définis par la gouvernance plutôt que sur un modèle de partage égal 50/50.

“Cette proposition modifie la logique du contrôleur pour avoir deux taux de distribution COMP différents pour chaque marché – côté emprunt (compBorrowSpeeds) taux et offre (compSupplySpeeds) taux.”

Cependant, le bogue contenu dans la mise à niveau a permis à certains utilisateurs de réclamer plus de jetons $COMP que ce qui était autorisé.

À ce stade, les détails exacts de la perte sont inconnus. Cependant, le PDG de Compound Robert Leshner déclare que le pire des cas est une réclamation excessive de 280 000 jetons COMP, ce qui équivaut à 82 880 000 $ au prix d’aujourd’hui.

Obtenez un bord sur le marché des crypto-actifs

Accédez à plus d’informations cryptographiques et de contexte dans chaque article en tant que membre payant de CryptoSlate Edge.

Analyse en chaîne

Instantanés de prix

Plus de contexte

Inscrivez-vous maintenant pour 19 $/mois Découvrez tous les avantages

Publié dans : DeFi, Technologie
Bonus de bienvenue Bybit : jusqu'à 600 $ de récompenses

Aimez ce que vous voyez? Abonnez-vous pour les mises à jour.


Crédit: Lien source

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *