Condividi questo articolo

L'attacco DeFi "Flash Loan" che ha cambiato tutto

Gli attacchi ai prestiti flash sono qui per restare e probabilmente diventeranno più seri. La DeFi deve adattarsi, afferma un importante VC Cripto .

Haseeb Qureshi è un managing partner presso Dragonfly Capital, un fondo di venture capital transfrontaliero in Cripto . Una versione più lunga dell'articolo è disponibile su Medio.

La storia continua sotto
Non perderti un'altra storia.Iscriviti alla Newsletter The Protocol oggi. Vedi Tutte le Newsletter

I prestiti flash sono stati al centro dell'attenzione ultimamente. Di recente, due hacker hanno utilizzato i prestiti flash per attaccare il protocollo di trading a margine bZx, prima in unAttacco da 350.000 dollari e successivamente un attacco imitatore da 600.000 dollari.

Questi attacchi erano, in una parola, magnifici. In ogni attacco, un aggressore senza un soldo prendeva in prestito istantaneamente centinaia di migliaia di dollari diETH, lo hanno infilato in una catena di protocolli on-chain vulnerabili, hanno estratto centinaia di migliaia di dollari in asset rubati e poi hanno rimborsato i loro enormi prestiti ETH . Tutto questo è accaduto in un istante, ovvero in una singola transazione Ethereum .

T sappiamo chi fossero questi aggressori o da dove provenissero. Entrambi hanno iniziato praticamente da niente e se ne sono andati con centinaia di migliaia di dollari di valore. Nessuno dei due ha lasciato tracce per identificarsi.

Sulla scia di questi attacchi, ho pensato molto ai prestiti flash e alle loro implicazioni per la sicurezza della DeFi. Penso che valga la pena di rifletterci in pubblico.

In breve: credo che i prestiti flash siano una grande minaccia per la sicurezza. Ma i prestiti flash non scompariranno e dobbiamo riflettere attentamente sull'impatto che avranno sulla sicurezza DeFi in futuro.

Cos'è un prestito flash?

Il concetto di prestito flash è stato definito per la prima volta daProtocollo di marmonel 2018. Marble si è commercializzata come una "banca con contratto intelligente" e il suo prodotto era un'innovazione DeFi semplice ma geniale: prestiti a rischio zero tramite un contratto intelligente.

Come può un prestito avere un rischio zero?

I prestatori tradizionali si assumono due forme di rischio. Il primo è il rischio di insolvenza: se il mutuatario scappa con i soldi, è ovvio che fa schifo. Ma il secondo rischio per un prestatore è il rischio di illiquidità: se un prestatore presta troppi dei suoi asset nei momenti sbagliati o T riceve rimborsi puntuali, il prestatore potrebbe essere inaspettatamente illiquido e non essere in grado di soddisfare i propri obblighi.

I prestiti flash attenuano entrambi i rischi. Un prestito flash funziona fondamentalmente così: ti presterò tutti i soldi che vuoi per questa singola transazione. Ma alla fine di questa transazione dovrai pagarmi almeno quanto ti ho prestato. Se non sei in grado di farlo, annullerò automaticamente la tua transazione! (Sì, gli smart contract possonoFai quello)

In parole povere, il tuo prestito flash è atomico. Se non riesci a rimborsare il prestito, tutto viene annullato come se il prestito non fosse mai stato erogato.

Qualcosa del genere potrebbe esistere solo sulle blockchain. Non potresti fare prestiti flash su, diciamo, BitMEX. Questo perché le piattaforme smart-contract elaborano le transazioni ONE alla volta, quindi tutto ciò che accade in una transazione viene eseguito in serie come un'operazione batch. Puoi pensare a questo come al "tempo di congelamento" della tua transazione mentre è in esecuzione. Uno scambio centralizzato, d'altra parte, può avere condizioni di gara tali che una parte del tuo ordine non venga soddisfatta. Sulla blockchain, hai la garanzia che tutto il tuo codice venga eseguito ONE riga dopo l'altra.

Codice exploit prestito flash, tramite Remco Bloemen
Codice exploit prestito flash, tramite Remco Bloemen

Quindi pensiamo un attimo all'aspetto economico. I prestatori tradizionali vengono compensati per due cose: il rischio che stanno assumendo (rischio di default e rischio di illiquidità) e il costo opportunità del capitale che stanno prestando (ad esempio, se posso ottenere un interesse del 2 percento altrove su quel capitale, il mutuatario deve pagarmi di più del 2 percento privo di rischio).

I prestiti flash sono diversi. I prestiti flash non hanno rischi né costi opportunità! Questo perché il mutuatario ha "congelato il tempo" per la durata del prestito flash, quindi agli occhi di chiunque altro, il capitale del sistema non è mai stato a rischio e non è mai stato gravato, quindi non avrebbe potuto guadagnare interessi altrove (vale a dire, non aveva un costo opportunità).

Ciò significa, in un certo senso, che non c'è alcun costo nell'essere un prestatore flash. Ciò è profondamente controintuitivo. Quindi, quanto dovrebbe costare un prestito flash in equilibrio (cioè quando la domanda e l'offerta di mercato si bilanciano)?

In pratica, i prestiti flash dovrebbero essere gratuiti. O, più propriamente, dovrebbe esserci una commissione abbastanza piccola da ammortizzare il costo dell'inclusione di tre righe di codice extra per rendere un asset prestabile tramite flash.

I prestiti flash non possono addebitare interessi nel senso tradizionale, perché il prestito è attivo per un tempo pari a zero (qualsiasi APR * 0 = 0). E naturalmente, se i prestatori flash applicassero tassi più alti, verrebbero rapidamente superati in concorrenza da altri pool di prestiti flash che applicano tassi più bassi.

Il prestito flash rende il capitale una vera e propria merce. Questa corsa al ribasso si traduce inevitabilmente in zero commissioni o in una piccola commissione nominale. DYDX [piattaforma di trading] attualmente addebita zero commissioni per il prestito flash. Aave, d'altro canto, addebita lo 0,09 percento sul capitale per i prestiti flash. Sospetto che ciò non sia sostenibile e, in effetti, la loro comunità ha ha chiesto di ridurre le tasse a zero(Si noti che nessuno degli attacchi da noi osservati ha utilizzato Aave come pool di prestito flash.)

Gli attacchi flash hanno grandi implicazioni sulla sicurezza

Sono arrivato sempre più a credere che ciò che i prestiti flash sbloccano realmente siano gli attacchi flash, attacchi ad alta intensità di capitale finanziati dai prestiti flash. Abbiamo visto i primi barlumi di questo nei recenti attacchi di bZx, e sospetto che sia solo la punta dell'iceberg.

Ci sono due motivi principali per cui i prestiti flash risultano particolarmente attraenti per gli aggressori.

1. Molti attacchi richiedono molto capitale iniziale (come gli attacchi di manipolazione dell'oracolo). Se stai ottenendo un ROI positivo su 10 milioni di $ di ETH, probabilmente non si tratta di arbitraggio, ma di qualche assurdità.

2. I prestiti flash riducono al minimo la contaminazione per gli aggressori. Se ho un'idea di come manipolare un oracolo con 10 milioni di $ di ether, anche se possiedo così tanto ether, potrei non volerlo rischiare con il mio capitale. Il mio ETH verrà contaminato, gli exchange potrebbero rifiutare i miei depositi e sarà difficile da riciclare. È rischioso! Ma se prendo un prestito flash per 10 milioni di $, allora a chi importa? È tutto positivo. Non è che il pool di garanzie di DYDX sarà considerato contaminato perché è da lì che proviene il mio prestito: la contaminazione su DYDX evapora e basta.

Potrebbe non piacerti che la blacklist degli exchange faccia parte del modello di sicurezza della blockchain odierna. È piuttosto inconsistente e centralizzata. Ma è una realtà importante che informa il calcolo dietro questi attacchi.

Nel Bitcoin carta bianca, Satoshi ha affermato in modo famoso cheBitcoin (BTC) è al sicuro dagli attacchi perché:

“[L’attaccante] dovrebbe trovare più redditizio giocare secondo le regole […] piuttosto che minare il sistema e la validità della propria ricchezza.”

Con i prestiti flash, gli aggressori non hanno più bisogno di mettere in gioco alcunché. I prestiti flash modificano sostanzialmente i rischi per un aggressore.

Haseeb Qureshi
Haseeb Qureshi

E ricordate, i prestiti flash possono accumularsi! Soggetto al limite GAS , potreste letteralmente aggregare ogni pool di prestiti flash in una singola transazione (oltre i 50 milioni di $) e far precipitare tutto quel capitale in un singolo contratto vulnerabile. È un ariete da 50 milioni di $ che ora chiunque può sbattere contro qualsiasi pignatta on-chain, purché ne escano i soldi. Questo è spaventoso.

Cosa significa tutto questo a lungo termine?

Credo che gli attacchi bZx abbiano cambiato le cose.

Questo non sarà l'ultimo attacco flash. Il secondo attacco bZx è stato il primo imitatore e sospetto che scatenerà un'ondata di attacchi nei prossimi mesi. Ora, migliaia di adolescenti intelligenti provenienti dalle parti più remote del mondo stanno frugando in tutti questi lego DeFi, esaminandoli al microscopio, cercando di scoprire se c'è un modo per mettere a segno un attacco flash. Se riescono a sfruttare una vulnerabilità, anche loro potrebbero guadagnare qualche centinaio di migliaia di dollari, una somma che cambia la vita nella maggior parte delle parti del mondo.

Per i protocolli, gli attacchi flash significano che il modello di minaccia è ora cambiato. Essere colpiti da un attacco flash dopo gli hack di bZx sarà imbarazzante quanto essere colpiti darientro dopo l'hack di DAO: sarai lo zimbello della Cripto. Avresti dovuto vederlo arrivare.

Infine, questi episodi mi hanno fatto riflettere su un vecchio concetto nel Cripto: valore estraibile dal minatore (MEV). MEV è il valore totale che i minatori possono estrarre da un sistema blockchain. Ciò include le ricompense e le commissioni dei blocchi, ma include anche forme più maliziose di estrazione di valore, come il riordino delle transazioni o l'inserimento di transazioni non autorizzate in un blocco.

In fondo, dovresti pensare a tutti questi attacchi flash come singole transazioni nel mempool che fanno un sacco di soldi. Ad esempio, il secondo attacco bZx ha prodotto un profitto di $ 645.000 in ETH in una singola transazione. Se sei un miner e stai per iniziare a estrarre un nuovo blocco, immagina di guardare le transazioni del blocco precedente e di dire a te stesso... "aspetta, cosa? Perché sto per provare a estrarre un nuovo blocco per ~$ 500, quando quell'ultimo blocco contiene $ 645.000 di profitto??"

Siamo ancora lontani dall’avere un’architettura sostenibile per costruire il sistema finanziario del futuro.

Invece di estendere la catena, sarebbe nel tuo interesse tornare indietro e provare a riscrivere la storia in modo che tu fossi l'attaccante flash. Pensaci: quella transazione da sola valeva più di quattro ore di blocchi Ethereum onestamente estratti!

Ciò è simile all'avere uno speciale super-blocco che contiene 1.000 volte la normale ricompensa in blocco: proprio come ci si aspetta, il risultato razionale di un tale super-blocco dovrebbe essere un ammasso di minatori in competizione per rendere orfana la punta della catena e rubare quel blocco per sé stessi.

In equilibrio, tutti gli attacchi flash dovrebbero essere alla fine estratti dai miner. (Si noti che dovrebbero anche finire per rubare tutto l'arbitraggio e le liquidazioni on-chain.) Ciò, ironicamente, fungerà da deterrente contro gli attacchi flash, poiché lascerà gli aggressori incapaci di monetizzare le loro scoperte di queste vulnerabilità. Forse alla fine i miner inizieranno a sollecitare il codice di attacco tramite canali privati e pagheranno al potenziale aggressore una commissione di ricerca. Tecnicamente, ciò potrebbe essere fatto senza fiducia utilizzando dimostrazioni a conoscenza zero. (Strano da pensare, vero?)

Ma per ora è tutto abbastanza fantascientifico. I minatori ovviamente T lo fanno oggi.

Perché T lo sono?

Un sacco di motivi. È difficile, richiede molto lavoro, la Ethereum Virtual Machine fa schifo da simulare, è rischiosa, ci sarebbero bug che comporterebbero la perdita di fondi o blocchi orfani, causerebbe un putiferio e il pool di mining canaglia potrebbe avere una crisi di pubbliche relazioni ed essere etichettato come "nemico di Ethereum". Per ora i minatori probabilmente perderebbero più affari e blocchi orfani di quanto guadagnerebbero nel tentativo di fare questo.

Questo è vero oggi. T sarà vero per molto.

Ciò fornisce un'ulteriore motivazione per Ethereum ad affrettarsi e passare a Ethereum 2.0. La DeFi su Ethereum, sebbene sorprendente e affascinante, è assolutamente e irrevocabilmente rotta. La DeFi non è stabile su una catena PoW, perché tutte le transazioni di alto valore sono soggette a riappropriazione da parte dei miner (nota anche come attacchi dei banditi del tempo).

Per far funzionare questi sistemi su larga scala, è necessaria la finalità, ovvero l'impossibilità per i miner di riscrivere blocchi confermati. Ciò proteggerà i blocchi precedenti dall'essere riappropriati. Inoltre, se i protocolli DeFi esistono su frammenti Ethereum 2.0 separati, T saranno vulnerabili agli attacchi flash.

A mio avviso, gli attacchi flash ci danno un piccolo ma utile promemoria del fatto che siamo ancora agli inizi. Siamo ancora lontani dall'avere un'architettura sostenibile per costruire il sistema finanziario del futuro.

Per ora, i prestiti flash saranno la nuova normalità. Forse a lungo termine, tutti gli asset su Ethereum saranno disponibili per i prestiti flash. Tutte le garanzie detenute dagli exchange, da Uniswap, forse tutti gli ERC-20 stessi.

Chissà, sono solo poche righe di codice.

Nota: Le opinioni espresse in questa rubrica sono quelle dell'autore e non riflettono necessariamente quelle di CoinDesk, Inc. o dei suoi proprietari e affiliati.

Haseeb Qureshi

Haseeb Qureshi è socio amministratore di Dragonfly Capital, un fondo di rischio transfrontaliero dedicato Cripto .

Haseeb Qureshi