Flash Loan Explication

Flash loan sur Ethereum, explication de l’emprunt sans apport

Please follow and like us:

Alors, qu’est-ce que le flash loan ? Et comment les utiliser pour emprunter des millions de dollars de crypto sans apport? Vous trouverez des réponses à ces questions dans cet article.

Nouveau sur la finance décentralisée, formez vous => l’explication de la DeFi

N’hésitez pas à nous suivre sur twitter  ou sur facebook

 

Introduction

Un prêt flash est une fonctionnalité qui vous permet d’emprunter n’importe quel montant disponible d’actifs auprès d’un pool de contrats intelligents désigné sans aucun apport ni garanti. Le flash loan est un élément de base  dans la finance décentralisée. Car il est utile pour des choses comme l’arbitrage, l’échange de garanties et l’auto-liquidation.

Pour tout comprendre sur les contrats intelligents => les Smarts contracts

Le flash loan, bien qu’initialement introduit par le protocole Marble, ont été popularisés par Aave et dYdX.

Alors, quel est le piège?

Un prêt flash doit être emprunté et remboursé dans le cadre d’une même transaction blockchain.

Le concept de transaction sur une blockchain comme Ethereum n’est pas différent de la définition traditionnelle d’une transaction en informatique.

Transactions

Une transaction représente un ensemble d’opérations qui doivent être exécutées de manière atomique.  Soit toutes les étapes sont exécutées, soit la transaction est annulée. Et aucune des étapes n’a lieu.

Prenons une simple transaction de base de données comme exemple. Si vous connaissez déjà ce concept, n’hésitez pas à sauter cette partie.

Imaginez une table de base de données qui représente les soldes des utilisateurs.

Le solde d’Alice est de 1000 $ et le solde de Bob est de 500 $. Alice envoie 500 $ à Bob. Dans ce cas, nous devons bien sûr soustraire 500 $ du solde d’Alice et ajouter 500 $ au solde de Bob. Nous commençons donc à écrire nos instructions de mise à jour de la base de données.

C’est cool, mais que se passe-t-il si la première mise à jour s’exécute mais que la seconde échoue pour une raison quelconque? (peut-être que id = 2 n’est pas présent dans le système et nous avons fait une erreur en pensant que c’est l’id de Bob)

Si cela se produit, nous nous retrouverons dans un état incohérent avec le solde d’Alice égal à 500 $ et le solde de Bob également égal à 500 $.

Pour éviter de telles situations, nous devons utiliser des transactions.

Dans la situation ci-dessus, en SQL, nous avons juste besoin d’encapsuler les deux instructions avec BEGIN; et COMMIT; mots clés. Une fois que nous avons fait cela, nous pouvons supposer en toute sécurité que les deux instructions sont exécutées correctement ou qu’aucune d’entre elles ne le sont – en laissant les soldes d’Alice et de Bob inchangés. Nous disons souvent que si différentes étapes font partie de la même transaction, elles sont atomiques, donc indivisibles – tout ou rien.

Transaction Ethereum

En ce qui concerne Ethereum, toutes les opérations courantes, telles que l’envoi d’ETH, l’envoi de jetons ERC20 et l’interaction avec des smarts contracts, sont exécutées dans le cadre d’une transaction.

 

Les transactions sont regroupées et incluses dans des blocs Ethereum. Nous pouvons facilement voir toutes les transactions incluses dans un bloc particulier sur n’importe quel explorateur de blocs populaire, tel qu’Etherscan.

Une transaction Ethereum peut consister en plusieurs étapes. Par exemple, vous pouvez fournir de l’ETH et emprunter du DAI sur un COMPOUND, échanger la moitié de votre DAI emprunté contre de l’USDC sur Curve et fournir des liquidités au pool DAI / USDC sur Uniswap. Le tout en une seule transaction Ethereum. Bien entendu, si l’une de ces étapes entraîne une erreur, la transaction entière sera annulée. Et aucune des étapes n’aura lieu. N’oubliez pas que vous paierez toujours les frais d’essence, même en cas d’échec de l’exécution des contrats.

Le nombre d’étapes dans une seule transaction n’est limité que par le coût du gaz.Par conséquent, même si, en théorie, vous pouvez créer une transaction valide avec des milliers d’étapes, elle serait de manière réaliste rejetée en raison de la limite de coût maximum du gaz par bloc.

Flash Loan

Maintenant, plongeons un peu plus dans les prêts flash.

Tout d’abord, la partie la plus importante de l’exécution d’un flash loan est de trouver un fournisseur de prêt flash. Des projets tels que Aave ou dYdX ont développé des smarts contracts qui permettent aux utilisateurs de la defi d’emprunter différentes pièces à un pool désigné à la condition qu’elles soient remboursées dans la même transaction Ethereum.

Il y a généralement un coût fixe associé à l’utilisation des prêts flash. Les contrats Aave, par exemple, obligent l’emprunteur à rembourser le montant initial + 0,09% supplémentaire du montant emprunté. Les frais sont répartis entre les déposants, qui fournissent les fonds qui peuvent être empruntés, et les intégrateurs, qui facilitent l’utilisation de l’API de flash loan d’Aave. Une partie de ces frais est également échangée contre des tockens AAVE et brûlée.

Pour tout comprendre sur les pools de liquidités => les pools de liquidités

Une fois le montant emprunté au pool de prêt, il peut être utilisé pour toute autre action arbitraire. En supposant qu’à la fin de la chaîne des différentes étapes, le flash loan initial est remboursé.

Comme le prêt doit être remboursé en une seule transaction, il n’y a aucun risque que les emprunteurs ne remboursent le montant emprunté. Le seul risque est le risque de smart contract  et de plate-forme toujours présent.

Les flash loans sont de plus en plus populaires auprès de certains utilisateurs empruntant jusqu’à 14 millions de DAI sur Aave.

Cas d’utilisation

Il existe 3 cas d’utilisation les plus courants pour les flash loans.

Arbitrage

Les prêts flash peuvent amplifier le profit de l’exécution d’une opportunité d’arbitrage réussie.

Imaginons qu’il y ait un écart de prix dans les pools DAI / USDC entre Uniswap et Curve. Vous pouvez échanger 1 DAI contre 1 USDC sur Curve. Mais vous n’avez besoin que de 0,99 DAI pour acheter 1 USDC sur Uniswap. Vous pouvez maintenant essayer d’exécuter l’arbitrage suivant.

  1. Emprunter 100000 DAI à Aave via un prêt flash
  2. Échangez 100000 DAI contre USDC sur Uniswap et recevez 101010 USDC
  3. Échangez 101010 USDC contre 101010 DAI sur Curve
  4. Remboursement initial 100 000 DAI + 0,09% de commission = 100 090
  5. Profit 920 DAI

Cela a l’air bien, mais nous devons prendre en compte quelques éléments supplémentaires

  1. Frais de réseau – les transactions d’arbitrage en plusieurs étapes peuvent être assez coûteuses. Tenez toujours compte des frais de transaction lors du calcul de vos bénéfices.
  2. Glissement de prix ou Slippage – calculez toujours le glissement de prix que vous subirez lors de l’exécution de votre ordre (un indice – cela dépend de la taille de votre ordre et de la liquidité présente dans le pool de liquidité)
  3. Front-running – il y a de fortes chances que quelqu’un d’autre détecte la même opportunité et parvienne à obtenir sa transaction minée avant vous. En plus de cela, les bots qui surveillent le mempool peuvent saisir votre opportunité d’arbitrage rentable et envoyer la même transaction avec des frais de gaz plus élevés, en les profitant au lieu de vous, en volant votre opportunité d’arb.

Un swap de garantie .

Disons que vous avez emprunté DAI à Compound avec ETH en apport. Vous pouvez échanger votre garantie d’ETH contre, par exemple, BAT de la manière suivante:

  1. Prenez un prêt flash en DAI pour couvrir le montant de DAI emprunté
  2. Remboursez votre prêt COMPOUND avec DAI emprunté
  3. Retirez votre ETH
  4. Échangez votre ETH contre BAT sur Uniswap
  5. Fournir des BAT comme garantie sur COMPOUND
  6. Empruntez DAI contre votre garantie BAT
  7. Rembourser un prêt flash avec DAI emprunté + frais

Félicitations, vous venez d’échanger votre garantie d’ETH contre BAT et de payer 0,09% du montant emprunté pour cela.

 L’auto-liquidation .

Imaginez le scénario suivant: Vous avez un prêt en DAI sur Compound avec ETH en garantie. Le prix des ETH continue de baisser et vous approchez du niveau de liquidation. Vous n’avez pas non plus ou ne souhaitez pas déposer plus d’ETH pour diminuer votre niveau de liquidation et vous n’avez pas non plus le DAI requis pour rembourser le prêt. Désormais, au lieu de permettre au contrat MakerDAO de liquider votre garantie et de vous facturer les frais de liquidation, vous pouvez suivre les étapes suivantes:

  1. Prenez un prêt flash pour le montant de DAI que vous devez
  2. Remboursez votre prêt DAI et retirez votre ETH
  3. Échangez suffisamment d’ETH contre DAI pour rembourser le prêt flash + les frais
  4. Conservez le reste de vos ETH

Ce sont les 3 cas d’utilisation les plus courants des flash loan. Bien sûr, le concept des prêts flash est assez récent et il reste encore beaucoup de cas d’utilisation à découvrir dans le futur.

Flash Loan et DeFi Hacks

Le flash loan peut être utilisés à la fois pour le bien et le mal. En ce qui concerne ce dernier, les prêts flash ont été utilisés dans la plupart des hacks de défi récents. Et ont permis aux pirates d’augmenter leurs profits potentiels car ils ne nécessitent aucun fonds initial.

L’un des hacks les plus connus était le hack BzX. Le prix de l’oracle d’Uniswap fut manipuler par un flash loan. Comme d’habitude, le problème ne résidait pas dans l’utilisation des prêts flash, mais plutôt dans certaines hypothèses erronées lorsqu’il s’agit d’utiliser Uniswap comme oracle des prix.

Des événements comme ceux-ci sont parfois coûteux pour les personnes affectées. Mais ils aboutissent généralement au renforcement de l’ensemble de l’écosystème de la defi. Le rendant de plus en plus antifragile à l’avenir.

Codage et furucombo

Bien que les flash loan soient principalement utilisés par les développeurs, il est également possible de les utiliser sans codage. Des projets tels que Collateralswap, Defisaver ou Furucombo le rendent possible.

Dess guides sur la façon de coder un flash prêt avec Aave et comment utiliser Furucombo sont en préparation. Familier avec le codage ou non, vous pourrez utiliser le flash loan.

Lien source : Finematics

Laisser un commentaire

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