Décrypté #05 | Pourquoi les Flash Loans sont-ils un nouveau type dattaque ?

Les prêts flash ont été à l'honneur ces derniers temps alors que de plus en plus d'incidents de vol d'argent des protocoles DeFi se produisent...

Les prêts flash ont été à l'honneur ces derniers temps, car de plus en plus d'incidents de vol de protocole DeFi se sont produits, du piratage de Harvest Finance pour plus de 33 millions de dollars au plus récent incident OUSD de 7 millions de dollars. 

Du point de vue du pirate informatique, cette attaque ressemble à une excellente occasion d'emprunter instantanément des centaines de milliers de dollars à une personne sans le sou dans la valeur de l'ETH. Ensuite, faites-le passer par des protocoles en chaîne vulnérables et extrayez des centaines de dollars de leur poche et remboursez leur prêt. Tout cela s'est passé en un clin d'œil dans une transaction Ethereum. 

Nous ne savons pas qui sont ces agresseurs ni d'où ils viennent. Ils ont tous commencé avec rien et sont repartis avec des centaines de milliers de dollars d'argent et n'ont laissé aucune trace à identifier. 

Que sont les prêts flash ? 

Le concept de prêts flash a été introduit pour la première fois par Max Wolff, le créateur de Marble Protocol, en 2018.

Les prêts flash couramment utilisés pour Ethereum ou ERC20 ne sont empruntés que pour le temps nécessaire à la réalisation d'un bloc de transactions sur la blockchain. Tant que le prêt est remboursé avant le début du prochain bloc de transactions, l'emprunteur n'encourra pas de frais d'intérêt.

Si les prêteurs traditionnels supportent deux formes de risque : le risque de défaut ou le risque de liquidité, Flash Loans résout ces deux problèmes. En gros, les prêts flash fonctionnent comme ceci : 

Je vous prête le montant que vous souhaitez en une seule transaction. Mais à la fin de cette transaction vous devez me rembourser au moins le montant que je vous ai prêté. Si vous ne payez pas, je restaurerai automatiquement votre transaction, ce qui signifie qu'elle n'a jamais commencé. 

Cela n'existe que sur la Blockchain. Vous ne pouvez pas faire de prêts flash sur BitMex. Étant donné que le contrat intelligent peut traiter chaque transaction, tout ce qui se passe dans la transaction est exécuté de manière séquentielle. Vous pouvez considérer cela comme le "temps de blocage" de votre transaction pendant que la transaction est en cours.

Les prêteurs traditionnels sont rémunérés pour deux choses : le risque qu'ils prennent (risques de défaut et d'illiquidité) et le coût d'opportunité du capital qu'ils prêtent. 

Les prêts flash sont différents. Les prêts flash n'ont vraiment aucun risque et aucun coût d'opportunité ! En effet, les emprunteurs sont « gelés » pendant la durée de leurs prêts flash, de sorte que le capital du système n'est jamais à risque et n'est jamais contrecarré, de sorte qu'il ne peut pas générer d'intérêts ailleurs (c'est-à-dire qu'il n'a pas de coût d'opportunité).

Cela signifie qu'il n'y a aucun coût pour devenir un prêteur flash. Cela dit, combien coûtent les prêts flash à l'équilibre ?

Fondamentalement, les prêts flash sont gratuits. Ou plutôt, une redevance suffisamment faible pour amortir le coût comprend 3 lignes de code supplémentaires afin que la propriété puisse se prêter rapidement.

Les prêts flash ne peuvent pas être facturés d'intérêts de la manière traditionnelle, car le prêt est valable pour une durée nulle (tout APR * 0 = 0). Et bien sûr, si les institutions offrant des prêts flash facturent des taux d'intérêt plus élevés, elles se verront rapidement facturer des taux d'intérêt plus bas par d'autres pools de prêts flash.

Certains projets appliquent actuellement des prêts flash sans frais comme dYdX ou AAVE qui facturent 0,09 % du principal pour les prêts flash. 

A quoi servent les prêts flash ? 

Les prêts flash étaient à l'origine principalement connus pour les opérations d'arbitrage. Marble, le créateur de la source de définition des prêts Flash, déclare : 

Avec les prêts flash, les commerçants peuvent emprunter à la banque Marble, acheter des jetons sur un DEX, vendre des jetons sur un autre DEX à un prix plus élevé, rembourser des prêts bancaires et empocher des bénéfices d'arbitrage en une seule transaction. " .

En effet, la plupart des prêts sont utilisés à cette fin. 

Décrypté #05 |  Pourquoi les Flash Loans sont-ils un nouveau type d'attaque ?

Mais le volume est très faible. AAVE a un peu plus de 10 000 $ de prêts depuis sa création. C'est minuscule par rapport au marché d'arbitrage et de liquidation sur DeFi.

Aussi parce que la plupart des transactions d'arbitrage sont effectuées par des arbitragistes compétitifs exécutant des programmes complexes. Ils participent à des enchères de gaz préférées en chaîne et utilisent des jetons de gaz pour optimiser les frais de transaction. C'est un marché très concurrentiel - ces personnes sont parfaitement heureuses de garder quelques jetons sur leur bilan pour optimiser leurs revenus.

En revanche, emprunter sur AAVE coûte environ 80K gaz et charge 0,09% du capital, un prix trop cher à payer pour un arbitragiste compétitif sur une petite marge. En fait, chez la plupart des traders d'arbitrage AAVE, l'emprunteur finit par payer plus de frais au pool de prêt qu'il n'en perçoit.

À long terme, les arbitragistes sont peu susceptibles d'utiliser des prêts flash, sauf dans des circonstances exceptionnelles.

Mais les prêts flash ont d'autres cas d'utilisation plus convaincants dans DeFi. Un exemple est le refinancement des prêts. 

Exemple : Supposons que vous ayez un coffre Maker (CDP) avec 100 $ ETH bloqués et que vous lui ayez emprunté 40 DAI. Vous avez donc une position nette de 60 $ moins la dette. Maintenant, vous souhaitez refinancer en composé pour un meilleur taux d'intérêt. 

Habituellement, il est nécessaire de racheter 40 DAI à l'extérieur, peut-être sur cette bourse pour compléter le CDP car cela nécessite un capital initial. Au lieu de cela, vous pouvez contracter un prêt rapide de 40 DAI, fermer 100 $ CDP, déposer 60 $ ETH débloqués dans Compound, reconvertir 40 $ ETH supplémentaires en DAI via Uniswap et l'utiliser pour payer des prêts flash.

Les attaques de prêts flash ont de grandes implications en matière de sécurité 

Les premiers incidents ont découlé du piratage bZx et c'est peut-être la torche qui a déclenché de nouvelles attaques.  

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

De nombreuses attaques nécessitent beaucoup de capital initial (comme les attaques de manipulation d'oracle). 

Les prêts flash réduisent le risque d'exposition aux attaquants. Si j'ai une idée sur la façon de manipuler oracle avec 10 millions de dollars d'Ether, même si je possède autant d'Ether, je ne voudrais peut-être pas risquer mon capital. Mon ETH sera affecté, les échanges peuvent rejeter mon dépôt et il sera plus difficile pour l'argent de circuler. Tout un risque ! Mais si j'obtiens un prêt rapide de 10 millions de dollars, qui s'en soucie ? Tous sont opposés. Ce n'est pas comme si le pool de prêts hypothécaires de dYdX serait considéré comme étant affecté négativement parce que c'est de là que proviennent ses prêts.

Vous n'aimerez peut-être pas que la liste noire des échanges fasse partie du paradigme de sécurité de la blockchain d'aujourd'hui. C'est assez secret et concentré. Mais la réalité est assez importante compte tenu du calcul derrière ces attaques.

Dans le livre blanc Bitcoin, Satoshi a déclaré que Bitcoin est à l'abri des attaques car :

"[L'attaquant] devrait trouver plus rentable de respecter les règles [...] que de détruire le système et sa propre valeur d'actif."

Avec les prêts flash, les attaquants n'ont plus besoin de dépenser beaucoup d'argent pour le jeu. Les prêts flash modifient considérablement le risque pour les attaquants.

Et rappelez-vous, les prêts flash peuvent s'accumuler ! Sous le plafond d'essence, vous pouvez regrouper tous les fonds prêtables rapidement en une seule transaction (jusqu'à 50 millions de dollars) et ramener tout ce capital à un seul contrat vulnérable. C'est une énorme mémoire de 50 millions de dollars que n'importe qui peut rejoindre maintenant tant qu'il y a de l'argent. C'est tellement effrayant !

Bien sûr, maintenant vous ne pourrez pas attaquer un protocole si vous n'avez que beaucoup d'argent. Si DeFi est aussi sécurisé qu'on le prétend, tout cela n'aura pas d'importance, quel type de protocole n'est pas sécurisé contre les baleines ? Non, sauf que ce n'était que de la négligence.

Cependant, nous pourrions voir Ethereum lui-même soumis à une attaque de 51 % pour moins de 200 000 $/heure. Si le propre modèle de sécurité d'Ethereum est essentiellement construit autour de contraintes de capital, pourquoi sommes-nous si prompts à supposer que les applications DeFi peuvent être piratées avec succès pour aussi peu que 10 millions de dollars ?

Comment atténuer les attaques de prêts flash ?

Disons que je suis un protocole DeFi et que je veux éviter d'être attaqué par des prêts flash. La première question est la suivante : puis-je détecter si les utilisateurs qui interagissent avec moi utilisent des prêts flash ?

La réponse simple est non!

EVM n'autorise pas les frères et sœurs à lire la mémoire à partir d'un autre contrat. Donc, si vous voulez savoir ce qui se passe dans un autre contrat, ce contrat vous le dira. 

Donc, si vous voulez savoir si des prêts flash sont utilisés, vous devez demander directement le contrat. Aujourd'hui, de nombreux protocoles de prêt ne répondent pas à de telles requêtes (et il n'y a aucun moyen d'appliquer ce que fait un prêteur express). 

De plus, même si vous avez essayé de tester une telle requête, il peut être facile d'être mal dirigé en utilisant un contrat d'autorisation ou en établissant des liens entre des groupes de prêts rapides. En général, il n'est pas possible de dire en général si les déposants utilisent ou non les prêts flash.

Tout comme quelqu'un frappe à votre porte et se tient devant vous avec une valise contenant 10 millions de dollars, vous ne pouvez pas dire si c'est son argent ou non. Droit? 

Comment se protéger des attaques de prêt flash ? 

Arrêtez de fournir le service Flash Loans 

Sérieusement, essayer d'amener les prêteurs à cesser d'offrir des prêts flash, c'est comme essayer d'arrêter la pollution sonore. 

La fourniture de prêts rapides est soumise aux intérêts personnels de chaque protocole, et il y a de bonnes raisons pour lesquelles leurs utilisateurs souhaitent cette fonctionnalité. Nous pouvons donc supprimer cela en toute sécurité. 

Forcer les transactions importantes à durer deux blocs

N'oubliez pas que les prêts flash vous permettent d'emprunter de l'argent pour la durée d'une seule transaction. Si vous demandez une transaction à forte intensité de capital qui s'étend sur deux blocs, les utilisateurs doivent emprunter au moins deux blocs, ce qui permet de vaincre toute attaque de prêt flash. (Remarque : pour que cela fonctionne, les utilisateurs doivent verrouiller leur valeur entre les deux blocs, les empêchant de rembourser le prêt).

Évidemment, cela conduit à un compromis UX : cela signifie que les transactions ne seront plus synchronisées. Il est attrayant pour les utilisateurs et semble également assez sécurisé.

De nombreux développeurs se plaignent des opérations de contrat intelligent asynchrones, telles que l'interaction avec la communication de couche 2 ou le cross-sharding dans Ethereum 2.0. 

Ironiquement, l'asynchronisme protège en fait ces systèmes contre les attaques de prêt flash, car vous ne pouvez pas passer par un fragment ou une couche 2 en une seule petite transaction. Cela signifie qu'il n'y a pas d'attaque de prêt flash sur les fragments ETH 2.0 ou contre les DEX de couche 2.

Demander en ligne une preuve du solde précédent de l'utilisateur

Nous pourrions vaincre les attaques de prêt flash s'il existait un moyen de détecter le solde net d'un utilisateur, c'est-à-dire quel était son solde avant qu'il ne contracte un prêt.

Avant qu'un utilisateur n'interagisse avec le protocole d'une plate-forme, la plate-forme exige une preuve Merkle qui prouve qu'à la fin du bloc précédent, il dispose d'un solde suffisant pour tenir compte du capital qu'il utilise actuellement. La plate-forme doit suivre cela pour chaque utilisateur dans chaque bloc.

Cette solution présente quelques complications : la vérification de ces preuves en chaîne est extrêmement coûteuse en chaîne, et aucun utilisateur bien intentionné ne veut les générer et payer des frais d'essence pour le tout. . Alternativement, les utilisateurs peuvent avoir modifié leurs soldes plus tôt dans le même bloc pour des raisons parfaitement légitimes. Donc, théoriquement, cela a du mérite, mais ce n'est pas une solution pratique.

Il n'existe pas de solution unique capable d'empêcher complètement les attaques de prêts flash, mais deux applications spécifiques peuvent atténuer ces attaques : l'oracle de tarification basé sur le marché et les jetons de gouvernance.

Pour les oracle de tarification basés sur le marché comme Uniswap ou OasisDEX, les attaques de prêt flash vous empêchent d'utiliser les taux moyens actuels du marché comme oracle. 

Le plan de l'attaquant était de déplacer le prix moyen du marché en une seule transaction et de créer un flash crash, endommageant l'oracle en termes de prix.

La meilleure solution ici est d'utiliser une moyenne pondérée des X derniers blocs via TWAP ou VWAP. Uniswap v2 fournira cette solution. Il existe également Polaris, une approche généralisée pour fournir des moyennes mobiles pour les protocoles DeFi, mais Polaris est abandonné depuis de nombreuses années. 

La gouvernance en chaîne est généralement déterminée par un vote pondéré en pièces parmi les détenteurs de jetons de gouvernance. Mais si ces jetons de gouvernance se trouvent dans un pool de prêts flash, alors tout attaquant peut prendre une énorme pile de pièces et compter sur le résultat qu'il souhaite.

Bien sûr, la plupart des protocoles de gouvernance nécessitent le verrouillage des jetons pendant le vote, ce qui permet de vaincre les attaques de prêts flash. Mais certaines formes de vote ne l'exigent pas, comme le vote carbone ou le contrat d'exploitation Maker's. Avec les attaques de prêts flash d'aujourd'hui, ces formulaires de vote doivent être considérés comme complètement cassés.

La chose la plus logique est que le jeton de gouvernance est totalement sans prêt mais cela dépend du marché. Par conséquent, toutes les actions administratives doivent nécessiter un verrou pour empêcher les attaques de prêts flash. Le nouveau jeton COMP de Compound va encore plus loin en chronométrant tous les votes du protocole, affaiblissant instantanément même l'attaque de prêt occasionnelle contre le jeton de gouvernance.

D'une manière générale, tous les jetons de gouvernance doivent avoir du temps. Timelock qui exécute toutes les décisions administratives doit attendre un certain temps avant qu'elles ne prennent effet (pour Compound timelock est de 2 jours). Cela permet au système de se remettre de toute attaque administrative imprévue.

Sens à long terme 

Je crois que les attaques bZx ont tout changé.

Ce ne sera pas la dernière attaque de prêt flash. La deuxième attaque bZx est le premier clone et je doute qu'elle provoque une vague d'attaques dans les mois à venir. 

Et cela s'est complètement produit, dans une série d'attaques de prêts flash se sont produites telles que Harvest Finance (33,8 millions de dollars), Value DeFi (7 millions de dollars), Akro (2 millions de dollars), Cheese Bank (3,3 millions de dollars) et plus récemment OUSD (7 millions de dollars).

Épilogue 

C'est probablement l'une des motivations d'Ethereum pour passer rapidement à Ethereum 2.0. DeFi n'est pas stable sur la chaîne PoW, si des protocoles DeFi existaient sur des fragments séparés sur Ethereum 2.0 , ils ne seraient pas vulnérables aux prêts flash.

L'attaque des prêts flash nous donne un petit mais utile rappel que chaque plate-forme ne fait que commencer, il faut beaucoup de temps pour obtenir une architecture durable pour construire le système financier du futur.

L'article est traduit et édité à partir de l'article original publié par Dragonfly Research. 



03 bourses Trade Coin & Margin les plus prestigieuses (2021)

03 bourses Trade Coin & Margin les plus prestigieuses (2021)

Les nouveaux arrivants devraient échanger des pièces sur quelle bourse ? Dans cet article, Coin98 présentera les 3 bourses de trading de pièces les plus prestigieuses en 2021 !

Ren Protocol 2021 - Potentiel et opportunité dexpansion multi-chaînes DeFi après son acquisition par Sam SBF de FTX

Ren Protocol 2021 - Potentiel et opportunité dexpansion multi-chaînes DeFi après son acquisition par Sam SBF de FTX

Comparé à WBTC avec une capitalisation boursière de 8 milliards USD (rival direct de REN), le nombre de renBTC réalisé est encore assez faible. Quelle est donc la raison ?

Guide de lutilisateur détaillé de Tabtrader pour les débutants

Guide de lutilisateur détaillé de Tabtrader pour les débutants

A quoi sert TabTrader ? Pourquoi utiliser TabTrader ? Consultez le guide de l'utilisateur détaillé et facile à comprendre de TabTrader pour les débutants ici !!!

Bitcoin Crash - Le krach boursier et la reprise ont atteint de nouveaux sommets

Bitcoin Crash - Le krach boursier et la reprise ont atteint de nouveaux sommets

Lorsque Bitcoin s'est effondré, c'était aussi le moment où le marché était "rouge en feu". Passons en revue avec Coin98 les forts dumps de Bitcoin et la reprise du marché.

3 points forts de la nouvelle tokenomics dALPHA

3 points forts de la nouvelle tokenomics dALPHA

L'article vous donne une perspective sur la tokenomics Fee Accurual d'Alpha, en quoi elle est spéciale et comment cela affecte-t-il les jalonneurs ?

Que sont les dérivés cryptographiques ? Types et risques de négociation de dérivés (2022)

Que sont les dérivés cryptographiques ? Types et risques de négociation de dérivés (2022)

Les dérivés ont apporté des tonnes de liquidités au monde de la cryptographie. Alors, que sont les dérivés cryptographiques ? En savoir plus sur le trading de dérivés cryptographiques ici.

Le manuel SolFarm le plus détaillé (2021)

Le manuel SolFarm le plus détaillé (2021)

Instructions pour utiliser SolFarm pour réaliser des bénéfices grâce à l'agriculture, avec des opérations telles que : fournir, retirer des liquidités et prêter.

Cream V2 & Iron Bank - Une nouvelle brise dans le prêt DeFi (Partie 2)

Cream V2 & Iron Bank - Une nouvelle brise dans le prêt DeFi (Partie 2)

Article sur Iron Bank, le produit phare de Cream V2. Aidez à faire passer les prêts dans DeFi au niveau supérieur.

Top 5 des pièces Web3 exceptionnelles en 2021 !

Top 5 des pièces Web3 exceptionnelles en 2021 !

Web3 est un sujet important et suscite beaucoup d'intérêt de la part de la communauté Crypto. Alors, quels sont les 5 meilleurs coins Web3 en 2021 ?

La tendance Algorithmic Stablecoin 2021 est-elle?

La tendance Algorithmic Stablecoin 2021 est-elle?

Cet article présentera quelques projets Fork du grand projet Algorithmic Stablecoin. Est-ce une tendance en 2021 ?

Sign up and Earn ⋙
Sign up and Earn ⋙