Cos’è un exploit da flash loan e come funziona questo attacco ai protocolli DeFi?

Cos’è un exploit da flash loan e come funziona questo attacco ai protocolli DeFi?

Cos’è un exploit da flash loan?

Un exploit da flash loan è un attacco in cui qualcuno prende in prestito temporaneamente una grande quantità di crypto per sfruttare un errore in un protocollo DeFi. Un flash loan è un prestito che deve essere rimborsato entro una sola transazione blockchain.

Un flash loan di questo tipo non è garantito da collaterale. Quindi non devi prima depositare il tuo collaterale, ma c’è una condizione importante: il prestito, fee inclusa, deve essere restituito prima della fine della stessa transazione. Non ci riesci? Allora la blockchain annulla l’intera transazione come se non fosse mai avvenuta.

Questo si chiama esecuzione atomica. Puoi immaginarla come un unico pacchetto: tutti i passaggi riescono insieme, oppure non succede nulla. I flash loan vengono usati anche in modo normale, per esempio per l’arbitraggio, le liquidazioni e lo scambio del collaterale.

In un exploit, un attaccante usa quella liquidità temporanea per colpire un punto debole altrove. Spesso si tratta di un protocollo che si affida al prezzo spot di un singolo DEX per prendere una decisione importante. Quel prezzo può spostarsi molto in modo temporaneo con uno swap molto grande.

Immagina che un lending protocol consideri quel prezzo gonfiato temporaneamente come il vero prezzo di mercato. In quel caso, un attaccante può far valutare il collaterale molto più del dovuto e prendere in prestito più crypto di quanta ne sarebbe sicura. Altri attacchi non ruotano attorno ai prezzi, ma per esempio a un peso di voto temporaneo nella governance on-chain o a un errore nella logica di business degli smart contract.


In breve

  • Un flash loan è un prestito non garantito che deve essere rimborsato nella stessa transazione.
  • Un exploit da flash loan di solito sfrutta un errore in un altro protocollo DeFi, non il flash loan stesso.
  • Un attacco molto comune manipola temporaneamente il prezzo spot in un pool DEX.
  • Grazie all’esecuzione atomica, l’intero attacco riesce oppure tutto viene annullato.
  • La flash liquidity può essere usata anche per sfruttare la governance o errori nelle regole del protocollo.

Come funziona un exploit da flash loan?

Un exploit da flash loan di solito funziona così: un attaccante usa temporaneamente molto capitale per cambiare un prezzo o lo stato di un protocollo, e poi il protocollo bersaglio prende una decisione sbagliata. Tutto avviene dentro una singola transazione atomica.

Come succede? Prima l’attaccante fa sì che un proprio smart contract prenda un flash loan. Quel contratto può poi eseguire subito più azioni, come swap di token, deposito di collaterale e prestito di crypto

In caso di manipolazione di un oracle, l’attaccante compra o vende con uno swap grande molti token in un pool DEX. In questo modo le riserve del pool cambiano e il prezzo spot locale sale o scende temporaneamente in modo forte. Un price oracle è, in parole semplici, il componente che dice a un protocollo quanto vale qualcosa.

Il pericolo nasce se un altro protocollo legge quel prezzo alterato come se fosse il prezzo normale del mercato più ampio. L’attaccante può così, per esempio, prendere in prestito troppi asset usando un collaterale gonfiato o provocare un calcolo errato.

Alla fine, il contratto dell’attaccante converte abbastanza valore per rimborsare il flash loan e la fee. Quello che resta dopo è il profitto. Se non c’è abbastanza per il rimborso, l’intera transazione viene revertita.

Questo limita il rischio per l’attaccante: tutti i passaggi devono funzionare in un colpo solo. Per il protocollo vittima, però, il danno può essere permanente. Il protocollo può aver già prestato troppa crypto sulla base di un prezzo che era sbagliato solo per un attimo.

Non tutti gli attacchi seguono esattamente questo schema. Negli attacchi alla governance, la liquidità temporanea può servire soprattutto per ottenere molto potere di voto. In altri exploit, invece, l’errore sta in un calcolo o in una regola di accesso del protocollo.

Quali passaggi include un attacco da flash loan?

Un attacco da flash loan segue spesso cinque passaggi logici, anche se nella pratica gli attaccanti possono combinare più prestiti, protocolli e swap.

  1. Trovare un punto debole L’attaccante cerca prima un errore che sia interessante dal punto di vista economico. Per esempio un prezzo spot DEX facile da influenzare, una valutazione sbagliata di LP token o quote di vault, oppure una governance in cui i token presi in prestito danno subito diritto di voto.

  2. Prendere in prestito capitale temporaneo Poi uno smart contract dell’attaccante prende un flash loan. Non serve collaterale prima, ma il prestito deve essere rimborsato entro la stessa transazione.

  3. Influenzare il prezzo o lo stato Con il capitale preso in prestito, il contratto esegue grandi swap, depositi, borrow, mint, voti o altre chiamate al contratto. L’obiettivo è cambiare temporaneamente un prezzo, il valore delle riserve o un altro input importante.

  4. Estrarre valore dal protocollo Finché il prezzo o lo stato sbagliato resta valido, il contratto può per esempio prendere in prestito troppi asset, mintare troppi token o eseguire un’azione di governance dannosa.

  5. Chiudere il prestito Alla fine il contratto rimborsa capitale e fee. Gli asset rimasti sono il guadagno. Se il rimborso non riesce del tutto, tutto viene annullato.

Esempio: Nell’attacco a bZx del 18 febbraio 2020, l’attaccante prese in prestito 7.500 ETH tramite un flash loan. Poi il prezzo di sUSD fu spinto verso l’alto tramite swap. L’attaccante usò circa 1,1 milioni di sUSD come collaterale sopravvalutato per prendere in prestito 6.796 ETH e poi rimborsò il flash loan. Alla fine l’attaccante tenne circa 2.378 ETH di profitto.

Quali protocolli DeFi sono vulnerabili agli exploit da flash loan?

Non esiste un solo tipo di protocollo DeFi che sia automaticamente vulnerabile. Il rischio nasce quando un protocollo fa qualcosa di importante basandosi su informazioni che possono essere manipolate a basso costo dentro una sola transazione.

I protocolli di lending e borrowing possono essere a rischio se usano il prezzo spot di un solo DEX come unica fonte di prezzo per collaterale, limiti di prestito o liquidazioni. Uno swap grande può cambiare temporaneamente quel prezzo locale, mentre il prezzo nel resto del mercato crypto è molto diverso.

Anche gli yield aggregator e i vault possono essere vulnerabili. Soprattutto quando il prezzo per il minting o il redeeming delle quote del vault dipende dalle riserve del pool, che un attaccante può cambiare temporaneamente. I depositanti già presenti possono così essere penalizzati.

I protocolli di stablecoin, derivati e asset sintetici corrono rischi simili quando processi importanti, come la determinazione del collaterale, il profit and loss (PnL), il funding o le liquidazioni, dipendono da un prezzo poco affidabile. PnL significa profitto o perdita su una posizione.

La governance on-chain è un altro punto critico. Se il potere di voto segue direttamente token che qualcuno possiede o prende in prestito solo per poco tempo, un attaccante può accumulare abbastanza influenza da far passare una proposta. Questo diventa ancora più pericoloso se una proposta approvata può avviare subito codice eseguibile o azioni con una treasury di una DAO.

Una cosa importante da sapere: un flash loan non è sempre necessario. Chi ha abbastanza capitale proprio, o un’altra fonte di liquidità temporanea, a volte può sfruttare lo stesso difetto di progettazione.

Esempi di exploit da flash loan

Gli exploit da flash loan possono avere forme molto diverse. Gli esempi più noti mostrano bene che non vengono attaccati solo gli oracle dei prezzi, ma anche le regole di valutazione e la governance.

  • bZx, 15 febbraio 2020: l’attaccante usò un flash loan di 10.000 ETH in un attacco combinato su più protocolli DeFi. Facendo salire il prezzo di WBTC con grandi swap e sfruttando un errore nella logica di margin di bZx, il danno riportato fu di circa 1.271 ETH, all’epoca circa 350.000 dollari.

  • bZx, 18 febbraio 2020: pochi giorni dopo seguì un secondo attacco con un flash loan di 7.500 ETH. Il prezzo di sUSD fu manipolato, così sUSD poté essere usato come collaterale sopravvalutato per prendere in prestito 6.796 ETH. Il guadagno riportato fu di 2.378 ETH, all’epoca circa 633.000 dollari.

  • Harvest Finance, 26 ottobre 2020: in questo attacco economico, i valori di USDC e USDT nella Y-pool di Curve furono influenzati più volte. In questo modo l’attaccante poté mintare quote del vault a un prezzo favorevole e poi riscattarle più tardi al prezzo normale delle quote. Furono sottratti circa 24 milioni di dollari dai vault coinvolti.

  • PancakeBunny, 19 maggio 2021: qui un attaccante manipolò il prezzo di BUNNY tramite un flash loan. Un errore nella valutazione dei token LP di PancakeSwap portò poi al minting di una quantità eccessiva di token BUNNY.

  • Beanstalk, 17 aprile 2022: l’attaccante usò un flash loan per manipolare la governance on-chain e portò via circa 77 milioni di dollari in asset non Bean. Dopo di ciò il protocollo fu messo in pausa e la governance on-chain fu disattivata temporaneamente.

Gli importi di questo tipo di incidenti possono variare, a seconda di come si misura il danno. Per esempio asset sottratti lordi, guadagno netto, fondi restituiti e prezzo in quel momento.

Quali sono le conseguenze di un exploit da flash loan?

Un exploit da flash loan può far perdere crypto direttamente a utenti, fornitori di liquidità e a una DAO. Il danno di solito non ricade su chi ha fornito il flash loan, ma sul protocollo la cui logica dei prezzi, valutazione, governance o smart contract è stata sfruttata.

In un lending protocol, un prezzo del collaterale manipolato può portare a un debito non coperto correttamente. Quando il prezzo torna normale, il collaterale risulta valere meno della crypto prestata. Il protocollo si ritrova quindi con un buco.

In un attacco alle quote di un vault, i depositanti già presenti vengono spesso diluiti. In parole semplici, l’attaccante ottiene temporaneamente più quote di quante ne avrebbe diritto. Quando quelle quote vengono riscattate più tardi, l’attaccante prende più valore dal vault di quanto sia stato effettivamente depositato.

Ci sono spesso anche conseguenze pratiche. Un protocollo può mettere in pausa i contratti, disattivare o modificare la governance, far migrare gli utenti verso un nuovo contratto e avviare un lungo processo di recupero o compensazione.

È successo anche dopo l’attacco a Beanstalk. Oltre alla perdita diretta, il protocollo fu messo in pausa e la governance on-chain venne spenta. Dopo il suo incidente, Harvest recuperò i fondi residui dai pool coinvolti e limitò le conversioni durante l’indagine.

Come possono i protocolli DeFi prevenire gli exploit da flash loan?

I protocolli DeFi non possono prevenire gli exploit da flash loan con una sola misura. Una buona sicurezza è fatta di più livelli che insieme rendono più difficili la manipolazione dei prezzi, gli errori di calcolo e l’abuso della governance.

  • Non fidarti di un solo prezzo spot DEX. Non usare un prezzo facilmente manipolabile da un solo pool come unico oracle per prestiti, liquidazioni, minting o pricing delle quote.

  • Usa feed di prezzo più ampi. Un oracle con più fonti indipendenti e una copertura di mercato più ampia riduce la possibilità che un solo pool manipolato temporaneamente decida il risultato.

  • Usa un TWAP quando ha senso. Un time-weighted average price, cioè TWAP, è un prezzo medio calcolato su un certo periodo. Una finestra più lunga rende la manipolazione più costosa, ma fa anche reagire il prezzo più lentamente ai veri cambiamenti di mercato.

  • Inserisci controlli chiari. Per esempio limiti massimi di deviazione del prezzo, controlli sulla freschezza dei dati di prezzo, liquidità minima, limiti conservativi di loan-to-value e cap per asset. Se i dati dell’oracle sono strani, un protocollo può bloccare o mettere in pausa le azioni sensibili.

  • Testa separatamente LP token e quote dei vault. Il valore di queste posizioni dipende spesso dalle riserve e dalle posizioni sottostanti. Per questo bisogna testare anche slippage estremo e depositi e prelievi nella stessa transazione.

  • Limita il potere di voto temporaneo. La governance può usare snapshot fissati in anticipo, introdurre un ritardo tra voto ed esecuzione e limitare quali azioni può eseguire una proposta. Dopo l’attacco dell’aprile 2022, Beanstalk rimosse la governance on-chain e passò temporaneamente ai voti Snapshot con esecuzione tramite una multisig community 5-su-9.

  • Testa gli attacchi in anticipo in modo consapevole. Audit indipendenti, simulazioni di attacchi economici e fork test devono includere flash loan, manipolazione degli oracle, reentrancy e transazioni composte. Reentrancy significa che un contratto esterno può richiamare in modo inatteso una funzione prima che la prima esecuzione sia terminata in sicurezza.

  • Prepara la risposta agli incidenti. Il monitoraggio di variazioni estreme di prezzo e riserve, un meccanismo di pausa ben progettato e procedure di emergenza chiare possono limitare i danni. Una pausa del genere non può annullare un attacco già concluso in modo atomico, ma può aiutare a prevenire ulteriori danni.

Conclusione

Un exploit da flash loan non riguarda un flash loan insicuro, ma un errore nel protocollo DeFi che viene attaccato dopo. Il flash loan dà all’attaccante molto capitale per poco tempo, e con quello si può influenzare un prezzo, una valutazione o un processo di governance.

Soprattutto i protocolli che si fidano ciecamente di un solo prezzo DEX, di regole di valutazione fragili o di un potere di voto temporaneo eseguibile subito corrono rischi. Oracle affidabili, limiti intelligenti, smart contract testati bene e un buon piano di emergenza rendono questi attacchi molto più difficili. Per gli utenti, la lezione principale resta semplice: la DeFi può offrire molte opportunità, ma i rischi tecnici di un protocollo sono almeno importanti quanto il rendimento potenziale.

Chi è Finst

Finst è una piattaforma di criptovalute leader nei Paesi Bassi che offre commissioni di trading ultra-basse, sicurezza di livello istituzionale e una gamma completa di servizi crypto come trading, custodia, staking e rampe fiat di ingresso e uscita. Fondata dall’ex team core di DEGIRO, Finst è autorizzata come fornitore di servizi di criptoasset dall’Autorità olandese per i mercati finanziari (AFM) e serve clienti retail e istituzionali in 30 paesi europei.

La piattaforma crypto per tutti gli investitori

Che tu sia un trader attivo o un investitore di lungo periodo, Finst ti permette di far crescere il tuo patrimonio in crypto con fiducia e tranquillità.

Registrati