Condividi questo articolo

La manipolazione di Mempool ha consentito il furto di 8 milioni di dollari in garanzie MakerDAO il giovedì nero: rapporto

Una nuova ricerca suggerisce che l'evento "Cigno Nero" di marzo per Ethereum potrebbe essere stato un piano sofisticato per trarre profitto da una svendita globale.

La conclusione:

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

  • Blocknative, un'azienda che conserva i dati sui mempool Ethereum in tutto il mondo, potrebbe avere una spiegazione per l'attacco "zero-bid" a MakerDAO del Giovedì nero.
  • I mempool sono contenitori di contenimento per le transazioni in attesa di essere estratte in blocchi. In condizioni di stress del mercato, tendono a intasarsi.
  • Il giorno dell'attacco, Blocknative ha trovato un flusso infinito di transazioni intelligenti e inutili nei mempool, apparentemente concepite per rendere difficile il passaggio delle transazioni.
  • I prezzi ETH in calo hanno innescato aste di garanzie su MakerDAO. Poiché i mempool erano intasati, in molti casi gli offerenti non sono riusciti a ottenere offerte su quelle aste, consentendo agli aggressori di WIN garanzie ETH con offerte del valore di $0.
  • Gli aggressori se ne sono andati con 8,3 milioni di dollari.

Secondo una ricerca pubblicata mercoledì, un abile trucco nei mempool di Ethereum ha permesso agli aggressori di rubare 8,3 milioni di dollari agli utenti di MakerDAO durante il Giovedì nero.

Riassumendo: il prezzo dietere (ETH) è crollato il 12 marzo e la rete Ethereum è stata congestionata da un'ondata di tentativi di transazioni. Mentre gli investitori si rifugiavano nella moneta fiat, il prezzo di ETH è sceso abbastanza da innescare liquidazioni del collaterale detenuto sulla piattaforma di prestito MakerDAO. Queste liquidazioni programmatiche hanno consentito agli aggressori di andarsene con 8,3 milioni di dollari in ETH, gratuitamente, vendendo allo scoperto i mutuatari e la stessa MakerDAO.

La congestione, tuttavia, era fondamentale e del tutto intenzionale, secondoBlocco nativo, un'azienda focalizzata sullo studio dell'azione nei mempool blockchain.

La nuova ricerca suggerisce che l'evento "Cigno Nero" di marzo per Ethereum potrebbe essere stato in realtà un piano sofisticato per trarre profitto da una svendita globale alimentata dalle preoccupazioni relative al COVID-19.

"L'intera faccenda ha significato che [gli aggressori] sono stati in grado di realizzare oltre 1.000 aste a offerta zero... e di raccogliere quel valore sottostante con una spesa quasi nulla", ha detto il CEO di Blocknative Matt Cutler a CoinDesk in un'intervista.

Manipolazione del Mempool

Il cuore del lavoro di Blocknative sono i mempool: l'archiviazione temporanea su ogni nodo Ethereum in cui le transazioni attendono di essere elaborate e finalizzate.

A metà marzo, i mempool si sono intenzionalmente intasati con transazioni inutili, ha affermato Blocknative, come parte di un piano per WIN le aste a offerta zero per ETH su MakerDAO proprio in queste condizioni.

In effetti, la Maker Foundation ha scritto altrettanto inil suo post-mortempubblicato ad aprile:

"La congestione della rete e gli alti prezzi GAS hanno causato ritardi nelle transazioni e, in molti casi, fallimenti. Questi problemi, uniti al calo senza precedenti del valore degli asset, hanno colto di sorpresa i proprietari Maker Vault, i Keeper e i pool di liquidità."

(La Maker Foundation ha segnalato a CoinDesk il post del blog sopra riportato e ha rifiutato di rilasciare ulteriori commenti su questo articolo.)

Ovviamente, molti utenti Ethereum si chiederanno se il calo del prezzo ETH sia stato in qualche modo creato, ma questa domanda esula dall'ambito dell'indagine di Blocknative. Gli aggressori potrebbero essere stati pronti a trarre opportunisticamente vantaggio da un drastico calo del prezzo di ETH; se il calo del prezzo sia stato creato rimane un mistero.

Detto questo, Blocknative ha scoperto quello che sembra essere un test dell'8 marzo sui meccanismi dell'attacco, un fatto che la società di ricerca T descrive nel suo rapporto.

"È un'interessante coincidenza che il test e l'attacco siano avvenuti a distanza di soli quattro giorni l'uno dall'altro", ha detto Cutler a CoinDesk. "[Ma] T abbiamo alcuna prova che questo non sia altro che opportunistico".

In entrambi i casi, gli aggressori hanno sfruttato alcune intuizioni molto sottili su Ethereum e MakerDAO. "Hanno sostanzialmente sfruttato alcune tecniche mai viste prima", ha detto Cutler.

Maggiori informazioni su queste tecniche più avanti. Per prima cosa, dobbiamo trattare alcune nozioni di base su MakerDAO ed Ethereum.

Nozioni di base su MakerDAO

MakerDAO è noto come il creatore diDAI (DAI), la stablecoin decentralizzata attualmenteamato dagli agricoltori che producono grandi raccolti. DAI viene creato con il debito. Gli utenti mettono ETH o altri asset crittografici come garanzia sulla piattaforma Maker per poi prelevare una parte del valore di quegli asset sotto forma di nuovi DAI.

Per riavere indietro la loro garanzia, gli utenti devono rimborsare i DAI presi in prestito più qualsiasi interesse maturato sul prestito (nel gergo di MakerDAO questa è la "commissione di stabilità", ma è solo un tasso di interesse variabile). MakerDAO fa rispettare il prezzo DAI liquidando la garanzia se il suo valore scende al di sotto della soglia minima per mantenere una corretta garanzia. Per ETH, è il 150%, ma la maggior parte degli utenti investe molti più ETH del minimo.

Quindi, se ETH fosse a $ 200 e l'utente ha pubblicato 1 ETH per prendere in prestito 100 DAI, T verrà liquidato a meno che ETH non scenda sotto i $ 150.

Ma il giovedì nero il prezzo dell'ETH è crollatoquasi $ 100, da $ 193, il che ha innescato numerose liquidazioni.

Le liquidazioni possono essere effettuate da chiunque, tramite bot chiamati "Keeper". MakerDAO stessa gestisce un Keeper, ma lo fanno anche altre entità sconosciute.

I custodi WIN le liquidazioni tramite un'asta (descritta passo dopo passo in un linguaggio semplicedi CoinList), quindi diversi Keeper hanno fatto offerte per chiudere il prestito e, nel Giovedì nero, quelle aste sono durate solo 10 minuti, ovvero poche decine di blocchi Ethereum .

L'idea è che queste asteDovrebbe(e normalmente hanno) portato gli utenti a recuperare la loro garanzia meno quanto dovevano, più la commissione di stabilità e la commissione di liquidazione (è l'ultima parte che fa male). Ma questo ènon è quello che è successo questa volta.

I mutuatari non hanno ricevuto nulla e, di fatto, MakerDAO ha ricevuto indietro una quantità DAI molto inferiore a quella dell'intero sistema.era sottogarantito.

Nozioni di base Ethereum

Ethereum è una blockchain, il che significa che raccoglie costantemente transazioni e i minatori competono per comporre blocchi di tali transazioni, crittografarle, violare la crittografia e quindi dimostrare il loro lavoro al resto dei minatori per WIN una ricompensa in blocchi.

Le transazioni non T verofinché non sono in un blocco estratto. E di solito ci sono più transazioni in attesa di entrare in un blocco di quanto ci sia spazio per altre transazioni. Quelle transazioni ritardate attendono in quello che viene chiamato "piscina di memoria."

I mempool sono ONE di quelle cose a cui la maggior parte delle persone T ha realmente bisogno di pensare per la maggior parte del tempo, tranne quando diventano davvero importanti quando le situazioni diventano urgenti: come quando il prezzo ETH sta crollando.

"Il momento in cui è più importante essere certi che le cose accadano in modo ordinato", ha affermato Cutler, "è quello in cui le cose sono meno affidabili".

Questo è il punto di Blocknative. L'azienda mantiene un dettagliatoconto di mempools in tutto il mondo, studiando quello che chiama "valore in movimento". Blocknative aiuta i suoi clienti a decidere se devono essere più aggressivi in ​​cose come i pagamenti GAS quando le cose vanno fuori controllo. I dati di Mempool sono "valore in movimento"; i dati blockchain finalizzati sono valore a riposo.

Fondamentalmente, i miner non possono elaborare una nuova transazione se la transazione precedente T è stata eseguita. Ogni transazione su Ethereum da un portafoglio riceve un numero, e 515 T eseguita se 514 T è stata eseguita (questo è tracciato dal "nonce" della transazione, nel linguaggio di Ethereum). Questa realtà sequenziale si rivela la chiave dell'attacco.

Cosa ha scoperto Blocknative

Blocknative ha mantenuto i dati del mempool per Ethereum fin dall'inizio del 2018 (anche per i suoi testnet e per la rete Bitcoin ). L'azienda ha deciso di dare un'occhiata ai dati del mempool per vedere cosa è successo intorno al 12 marzo.

Blocknative ha scoperto che una percentuale insolitamente alta del mempool era intasata da transazioni con prezzi GAS molto bassi.

Di solito questa percentuale T è molto alta perché gli utenti vogliono che le loro transazioni vadano a buon fine, quindi monitoreranno i prezzi GAS e li imposteranno a livelli che probabilmente saranno rilevati da un miner. Ma non è quello che stava succedendo il 12 marzo. C'erano un sacco di transazioni nel pool che avevano prezzi GAS bassi. Troppe.

Ciò ha permesso agli aggressori di inviare "offerte zero" nelle aste collaterali di MakerDAO con prezzi GAS elevati allegati, sapendo benissimo che avrebbero potuto WIN quelle aste contro i bot Keeper ben intenzionati che T erano riusciti a far passare le loro offerte.

Blocknative descrive qualcosa chiamato "Hammerbots". Si tratterebbe di bot progettati per elaborare transazioni con lo scopo preciso di intasare il mempool.

"I bot hanno martellato il mempool con transazioni che non erano mai destinate a essere finalizzate. Questi 'Hammerbot' hanno consumato risorse del mempool emettendo tassi estremamente elevati di transazioni sostitutive senza alcun corrispondente aumento di GAS", Blocknative ha scrittosul suo blog.

Inoltre, queste transazioni erano progettate con un sacco di operazioni inutili che potevano essere spostate e modificate facilmente per variare l'hash, ma apparentemente non avevano alcuno scopo reale.

"Queste transazioni in particolare sarebbero particolarmente adatte a consumare risorse mempool", ha detto a CoinDesk Chris Meisl, uno dei fondatori di Blocknative.

Problemi a cascata

Ecco il primo problema: la congestione ha reso difficile per i mutuatari su MakerDAO aggiungere ulteriori garanzie e ha reso difficile per i Keeper far passare le offerte.

"Ciò ha portato a condizioni anomale del mempool, che alla fine avrebbero favorito determinate transazioni", riporta il post di Blocknative.

Ma c'è un'altra osservazione cruciale che gli aggressori sembrano aver fatto su Keepers: T sembrava che controllassero se le transazioni venivano eseguite correttamente.

"Quando si effettuano transazioni su un conto o un indirizzo su Ethereum, queste devono essere ordinate", ha affermato Meisl.

Come abbiamo scritto sopra, se un nonce manca nel record di una blockchain, i minatori T possono accettare transazioni successive finché non ne arriva ONE con il nonce precedente. Quindi una transazione successiva rimarrà bloccata, anche se ha un prezzo GAS molto alto allegato, finché quella ONE non verrà superata.

Questo ha avuto un risultato bizzarro. Dal post del blog Blocknative:

"Se si considera il dato nel suo complesso, nonostante il volume delle transazioni in entrata nel mempool sia aumentato drasticamente, il prezzo GAS di una parte significativa del mempool è crollato a un valore artificialmente basso."

In breve: gli aggressori sapevano che i Keepers non sarebbero riusciti a far passare le loro prime offerte e che ciò avrebbe portato le offerte successive a "probabilisticamente" (secondo le parole di Cutler) bloccarsi. E ha funzionato abbastanza spesso.

Il codice open source pubblicato da MakerDAO per i bot Keeper T prevedeva misure per verificare la presenza di transazioni bloccate.

Ciò ha creato un potenziale divario che ha consentito all'attaccante di presentare un'offerta con un prezzo GAS elevato ma un'offerta di 0 DAI per la garanzia, dando inizio al breve lasso di tempo di 10 minuti dell'asta.

"Mentre i sistemi di trading automatizzati sono spesso progettati per aumentare programmaticamente il prezzo GAS delle transazioni, molti di questi sistemi di trading non gestiscono bene i gap del nonce, se non per niente", avverte il post di Blocknative.

In 1.462 casi, i Keeper non si sono accorti che le loro offerte si bloccavano nei mempool; gli aggressori si sono aggiudicati l'offerta, rubando milioni di dollari in ETH e costringendo quasi a un arresto di emergenza di MakerDAO.

MakerDAO ha da allora esteso il tempo dell'astaa sei oreBlocknative ha aperto il suo set di dati sull'attività del mempool ai membri della comunità per consentirne un ulteriore studio.

Il post del blog afferma:

"Il mempool è un elemento critico, ma effimero e spesso trascurato, dell'ecosistema blockchain. In quanto tale, i mempool presentano molti 'incogniti sconosciuti' sia ai costruttori che agli utenti."

In questo caso, tuttavia, gli aggressori hanno studiato il codice Keeper di Maker e hanno capito che era possibile sapere ciò che i veri Keeper T sapevano.

Brady Dale

Brady Dale detiene piccole posizioni in BTC, WBTC, POOL ed ETH.

Picture of CoinDesk author Brady Dale