Partager cet article

L'attaque « Flash Loan » de la DeFi qui a tout changé

Les attaques de prêts éclair sont là pour durer et risquent de s'aggraver. La DeFi doit s'adapter, affirme un important investisseur en capital-risque Crypto .

Haseeb Qureshi est associé directeur chez Dragonfly Capital, un fonds de capital-risque Crypto transfrontalier. Une version plus longue de l'article est disponible sur Moyen.

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

Les prêts flash ont récemment été au centre de l'attention. Deux pirates informatiques ont récemment utilisé des prêts flash pour attaquer le protocole de trading sur marge bZx, une première dans unAttaque de 350 000 $ et plus tard dans une attaque imitatrice de 600 000 $.

Ces attaques étaient, en un mot, magnifiques. À chaque attaque, un attaquant sans le sou empruntait instantanément des centaines de milliers de dollarsETH, l'ont fait passer par une chaîne de protocoles on-chain vulnérables, ont extrait des centaines de milliers de dollars d'actifs volés, puis ont remboursé leurs énormes prêts en ETH . Tout cela s'est produit en un instant, c'est-à-dire en une seule transaction Ethereum .

Nous T qui étaient ces agresseurs ni d'où ils venaient. Tous deux sont partis de rien et sont repartis avec des centaines de milliers de dollars. Aucun des deux n'a laissé de traces permettant de les identifier.

Suite à ces attaques, j'ai beaucoup réfléchi aux prêts flash et à leurs implications pour la sécurité de la DeFi. Je pense que cela mérite d'être examiné publiquement.

En bref : je pense que les prêts flash constituent une menace majeure pour la sécurité. Mais ils ne sont pas près de disparaître, et nous devons réfléchir attentivement à leur impact sur la sécurité de la DeFi à l'avenir.

Qu'est-ce qu'un prêt flash ?

Le concept de prêt flash a été inventé pour la première fois parProtocole de marbreEn 2018, Marble s'est présenté comme une « banque de contrats intelligents » et son produit était une innovation DeFi simple mais brillante : des prêts sans risque via un contrat intelligent.

Comment un prêt peut-il avoir un risque zéro ?

Les prêteurs traditionnels assument deux formes de risque. Le premier est le risque de défaut : si l'emprunteur s'enfuit avec l'argent, c'est évidemment préjudiciable. Mais le deuxième risque pour un prêteur est le risque d'illiquidité : si un prêteur prête trop d'actifs au mauvais moment ou ne reçoit T les remboursements à temps, il peut se retrouver soudainement illiquide et incapable d'honorer ses propres obligations.

Les prêts éclair atténuent ces deux risques. Un prêt éclair fonctionne essentiellement comme suit : je vous prête autant d'argent que vous le souhaitez pour cette transaction unique. Mais à la fin de celle-ci, vous devez me rembourser au moins le montant que je vous ai prêté. Si vous n'êtes pas en mesure de le faire, j'annulerai automatiquement votre transaction ! (Oui, les contrats intelligents le peuvent.)fais ça.)

En termes simples, votre prêt flash est atomique. Si vous ne le remboursez pas, tout est annulé, comme si le prêt n'avait jamais existé.

Une telle situation ne pourrait exister que sur les blockchains. Il serait impossible de réaliser des prêts flash sur BitMEX, par exemple. En effet, les plateformes de contrats intelligents traitent les transactions une par une, de sorte que tout ce qui se passe dans une transaction est exécuté en série, comme une opération par lots. On peut considérer cela comme un « temps de blocage » de votre transaction pendant son exécution. En revanche, une plateforme d'échange centralisée peut connaître des conditions de concurrence telles qu'une étape de votre ordre ne soit pas exécutée. Sur la blockchain, vous avez la garantie que tout votre code s'exécute ONE après ligne.

Code d'exploitation du prêt Flash, via Remco Bloemen
Code d'exploitation du prêt Flash, via Remco Bloemen

Prenons un instant l'aspect économique. Les prêteurs traditionnels sont rémunérés pour deux choses : le risque qu'ils prennent (risque de défaut et risque d'illiquidité) et le coût d'opportunité du capital qu'ils prêtent (par exemple, si je peux obtenir 2 % d'intérêt ailleurs sur ce capital, l'emprunteur doit me payer plus que les 2 % sans risque).

Les prêts flash sont différents. Ils ne présentent aucun risque ni coût d'opportunité ! En effet, l'emprunteur a « gelé le temps » pendant la durée de son prêt flash. Ainsi, aux yeux de tous, le capital du système n'était ni menacé ni grevé. Il n'aurait donc pas pu générer d'intérêts ailleurs (c'est-à-dire qu'il n'avait aucun coût d'opportunité).

Cela signifie, en quelque sorte, qu'être un prêteur flash ne coûte rien. C'est profondément contre-intuitif. Alors, quel devrait être le coût d'un prêt flash à l'équilibre (c'est-à-dire lorsque l'offre et la demande du marché s'équilibrent) ?

En principe, les prêts flash devraient être gratuits. Ou, plus précisément, des frais suffisamment faibles devraient être appliqués pour amortir le coût de l'ajout de trois lignes de code supplémentaires pour rendre un actif prêtable flash.

Les prêts flash ne peuvent pas facturer d'intérêts au sens traditionnel du terme, car ils sont actifs pendant une durée nulle (TAEG * 0 = 0). Et bien sûr, si les prêteurs flash pratiquaient des taux plus élevés, ils seraient rapidement supplantés par d'autres pools de prêts flash proposant des taux plus bas.

Le prêt flash transforme le capital en une véritable marchandise. Cette course au moins-disant se traduit inévitablement par des frais nuls ou minimes. La plateforme de trading DYDX ne facture actuellement aucuns frais pour le prêt flash. Aave, quant à elle, facture 0,09 % du capital pour les prêts flash. Je soupçonne que cette situation n'est pas tenable, et, de fait, leur communauté a a appelé à réduire les frais à zéro(Notez qu'aucune des attaques que nous avons vues n'utilisait Aave comme pool de prêt flash.)

Les attaques Flash ont de grandes implications en matière de sécurité

Je suis de plus en plus convaincu que les prêts flash permettent réellement d'accéder à des attaques flash, des attaques à forte intensité de capital financées par des prêts flash. Nous en avons eu un premier aperçu lors des récents piratages de bZx, et je soupçonne que ce n'est que la pointe de l'iceberg.

Il y a deux raisons principales pour lesquelles les prêts flash sont particulièrement attrayants pour les attaquants.

1. De nombreuses attaques nécessitent un capital initial important (comme les attaques de manipulation d'oracle). Si vous obtenez un retour sur investissement positif sur 10 millions de dollars d' ETH, il ne s'agit probablement pas d'arbitrage ; vous manigancez probablement quelque chose de absurde.

2. Les prêts flash minimisent la contamination pour les attaquants. Si j'ai une idée pour manipuler un oracle avec 10 millions de dollars d'ether, même si j'en possède autant, je ne voudrais peut-être pas risquer mon propre capital. Mes ETH seront contaminés, les plateformes d'échange pourraient rejeter mes dépôts, et il sera difficile de les blanchir. C'est risqué ! Mais si je contracte un prêt flash de 10 millions de dollars, qui s'en soucie ? C'est tout à fait avantageux. Ce n'est pas comme si le pool de garanties de DYDX était considéré comme contaminé, car c'est de là que vient mon prêt : la contamination de DYDX disparaît presque instantanément.

Vous n'apprécierez peut-être pas que la liste noire des plateformes d'échange fasse partie intégrante du modèle de sécurité blockchain actuel. Elle est assez souple et centralisée. Pourtant, c'est une réalité importante qui éclaire les calculs derrière ces attaques.

Dans le Bitcoin livre blancSatoshi a déclaré queBitcoin (BTC) est protégé contre les attaques car :

« [L’attaquant] devrait trouver plus rentable de jouer selon les règles […] que de saper le système et la validité de sa propre richesse. »

Avec les prêts flash, les attaquants n’ont plus besoin d’avoir un quelconque intérêt personnel. Les prêts flash modifient considérablement les risques pour un attaquant.

Haseeb Qureshi
Haseeb Qureshi

Et n'oubliez pas, les prêts flash peuvent s'accumuler ! Sous réserve de la limite de GAS , vous pourriez littéralement regrouper tous les pools de prêts flash en une seule transaction (plus de 50 millions de dollars) et faire exploser tout ce capital sur un seul contrat vulnérable. C'est un bélier de 50 millions de dollars que n'importe qui peut désormais enfoncer dans n'importe quelle piñata en chaîne, pourvu que l'argent sorte. C'est effrayant.

Que signifie tout cela à long terme ?

Je crois que les attaques bZx ont changé les choses.

Ce ne sera pas la dernière attaque flash. La deuxième attaque bZx a été la première à la copier, et je soupçonne qu'elle déclenchera une vague d'attaques dans les mois à venir. Aujourd'hui, des milliers d'adolescents astucieux, venus des régions les plus reculées du monde, fouillent ces legos DeFi, les examinent au microscope, cherchant un moyen de lancer une attaque flash. S'ils parviennent à exploiter une vulnérabilité, ils pourraient eux aussi gagner quelques centaines de milliers de dollars – une somme qui changerait leur vie dans la plupart des régions du monde.

Pour les protocoles, les attaques flash signifient que le modèle de menace a changé. Être victime d'une attaque flash après les piratages de bZx sera aussi embarrassant que d'être victime d'une attaqueréentrance Après le piratage de la DAO : vous serez la risée de la Crypto. Vous auriez dû le voir venir.

Enfin, ces épisodes m'ont fait réfléchir à un vieux concept de la Crypto: valeur extractible par les mineurs (VEM)La MEV correspond à la valeur totale que les mineurs peuvent extraire d'un système blockchain. Cela inclut les récompenses et les frais de bloc, mais aussi des formes plus malveillantes d'extraction de valeur, comme la réorganisation des transactions ou l'insertion de transactions non autorisées dans un bloc.

Au fond, il faut considérer toutes ces attaques flash comme des transactions uniques dans le pool de mémoire, générant des profits colossaux. Par exemple, la deuxième attaque bZx a généré un profit de 645 000 $ en ETH en une seule transaction. Si vous êtes mineur et que vous vous apprêtez à miner un nouveau bloc, imaginez-vous en train de regarder les transactions du bloc précédent et de vous dire : « Attendez, quoi ? Pourquoi est-ce que je vais essayer de miner un nouveau bloc pour environ 500 $, alors que le dernier bloc contient 645 000 $ de profit ? »

Nous sommes encore loin d’avoir une architecture durable pour construire le système financier du futur.

Au lieu d'étendre la chaîne, vous auriez intérêt à revenir en arrière et à tenter de réécrire l'histoire de manière à être l'auteur de l'attaque Flash. Pensez-y : cette transaction à elle seule valait plus de quatre heures de blocs Ethereum minés honnêtement !

C'est similaire au fait d'avoir un super-bloc spécial qui contient 1 000 fois la récompense normale du bloc — comme vous vous y attendez, le résultat rationnel d'un tel super-bloc devrait être un tas de mineurs en compétition pour rendre orphelin le bout de la chaîne et voler ce bloc pour eux-mêmes.

À l'équilibre, toutes les attaques Flash devraient être finalement extraites par les mineurs. (Il est à noter qu'ils devraient également voler tous les arbitrages et liquidations on-chain.) Ironiquement, cela aura un effet dissuasif contre les attaques Flash, car les attaquants ne pourront pas monétiser leurs découvertes de ces vulnérabilités. Peut-être qu'à terme, les mineurs commenceront à solliciter du code d'attaque via des canaux privés et à verser une commission à l'attaquant potentiel. Techniquement, cela pourrait se faire sans confiance, grâce à des preuves à divulgation nulle de connaissance. (Bizarre, non ?)

Mais tout cela relève de la science-fiction pour l'instant. Les mineurs ne font visiblement T ça aujourd'hui.

Pourquoi ne le sont-ils T ?

Il y a des tonnes de raisons. C'est difficile, ça demande beaucoup de travail, la simulation de la machine virtuelle Ethereum est difficile, c'est risqué, il y aurait des bugs qui entraîneraient des pertes de fonds ou des blocs orphelins, cela provoquerait un tollé et le pool de minage malveillant pourrait connaître une crise de communication et être qualifié d'« ennemi d' Ethereum». Pour l'instant, les mineurs perdraient probablement plus en termes de chiffre d'affaires et de blocs orphelins qu'ils n'en gagneraient en essayant de faire cela.

C'est vrai aujourd'hui. Ça T le sera plus très longtemps.

Cela donne une motivation supplémentaire à Ethereum pour accélérer sa transition vers Ethereum 2.0. La DeFi sur Ethereum, bien qu'étonnante et fascinante, est absolument et irrémédiablement en panne. La DeFi n'est pas stable sur une chaîne PoW, car toutes les transactions de grande valeur sont sujettes à la réappropriation par les mineurs (également appelée attaques de bandits du temps).

Pour que ces systèmes fonctionnent à grande échelle, il est nécessaire d'assurer la finalité : l'impossibilité pour les mineurs de réécrire les blocs confirmés. Cela protégera les blocs précédents contre toute réappropriation. De plus, si les protocoles DeFi existent sur des fragments Ethereum 2.0 distincts, ils ne seront T vulnérables aux attaques Flash.

À mon avis, les attaques flash nous rappellent, de manière brève mais utile, que nous n'en sommes qu'aux balbutiements. Nous sommes encore loin d'une architecture durable pour bâtir le système financier de demain.

Pour l'instant, les prêts flash seront la nouvelle norme. Peut-être qu'à long terme, tous les actifs sur Ethereum pourront être utilisés pour des prêts flash. L'ensemble des garanties détenues par les plateformes d'échange, par Uniswap, et peut-être même tous les ERC-20 eux-mêmes.

Qui sait, ce ne sont que quelques lignes de code.

Remarque : Les opinions exprimées dans cette colonne sont celles de l'auteur et ne reflètent pas nécessairement celles de CoinDesk, Inc. ou de ses propriétaires et affiliés.

Haseeb Qureshi

Haseeb Qureshi est associé directeur chez Dragonfly Capital, un fonds de capital-risque Crypto transfrontalier.

Haseeb Qureshi