Partager cet article

La manipulation de Mempool a permis le vol de 8 millions de dollars de garanties MakerDAO le jeudi noir : rapport

De nouvelles recherches suggèrent que l'événement « Black Swan » de mars pour Ethereum pourrait avoir été un plan sophistiqué pour tirer profit d'une vente mondiale.

À emporter:

La Suite Ci-Dessous
Ne manquez pas une autre histoire.Abonnez vous à la newsletter The Protocol aujourd. Voir Toutes les Newsletters

  • Blocknative, une société qui conserve des données sur les mempools Ethereum du monde entier, pourrait avoir une explication à l'attaque « zero-bid » sur MakerDAO le jeudi noir.
  • Les mempools sont des conteneurs de stockage pour les transactions en attente d'extraction de blocs. En cas de tension sur le marché, ils ont tendance à s'engorger.
  • Blocknative a découvert un flux infini de transactions intelligentes et sans valeur dans les mempools le jour de l'attaque, apparemment conçues pour rendre difficile le passage des transactions.
  • La chute du prix de ETH a déclenché des enchères de garanties sur MakerDAO. En raison de l'engorgement des pools de mémoire, les enchérisseurs n'ont souvent pas pu obtenir d'offres, ce qui a permis aux attaquants de WIN des garanties en ETH avec des enchères à 0 $.
  • Les assaillants sont repartis avec 8,3 millions de dollars.

Une manœuvre astucieuse dans les mempools d'Ethereum a permis aux attaquants de voler 8,3 millions de dollars aux utilisateurs de MakerDAO le jeudi noir, selon une étude publiée mercredi.

Pour récapituler : Le prix deéther ETH a chuté le 12 mars, engorgeant le réseau Ethereum suite à un flot de tentatives de transactions. Alors que les investisseurs se tournaient vers les monnaies fiduciaires, le cours de l'ETH a chuté suffisamment pour déclencher la liquidation des garanties détenues sur la plateforme de prêt MakerDAO. Ces liquidations programmatiques ont permis aux attaquants de s'enfuir avec 8,3 millions de dollars en ETH, gratuitement, en vendant à découvert les emprunteurs et MakerDAO lui-même.

La congestion, cependant, était essentielle et complètement intentionnelle, selonBlocknative, une entreprise axée sur l'étude de l'action dans les mempools blockchain.

La nouvelle recherche suggère que l'événement « Black Swan » de mars pour Ethereum pourrait en fait avoir été un plan sophistiqué pour tirer profit d'une vente mondiale alimentée par les inquiétudes liées au COVID-19.

« L'affaire dans son ensemble a permis aux attaquants de réaliser plus de 1 000 enchères à prix zéro… et de collecter cette valeur sous-jacente avec presque aucune dépense personnelle », a déclaré Matt Cutler, PDG de Blocknative, à CoinDesk dans une interview.

Manipulation du mempool

Au cœur du travail de Blocknative se trouvent les mempools : le stockage temporaire sur chaque nœud Ethereum où les transactions attendent d'être extraites et finalisées.

À la mi-mars, les mempools ont été volontairement encombrés de transactions inutiles, a déclaré Blocknative, dans le cadre d'un plan visant à WIN des enchères à prix zéro pour ETH sur MakerDAO dans ces conditions précises.

En effet, la Maker Foundation a écrit autant dansson post-mortempublié en avril :

La congestion du réseau et les prix élevés du GAS ont entraîné des retards de transaction et, dans de nombreux cas, des échecs. Ces problèmes, combinés à la chute sans précédent de la valeur des actifs, ont pris au dépourvu les propriétaires de Maker Vault, les Keepers et les pools de liquidités.

(La Maker Foundation a renvoyé CoinDesk vers l'article de blog ci-dessus et a refusé de commenter davantage cette histoire.)

De nombreux utilisateurs Ethereum se demanderont évidemment si la chute du prix de ETH a été artificiellement provoquée, mais cette question dépasse le cadre de l'enquête de Blocknative. Les attaquants auraient pu être prêts à exploiter opportunément une chute spectaculaire du prix de l'ETH ; on ignore encore si cette chute était artificielle.

Cela dit, Blocknative a trouvé ce qui semble être un test du 8 mars des mécanismes de l'attaque, un fait que le cabinet de recherche ne décrit T dans son rapport.

« C'est une coïncidence intéressante que le test et l'attaque aient eu lieu à seulement quatre jours d'intervalle », a déclaré Cutler à CoinDesk. « [Mais] nous T aucune preuve que ce soit autre chose qu'une manœuvre opportuniste. »

Quoi qu'il en soit, les attaquants ont exploité des informations très subtiles sur Ethereum et MakerDAO. « Ils ont exploité des techniques inédites », a déclaré Cutler.

Nous reviendrons sur ces techniques plus tard. Tout d'abord, nous devons aborder quelques notions de base sur MakerDAO et Ethereum.

Notions de base de MakerDAO

MakerDAO est connu comme le créateur deDAI (DAI), le stablecoin décentralisé actuellementapprécié des agriculteurs de rendementLe DAI est créé à partir de dettes. Les utilisateurs déposent des ETH ou d'autres crypto-actifs en garantie sur la plateforme Maker , puis retirent une partie de la valeur de ces actifs sous forme de DAI flambant neuf.

Pour récupérer leur garantie, les utilisateurs doivent rembourser le DAI emprunté, majoré des intérêts courus (dans le jargon de MakerDAO, il s'agit des « frais de stabilité », mais il s'agit simplement d'un taux d'intérêt variable). MakerDAO applique le prix du DAI en liquidant la garantie si sa valeur tombe en dessous du seuil minimum afin de maintenir une garantie adéquate. Pour ETH, ce montant est de 150 %, mais la plupart des utilisateurs investissent bien plus ETH que le minimum.

Donc, si ETH était à 200 $ et que l'utilisateur a posté 1 ETH pour emprunter 100 DAI, il ne sera T liquidé à moins que ETH ne tombe en dessous de 150 $.

Mais le jeudi noir, le prix de l'ETH a chutépresque 100 $, à partir de 193 $, ce qui a déclenché de nombreuses liquidations.

D'ailleurs, les liquidations peuvent être effectuées par n'importe qui grâce à des robots appelés « Keepers ». MakerDAO gère lui-même un Keeper, mais quelques autres entités inconnues le font également.

Les gardiens WIN des liquidations grâce à une vente aux enchères (décrite étape par étape en langage clair)par CoinList), donc différents Keepers ont fait une offre pour clôturer le prêt, et le jeudi noir, ces enchères n'ont duré que 10 minutes, soit quelques dizaines de blocs Ethereum .

L'idée est que ces enchèresdevrait(et cela a généralement été le cas) a permis aux utilisateurs de récupérer leur garantie, moins le montant dû, plus les frais de stabilité et les frais de liquidation (c'est la dernière partie qui est pénalisante). Mais c'estpas ce qui s'est passé cette fois.

Les emprunteurs n'ont rien reçu et, en fait, MakerDAO a été remboursé avec beaucoup trop peu de DAI, et l'ensemble du systèmeétait sous-collatéralisé.

Les bases Ethereum

Ethereum est une blockchain, ce qui signifie qu'elle collecte toujours des transactions et que les mineurs sont en compétition pour composer des blocs de ces transactions, les crypter, briser le cryptage, puis prouver leur travail au reste des mineurs pour WIN une récompense de bloc.

Les transactions ne sont T réeljusqu'à ce qu'elles soient dans un bloc miné. Et il y a généralement plus de transactions en attente d'être intégrées à un bloc qu'il n'y a de place pour d'autres transactions. Ces transactions retardées attendent dans ce qu'on appelle le « pool de mémoire."

Les mempools sont ONEune de ces choses auxquelles la plupart des gens n'ont T vraiment besoin de penser la plupart du temps, sauf qu'ils deviennent vraiment importants lorsque les situations deviennent urgentes : comme lorsque le prix de ETH chute d'une falaise.

« C'est à ce moment-là que vous avez le plus besoin d'être sûr que les choses se passent de manière ordonnée », a déclaré Cutler, « que les choses sont les moins fiables. »

C'est là tout l'intérêt de Blocknative. L'entreprise conserve un historique détaillécompte des mempools Partout dans le monde, Blocknative étudie ce qu'elle appelle la « valeur en mouvement ». Blocknative aide ses clients à déterminer s'ils doivent être plus agressifs dans des domaines comme les paiements de GAS en période de forte affluence. Les données Mempool constituent une « valeur en mouvement » ; les données blockchain finalisées constituent une valeur au repos.

Il est crucial que les mineurs ne puissent pas traiter une nouvelle transaction si la précédente n'a T été effectuée. Chaque transaction sur Ethereum depuis un portefeuille reçoit un numéro, et 515 ne sera T effectuée si 514 ne l'a pas T (ceci est suivi par le « nonce » de transaction, dans le jargon Ethereum). Cette réalité séquentielle s'avère être la clé de l'attaque.

Ce que Blocknative a découvert

Blocknative conserve les données du pool de mémoire d' Ethereum depuis début 2018 (ainsi que celles de ses réseaux de test et du réseau Bitcoin ). L'entreprise a décidé d'analyser ces données pour comprendre ce qui s'est passé autour du 12 mars.

Blocknative a découvert qu'une proportion inhabituellement élevée du mempool était obstruée par des transactions avec des prix de GAS très bas.

Habituellement, cette proportion n'est T très élevée, car les utilisateurs souhaitent que leurs transactions aboutissent. Ils surveillent donc les prix du GAS et les fixent à des niveaux susceptibles d'être récupérés par un mineur. Mais ce n'était pas le cas le 12 mars. De nombreuses transactions dans le pool affichaient des prix du GAS bas. Trop.

Cela a permis aux attaquants de soumettre des « offres nulles » dans les enchères collatérales de MakerDAO avec des prix de GAS élevés attachés – sachant très bien qu'ils pourraient probablement WIN ces enchères contre des robots Keeper bien intentionnés qui ne pouvaient T faire passer leurs offres.

Blocknative décrit ce que l'on appelle les « Hammerbots ». Il s'agirait de robots conçus pour réaliser des transactions précisément dans le but d'encombrer le pool de mémoire.

« Les robots ont bombardé le pool de mémoire avec des transactions qui n'étaient pas censées être finalisées. Ces « Hammerbots » ont consommé les ressources du pool en émettant des taux extrêmement élevés de transactions de remplacement sans augmentation correspondante du GAS», a déclaré Blocknative. a écritsur son blog.

Ces transactions étaient en outre conçues avec de nombreuses opérations inutiles qui pouvaient être déplacées et modifiées facilement pour modifier le hachage, mais qui ne semblaient servir à rien.

« Ces transactions particulières seraient particulièrement efficaces pour consommer les ressources du mempool », a déclaré Chris Meisl, cofondateur de Blocknative, à CoinDesk.

Problèmes en cascade

C'est donc le premier problème : la congestion a rendu difficile pour les emprunteurs sur MakerDAO d'ajouter davantage de garanties et a rendu difficile pour les Keepers de faire passer des offres.

« Cela a donné lieu à des conditions anormales de mempool, qui favoriseraient finalement certaines transactions », rapporte le post de Blocknative.

Mais il y a une autre observation cruciale que les attaquants semblent avoir faite à propos de Keepers : ils ne semblaient T vérifier si les transactions étaient effectuées.

« Lorsque vous effectuez des transactions sur un compte ou une adresse sur Ethereum, elles doivent être ordonnées », a déclaré Meisl.

Comme indiqué précédemment, si un nonce est manquant dans l'enregistrement d'une blockchain, les mineurs T peuvent accepter de transactions ultérieures tant ONE avec le nonce précédent n'est pas traitée. Ainsi, une transaction ultérieure restera bloquée, même si elle est associée à un prix de GAS très élevé, jusqu'à ce que la ONE soit traitée.

Cela a eu une conséquence étrange. Extrait du billet de blog de Blocknative :

« Considéré dans son ensemble, même si le volume des transactions entrant dans le mempool a augmenté de façon spectaculaire, le prix du GAS d'une partie importante du mempool s'est effondré à une valeur artificiellement basse. »

En bref : les attaquants savaient que les Gardiens ne parviendraient pas à faire passer leurs premières enchères et que les enchères suivantes seraient bloquées « probabilistement » (selon les termes de Cutler). Et cela a souvent fonctionné.

Le code open source publié par MakerDAO pour les robots Keeper ne comportait T de mesures permettant de vérifier les transactions bloquées.

Cela a créé un écart potentiel qui a permis à l'attaquant de soumettre une offre avec un prix du GAS élevé mais une offre de 0 DAI pour la garantie, déclenchant ainsi le court délai de 10 minutes pour les enchères.

« Alors que les systèmes de trading automatisés sont souvent conçus pour augmenter par programmation le prix du GAS des transactions, de nombreux systèmes de trading de ce type ne gèrent pas bien les écarts de nonce, voire pas du tout », prévient le post de Blocknative.

Dans 1 462 cas, les Keepers n'ont pas remarqué que leurs enchères restaient bloquées dans les mempools, les attaquants ont remporté l'enchère, volant des millions de dollars en ETH et forçant presque un arrêt d'urgence sur MakerDAO.

MakerDAO a depuis prolongé la durée des enchèresà six heuresBlocknative a ouvert son ensemble de données sur l'activité des mempools pour que les membres de la communauté puissent les étudier plus en détail.

Le billet de blog note :

Le mempool est un élément essentiel – mais éphémère et souvent négligé – de l'écosystème blockchain. De ce fait, il présente de nombreuses « inconnues » pour les développeurs comme pour les utilisateurs.

Dans ce cas, cependant, les attaquants ont étudié le code du Keeper de Maker et ont réalisé qu'il était possible de savoir ce que les vrais Keepers ne savaient T.

Brady Dale

Brady Dale détient de petites positions dans BTC, WBTC, POOL et ETH.

Picture of CoinDesk author Brady Dale