Come un bug di rimborso da 10 ETH ha congelato il trading THORChain su 10 catene
Punti chiave
- •Una reorg Ethereum di un singolo blocco il 31 ottobre ha permesso a un unico deposito di 10 ETH su THORChain di generare 20 ETH in pagamenti, dopo che sia lo swap accreditato sia il deposito stesso erano stati rimborsati.
- •Ogni nodo THORChain ha registrato la reorg, ma il ricontrollo automatico sul deposito non è riuscito a completarsi prima che l'osservazione fosse finalizzata sulla catena di THORChain e il rimborso fosse inviato.
- •Un verificatore automatico di solvibilità ha sospeso gli swap ETH, i node operator hanno interrotto la firma delle transazioni entro circa due minuti e il trading è stato sospeso per precauzione su dieci catene, tra cui ATOM, BCH, BSC, BTC, DOGE, ETH, LTC, SOL, TRON e ZEC.
- •Il destinatario ha restituito volontariamente i 10 ETH in eccesso, ma THORChain ha avvertito che un attore malintenzionato che riutilizzi un nonce di transazione durante una reorg potrebbe essere pagato dai suoi vault senza alcun motivo di restituzione.
- •La sospensione ha involontariamente ritardato il riciclaggio dei fondi dal furto di 6,4 miliardi di dollari ai danni di Binance, attribuito al gruppo TraderTraitor nordcoreano, e THORChain non ha fissato una data di riapertura, ricordando che dopo l'exploit di maggio di circa 10,7 milioni di dollari una correzione comparabile e la riapertura hanno richiesto più di cinque settimane.

Il protocollo di liquidità cross-chain THORChain ha congelato il trading su dieci blockchain dopo che una reorg Ethereum di un singolo blocco ha causato un doppio pagamento dai suoi vault su un unico deposito di 10 ETH. Il protocollo consente agli utenti di scambiare asset tra le blockchain che collega: i depositi confluiscono nei suoi vault e i node operator firmano i pagamenti in uscita. THORChain ha descritto la sequenza di eventi in un post su X il 1° novembre, affermando che l'utente aveva restituito i 10 ETH in eccesso e che gli sviluppatori principali stavano lavorando alle modifiche necessarie.
Cosa ha rimosso la reorg
Alle 11:34 UTC del 31 ottobre, Ethereum ha sostituito un blocco recente con una versione concorrente. Il blocco scartato conteneva un deposito di 10 ETH verso un vault di THORChain, che gli osservatori del protocollo avevano già visto e accreditato.
I blocchi così recenti sono ancora soggetti a sostituzione. Ethereum considera un blocco definitivo solo dopo circa due epoche, all'incirca 13 minuti, e nulla nell'account di THORChain suggerisce che la storia finalizzata sia cambiata. Il malfunzionamento è avvenuto all'interno di THORChain, che ha agito su un deposito prima che Ethereum lo avesse definitivamente confermato.
Sono seguiti due pagamenti. Lo swap associato al deposito accreditato non ha raggiunto il proprio limite di prezzo, quindi THORChain ha rimborsato 10 ETH. Anche il deposito del mittente sulla catena accettata di Ethereum è stato poi rimborsato. Un unico deposito di 10 ETH è arrivato al vault, e 20 ETH ne sono usciti.
L'avviso dello stesso THORChain mostra come un singolo deposito possa essere conteggiato due volte. Ogni account Ethereum numera le proprie transazioni con un nonce. Una volta che il trasferimento originale è scomparso insieme al suo blocco, quel nonce poteva essere riutilizzato sulla catena accettata. THORChain ha scritto che durante qualsiasi reorg esterna, "un attore malintenzionato potrebbe eseguire una nuova transazione con lo stesso nonce" ed essere pagato dai suoi vault.
Ogni nodo ha visto la reorg. Il rimborso è stato comunque erogato.
Il rilevamento non era il problema. Secondo THORChain, ogni nodo ha registrato la reorg, ma il ricontrollo automatico destinato a definire lo stato del deposito non è riuscito a completarsi prima che THORChain finalizzasse l'osservazione sulla propria catena. La documentazione di Bifrost descrive come le osservazioni vengono annullate quando una transazione esterna scompare. Il 31 ottobre quell'annullamento non è avvenuto prima dell'erogazione del rimborso.
Il post non spiega perché il ricontrollo ha esaurito il tempo né cosa cambierà la correzione. Il rimborso è stato coperto solo perché il destinatario ha scelto di restituirlo. Come descritto da THORChain, il protocollo paga chiunque lo attivi, e chi coordina transazioni in vista di una futura reorg non avrebbe alcun motivo di restituire nulla.
Perché un difetto da 10 ETH ha congelato dieci catene
Il verificatore automatico di solvibilità di THORChain ha individuato il disavanzo e ha sospeso gli swap ETH. Entro circa due minuti, i node operator hanno interrotto anche la firma delle transazioni ETH, che blocca i pagamenti in uscita dai vault. Hanno poi sospeso il trading sulle altre catene per precauzione, poiché l'avviso sul nonce riguarda le reorg su qualsiasi catena connessa, non solo Ethereum.
Situazione dei servizi THORChain al momento del post del 1° novembre:
- Trading sospeso: ATOM, BCH, BSC, BTC, DOGE, ETH, LTC, SOL, TRON, ZEC
- Trading attivo: AVAX, BASE, RUNE, XRPL
- Pagamenti in uscita: i dati di stato del 31 ottobre mostravano la firma ancora abilitata sulla maggior parte delle catene sospese, quindi i pagamenti in sospeso potevano uscire mentre i nuovi swap restavano bloccati.
Lo stato del trading è riferito al post di THORChain del 1° novembre; lo stato della firma è riferito all'API di stato di THORChain come riportato il 31 ottobre.
L'elenco è già cambiato una volta. La sera del 31 ottobre, The Defiant ha riferito che l'API di stato di THORChain mostrava il trading sospeso su 12 delle 13 catene esterne. Al momento del post del 1° novembre, tre di esse erano state riattivate. THORChain non ha spiegato perché quelle tre siano tornate operative per prime.
Tutto ciò non arresta le reti sottostanti. Bitcoin, Ethereum e le altre catene continuano a produrre blocchi; le sospensioni limitano solo ciò che THORChain elabora per ciascuna di esse.
Letta in un certo modo, la vicenda mostra le tutele al lavoro. Il verificatore si è attivato senza intervento umano, i pagamenti si sono fermati entro pochi minuti e l'esposizione è rimasta a 10 ETH. A maggio, lo stesso controllo ha dovuto sospendere trading e firma dopo un exploit drenato circa 10,7 milioni di dollari da un vault. Ciò che il verificatore non può fare è riparare la logica di osservazione, ed è per questo che le sospensioni si sono estese invece di ridursi una volta ricostituito il vault.
Tre voti per fermare, quattro per ribaltare
Sospensioni come queste sono impostazioni operative, e la documentazione di governance di THORChain consente a un piccolo gruppo di nodi di modificarle. Un'impostazione richiede almeno tre voti dei nodi attivi e deve superare ogni valore concorrente; in caso di parità resta in vigore l'impostazione corrente.
Questa soglia è già stata messa alla prova pubblicamente. Durante il riciclaggio di febbraio 2025 dei fondi rubati a Bybit, tre validatori hanno votato per sospendere il trading ETH, e altri node operator hanno ribaltato il voto quasi immediatamente. L'account di THORChain del 1° novembre rileva inoltre che sospendere una catena non trasferisce ai nodi il controllo degli asset dei vault. Fermare l'attività e firmare i trasferimenti sono poteri distinti.
Una sospensione che THORChain non avrebbe usato contro i riciclatori
Il 28 settembre, di fronte alle richieste di congelare i fondi dell'hack a Bitget, THORChain ha scritto su X che la sospensione della rete è una misura di sicurezza d'emergenza destinata a proteggere il protocollo, e ha declinato di usarla contro quei fondi. Il difetto della reorg è esattamente quel tipo di emergenza, e la sospensione che ha innescato ha colpito comunque i riciclatori.
Chainalysis, che attribuisce il furto di 6,4 miliardi di dollari ai danni di Binance al gruppo TraderTraitor nordcoreano, ha dichiarato il 1° novembre che THORChain aveva "involontariamente ritardato il riciclaggio di una quantità significativa di fondi rubati a Binance". Il ritardo è derivato dalla stessa caratteristica che frustra gli utenti ordinari: una catena sospesa non elabora gli swap di nessuno.
Cosa deve accadere prima del ritorno degli swap
La documentazione per sviluppatori di THORChain sconsiglia l'invio di fondi a una catena sospesa, poiché le transazioni possono restare invariate fino alla revoca della sospensione. Il post del 1° novembre non ha fornito una data di riapertura. I node operator riattiveranno ogni catena quando la giudicheranno sicura.
Tre elementi indicherebbero che il difetto è risolto e non solo sospeso: la pubblicazione da parte di THORChain della modifica alla gestione delle reorg esterne, l'aggiornamento dei node operator e il ritorno della firma ETH insieme al trading sulle catene sospese. Dopo l'exploit di maggio, quel percorso è passato da una patch d'emergenza a una correzione completa e alla riapertura del trading nell'arco di più di cinque settimane. È un riferimento per il processo, non una tempistica per questo caso.
I 10 ETH restituiti hanno sanato il pagamento del 31 ottobre. La riattivazione della firma ETH sarebbe il primo segnale pubblico che gli operatori si fidano di THORChain nel gestire la prossima reorg.