Cos’è un flash loan?

0xstepit
Terra Network Italia
7 min readDec 6, 2021

How to obtain money faster than Flash.

Introduzione

Abbiamo già visto in una precedente guida i vari tipi di prestito che un utente può ricevere in un sistema di finanza decentralizzata. Possiamo individuare due tipologie di prestito:

  • Collateralizzato: viene depositata e vincolata una parte del proprio capitale di valore maggior del debito preso come garanzia del prestito.
  • Sotto-collateralizzato: il capitale depositato in questo caso è minore del debito preso. Come si mantiene in sicurezza il sistema?

In questo articolo andremo ad approfondire un particolare tipo di debito sotto-collateralizzato chiamato flash loan ⚡️. Per essere più specifici, un flash loan, è in realta una tipologia di debito non collateralizzato. Esatto! Avete capito bene, questo particolare strumento permette di ottenere del capitale in prestito senza che sia richiesto nessun deposito né garanzia. Sembra assurdo è vero, ma tutto questo è reso possibile grazie alla tecnologia sottostante, la blockchain.

NOTA: questo particolare strumento attualmente non esiste nella finanza tradizionale.

La logica che permette di effettuare questo tipo di operazione senza mettere a rischio il capitale, che come ben sappiamo appartiene ad altri utenti, è quella dell’ atomicità della transazione. Con atomicità di intende che gli effetti di una certa successione di eventi vengono annullate a meno che una serie di vincoli non siano rispettati completamente. Nello specifico, la successione di azioni in un flash loan comprende:

  1. Prendere in prestito una qualsiasi quantità di token disponibili da un protocollo che fornisce il servizio, ad esempio Aave.
  2. Effettuare qualsivoglia azione sfruttando il prestito preso: arbitraggio, collateral swap, … (go wild, be creative🚀)
  3. Restituire il prestito più le fee.

Il requisito fondamentale è che queste tre azioni avvengano tutte all’interno di una singola transazione. Con singola transazione si intende all’interno di uno stesso blocco. Se ciò non dovesse avvenire la transazione verrebbe completamente annullata, come se il debito non fosse mai stato preso.

Questo tipo di prestito trova diverse applicazioni e fra le più diffuse troviamo:

  1. Arbitraggio.
  2. Liquidazioni & auto-liquidazioni.
  3. Swap del collaterale.
  4. Manipolazione del prezzo di un oracolo.
  5. Wash trading.

Quest’ultima applicazione è molto semplice e consiste nel prendere una grossa quantità di capitale con un flash loan e fare un pò di swap su un exchange per aumentarne la liquidità e fornire così false informazioni. Le altre tre applicazioni sono leggermente più complicate e per questo motivo andremo ad analizzarle nel dettaglio.

Arbitraggio

L’arbitraggio è quella pratica nella quale si sfruttano le differenze di prezzo dei vari asset nei diversi mercati per trarne un profitto. In sostanza, se si individua che un certo token è scambiato su Uniswap a un prezzo più alto che su Sushiswap, è possibile comprare quel token dal secondo exchange e rivenderlo nel primo estraendo un profitto. Questo meccanismo è molto importante nella DeFi poiché fa si che i prezzi dei vari mercati rimangano allineati. Vediamo un esempio:

  1. Si prende un prestito con flash loan da dY/dX di 2 milioni di dollari in USDC.
  2. Si scambiano gli USDC con dei DAI in una pool di AAVE. Ad equilibrio 1 USDC = 1 DAI ma questo non è generalmente verificato. In questo esempio 1 USDC = 1.01 DAI e quindi con 2M di USDC si ottengono 2.01M di DAI.
  3. Si riscambiano i DAI in un’altra pool dove 1 DAI vale 1.005 USDC. Alla fine di questo swap si hanno 2.02M di USDC.
  4. Si restituiscono i 2M di USDC presi in prestito su dY/dX pagando anche una fee.
  5. Ci rimangono nel wallet circa 20k meno le fee pagate.

In questo esempio abbiamo considerato due swap su due pool diverse di AAVE ma non vi è un vincolo su quanti swap effettuare. L’unico vincolo è che il capitale venga restituito nello stesso blocco in cui è stato creato il debito.

Vi sono alcuni aspetti che bisogna considerare per evitare di rimanere fregati:

  • Più swap vengono effettuati e più fee dovranno essere pagate. State attenti a non mangiarvi tutto il guadagno con queste. Per farvi un esempio, nel 2020, i flash loan hanno richiesto mediamente 1.43M di gas.
  • Bisogna fare molta attenzione allo slippage per grossi volumi di trade. Se non vi è chiaro il concetto di slippage e perché esiste vi lascio il link a un articolo che ho scritto relativo agli exchange decentralizzati.

Liquidazioni e auto-liquidazioni

Quando un utente apre un posizione di debito collateralizzata deve depositare del collaterale contro il quale può ricevere un prestito. Generalmente il prestito che si può ricevere è al massimo il 75% del deposito. Poiché il collaterale spesso è un asset volatile, è possibile che questo si deprezzi fino a che l’utente si trovi in una posizione con un debito maggiore del 75%. Al fine di garantire la sicurezza del protocollo parte del collaterale di questo utente viene venduta a un prezzo scontato per ripagare il debito, liquidando così la posizione.

Effettuare una liquidazione è un’operazione molto remunerativa ma che richiede grossi capitali. Con i flash loan non è più necessario detenere grosse quantità di capitale poiché possono essere prese in prestito facilmente dai protocolli che li offrono.

Abbiamo detto che quando una posizione viene liquidata il collaterale viene venduto a un prezzo scontato causando anche una grossa perdita alla persona che aveva contratto il debito. Prendendo come esempio ORCA, lo sconto sull’acquisto del capitale può arrivare anche al 30%. Perché non usare un flash loan per auto-liquidarsi nel caso di necessità? Ci sarà una fee da pagare sul prestito, ma sicuramente è meglio di una svendita della propria posizione!

Swap del collaterale

Con swap del collaterale si intende una singola transazione che permette di cambiare il collaterale, che è strato precedentemente depositato in cambio di un prestito, senza detenere il capitale per ripagare il debito. Questa applicazione risulta utile nel caso in cui il collaterale depositato non si trovi in una buona situazione di mercato e si vuole evitare una possibile liquidazione. Cambiando il collaterale a rischio con uno che sta performando meglio, o uno più stabile, è possibile modificare la propria posizione da debitore e dormire sonni più tranquilli. Vediamo brevemente come funziona.

Immaginiamo di aver aperto un debito di 2000 DAI dopo aver depositato 1 ETH e di aver speso questi DAI. Il prezzo di ETH comincia a crollare ma noi non abbiamo più i DAI per ripagare il debito e chiudere la transazione. Quello che possiamo fare allora è:

  1. Prendere un flash loan da Aave di 2000 DAI + interessi maturati.
  2. Ripagare il debito con i DAI appena presi per ricevere indietro gli ETH.
  3. Convertire gli ETH ricevuti in DAI.
  4. Usare parte dei DAI per ripagare il debito su Aave.

A questo punto siamo riusciti a convertire il nostro collaterale in un asset più stabile senza essere più in possesso del capitale preso in prestito. Questa operazione è fattibile poiché il nostro collaterale, fino a che non si viene liquidati, vale più del debito preso.

Manipolazione del prezzo di un oracolo

Uno dei principi cardine della blockchain così come della DeFi è quello di non affidarsi a terze parti e di eliminare intermediari ai quali è necessario dare fiducia per svolgere dei compiti. L’applicazione più classica è quella di detenere i propri fondi in un wallet custodito personalmente. Questo però non è l’unico caso in cui si rimuovono gli intermediari, un’altra applicazione è quella di ottenere il prezzo di un certo asset. Al posto di chiedere questa informazione a un terzo soggetto è possibile ottenere il prezzo di un asset facendo affidamento sul prezzo dei DEX on-chain. Il problema è che i DEX possono essere attaccati affinché abbiano temporaneamente un prezzo diverso da quello reale. Vediamo come viene effettuata la manipolazione del prezzo di un oracolo:

  1. Si prende un prestito ad esempio di ETH da una piattaforma che fa affidamento sul prezzo fornito da Uniswap.
  2. Si scambia ETH su Uniswap per USDC. Questo trade fa abbassare il prezzo di ETH nella pool.
  3. Uniswap è un DEX che viene utilizzato come oracolo on-chain per alcune piattaforme di lending. Essendo diminuito il prezzo di ETH su Uniswap, diminuisce il prezzo anche sulle piattaforme di lending che si affidano a lui.
  4. E’ ora possibile depositare gli USDC swappati in precedenza per prendere un prestito in ETH dalla piattaforma di lending manipolata a un prezzo vantaggioso.
  5. Si ripaga il debito del flash loan con parte degli ETH ricevuti e ci si mette nel wallet la restante parte.

Conclusione

Abbiamo analizzato in questo post uno degli strumenti più affascinanti presenti e inventati attualmente nella DeFi. Prima di lasciarci vorrei aggiungere una precisazione su questo tipo di prestiti. Poter sfruttare un flash loan non è una cosa semplice e richiede la scrittura di uno smart contract per la sua gestione e di tenere in considerazione aspetti delicati come le fee e lo slippage citati in precedenza. E’ interessante però come il concetto di democratizzazione sia preso molto seriamente nell’ambito della blockchain e molte persone hanno lavorato e stanno lavorando per rendere accessibile a tutti questo tipo di strumento.

Come al solito ti ringrazio per essere arrivato fino in fondo a questo articolo e ti invito a lasciare un clap 👏 o un commento come supporto se dovesse esserti piaciuto.

Per qualsiasi dubbio o chiarimento ti invito a contattarmi attraverso i canali che puoi trovare nel banner finale.

A presto! 🚀

--

--