Coldcard Wallet Hack spiegato: come una debole generazione del seed ha messo a rischio anni di Bitcoin
Punti chiave
- •Un aggressore coordinato ha rubato una stima osservata di 1,367.05 BTC in tre ondate dai wallet Coldcard, con una sospetta quarta ondata che potrebbe portare l’esposizione totale a circa 1,815.75 BTC.
- •La vulnerabilità è nata da una migrazione del firmware del 2021 che ha fatto usare alla generazione del seed del wallet un fallback software di numeri casuali invece della sorgente hardware prevista, riducendo l’entropia del seed fino a 40 bit sui dispositivi Mk2 e Mk3.
- •I dispositivi Mk2 e Mk3 con firmware da 4.0.1 a 4.1.9 sono stati i più colpiti, mentre i successivi modelli Mk4, Q e Mk5 incorporavano entropia dell’elemento sicuro che riduceva ma non eliminava l’esposizione.
- •Coinkite ha rilasciato firmware correttivi su tutte le linee di prodotto interessate, ma ha confermato che gli aggiornamenti non possono riparare i seed già creati tramite il processo vulnerabile, richiedendo agli utenti di generare wallet completamente nuovi e migrare i fondi con cautela.
- •Due mitigazioni indipendenti avrebbero potuto ridurre l’esposizione individuale: aggiungere almeno 50 lanci di dado equi durante la creazione del seed per fornire 128 bit di entropia indipendente, oppure usare una passphrase BIP-39 forte e unica.
Da una scansione di 25 minuti a un incidente in più ondate
Il trasferimento di 594 BTC è diventato la notizia principale per la sua velocità e coordinazione. Le cronache sulla prima ondata hanno indicato che circa 562 BTC sono stati successivamente consolidati in un unico indirizzo. Il modello suggeriva automazione: molti output vecchi a firma singola sono stati raccolti in rapida successione, con l’aggressore che sembra aver prelevato l’intero saldo disponibile invece di comportarsi come un normale utente di wallet.
La stima delle perdite non si è fermata lì. Alex Thorn, responsabile di Galaxy Research, ha continuato a tracciare transazioni con caratteristiche simili. Entro il 2 agosto, la sua stima osservata per tre ondate di attacco era salita a 1,367.05 BTC su 4,585 indirizzi sorgente, per un valore di circa $88.6 million usando il riferimento di prezzo contemporaneo nel suo aggiornamento.
Il 3 agosto, Thorn ha segnalato un altro cluster tra i blocchi Bitcoin 960,778 e 960,792. La revisione iniziale ha rilevato 218 transazioni che spostavano più di 380 BTC da 462 indirizzi di vittime sospette verso 210 nuove destinazioni. Un successivo resoconto basato sulla sua analisi ha ampliato il cluster potenziale a circa 448.7 BTC su 709 indirizzi.
Quel quarto cluster richiede un linguaggio cauto. Alcune transazioni erano ancora in attesa con replace-by-fee abilitato, il che significava che una vittima poteva teoricamente sostituire una transazione malevola non confermata offrendo una commissione più alta. Thorn ha descritto il modello come probabilmente un’altra ondata Coldcard, non come una cifra finale e definitivamente accertata della perdita. L’aggiunta meccanica di 448.7 BTC al totale precedente produce circa 1,815.75 BTC, ma si tratta di una stima potenziale dell’esposizione in quattro ondate, non di un totale di furto definitivo.
| Stage | Observed activity | Status by August 4, 2026 |
|---|---|---|
| First major sweep | About 594 BTC from roughly 500 single-signature source addresses in around 25 minutes | Widely reported and visible on-chain |
| Three-wave estimate | 1,367.05 BTC across 4,585 addresses | Galaxy Research observed estimate |
| Suspected fourth wave | More than 380 BTC initially identified; later estimate around 448.7 BTC across 709 potential victim addresses | High-confidence pattern match, but some transactions were pending or replaceable |
| Potential four-wave total | Approximately 1,815.75 BTC if the full fourth-wave estimate is included | Provisional, not a final confirmed loss total |
Il conteggio delle ondate d’attacco è importante, ma non è la parte più profonda della storia. La domanda più difficile è come un aggressore potesse controllare wallet le cui chiavi private avrebbero dovuto rimanere offline.
La modifica del codice del 2021 che ha indebolito la generazione del seed
Un seed di un wallet Bitcoin non è semplicemente un elenco di parole. È una rappresentazione leggibile dall’uomo di entropia segreta da cui il wallet deriva le chiavi private. Se quell’entropia viene prodotta correttamente, indovinare il seed è computazionalmente irrealistico. Se invece gli input possibili sono fortemente limitati, le stesse parole possono apparire del tutto ordinarie pur offrendo molta meno sicurezza.
Il team Bitcoin Engineering and Security di Block ha ricondotto il problema di Coldcard a una modifica introdotta durante una migrazione a una libreria crittografica nel 2021. Coldcard ha spostato la generazione del seed da ckcc.rng_bytes(), che accedeva al generatore hardware di numeri casuali della scheda, a ngu.random.bytes().
Il generatore sbagliato dietro l’interfaccia giusta
La configurazione del dispositivo definiva MICROPY_HW_ENABLE_RNG come zero perché Coldcard forniva un wrapper hardware-RNG separato. Un controllo della libreria verificava se quella macro fosse definita, invece di controllare se fosse abilitata. Poiché la macro esisteva, la compilazione riusciva. Ma la chiamata alla funzione veniva risolta nel fallback software Yasmarang di MicroPython invece che nella sorgente hardware prevista.
Quel fallback si inizializzava con valori che includevano parte dell’identificatore univoco del microcontrollore e i registri del timer. Questi input possono variare, ma sono metadati del dispositivo e stato temporale, non vera casualità crittografica. Una volta che lo stato rilevante e il numero di chiamate precedenti al generatore sono noti o sufficientemente vincolati, il flusso risultante è deterministico.
Per il firmware Mk2 e Mk3 interessato, Block non ha trovato alcun segreto generato crittograficamente aggiunto attraverso questo percorso. Il modello d’attacco preliminare di Coinkite stimava uno spazio di ricerca effettivo di circa 40 bit. Block ha presentato un’analisi più condizionata: la ricerca pratica dipende dalla conoscenza dell’identificatore del dispositivo, dei timer e della cronologia delle chiamate, e non ha rivendicato un benchmark brute-force end-to-end completo.
I successivi dispositivi Mk4, Q e Mk5 mescolavano materiale dell’elemento sicuro nel generatore, riducendo la gravità ma senza ripristinare il margine di sicurezza previsto. Block ha rilevato che solo quattro byte di un digest raggiungevano la funzione di reseed per uno stato di fallback fisso e una cronologia delle chiamate fissa, lasciando al massimo 2^32 flussi di output distinti in modo sicuro in quella condizione. Coinkite ha stimato circa 72 bit di spazio di ricerca effettivo secondo le sue ipotesi di attacco più ampie. Le cifre descrivono modelli diversi, ma entrambe le analisi arrivano alla stessa conclusione operativa: i dispositivi successivi erano meno esposti rispetto alla generazione Mk2 e Mk3 interessata, ma richiedevano comunque una correzione.
Perché l’hashing non poteva ripristinare l’entropia mancante
Coldcard ha sottoposto il valore generato di 32 byte a hashing prima di trasformarlo in materiale del wallet. Questo può rendere l’output statisticamente uniforme, ma un hash non può creare possibilità che mancavano nell’input. Se un generatore può produrre solo una famiglia limitata di valori candidati, l’hashing di quei valori produce solo lo stesso numero di seed candidati.
Lo stesso principio vale per il checksum BIP-39. Aiuta a rilevare errori di trascrizione; non aggiunge casualità segreta. Una frase valida apparentemente di 12 o 24 parole può quindi essere crittograficamente debole se il processo che l’ha selezionata era prevedibile.
Come un wallet offline poteva essere svuotato
La blockchain pubblica ha fornito all’aggressore qualcosa di prezioso: un obiettivo di validazione. Gli indirizzi Bitcoin, le chiavi pubbliche rivelate da spese precedenti e le chiavi pubbliche estese condivise con il software del wallet possono tutti aiutare a determinare se una chiave privata o un seed indovinati appartengano a un wallet bersaglio.
Un attacco plausibile genererebbe stati RNG candidati, deriverebbe il seed e gli indirizzi corrispondenti e li confrontarebbe con gli indirizzi finanziati on-chain. Quando un candidato coincideva, l’aggressore avrebbe lo stesso potere di firma del proprietario. Il Coldcard reale non avrebbe bisogno di comunicare con l’aggressore in alcun momento.
Questo spiega come cold storage e furto possano coesistere. Il wallet è rimasto offline, ma il suo segreto potrebbe essere stato riproducibile altrove.
La ricetta operativa esatta resta sconosciuta. Block ha affermato che il costo pratico dipende da informazioni come l’UID del dispositivo, il timing di avvio, le precedenti chiamate RNG e il lavoro di derivazione delle chiavi. I suoi ricercatori non avevano completato test empirici completi dell’exploit al momento della pubblicazione dell’avviso. Nessun resoconto autorevole ha stabilito come l’aggressore abbia ottenuto o vincolato tutti gli input richiesti, quale hardware sia stato usato o se vi abbia partecipato più di un attore.
Coinkite ha ipotizzato che un aggressore possa aver usato l’intelligenza artificiale per esaminare il firmware open-source storico. Questa possibilità non è una prova di attribuzione. Il codice è stato pubblico per anni e sia la revisione tradizionale sia quella assistita dall’AI avrebbero potuto scoprirlo. La conclusione difendibile è che la vulnerabilità fosse individuabile dal codice sorgente, non che sia stato dimostrato che l’AI sia stato il metodo dell’aggressore.
Quali wallet Coldcard sono stati interessati
Block ha datato il percorso di generazione vulnerabile alla versione firmware 4.0.0 nel marzo 2021. L’avviso per gli utenti di Coinkite definisce l’intervallo di release Mk2/Mk3 interessato come le versioni da 4.0.1 a 4.1.9 incluse. Per i dispositivi successivi, Coinkite ha avvertito che anche i seed generati su Mk4 e Mk5 prima del firmware standard 5.6.0, o su Q prima di 1.5.0Q, erano interessati. I rami di release Edge separati richiedevano 6.6.0X per Mk4/Mk5 e 6.6.0QX per Q.
L’esposizione dipende dal firmware usato quando il seed è stato generato, non dal firmware installato oggi. Aggiornare un dispositivo modifica il comportamento di generazione futuro; non altera un seed già esistente.
Coinkite ha identificato due protezioni indipendenti che avrebbero potuto cambiare materialmente l’esposizione di un determinato wallet. Secondo l’azienda, almeno 50 lanci di dado equi, privati e indipendenti aggiunti durante la creazione originale del seed avrebbero fornito almeno 128 bit di entropia indipendente. Anche una passphrase BIP-39 forte e unica crea una barriera separata che un aggressore deve superare. Né una passphrase breve né il PIN del dispositivo dovrebbero essere considerati una protezione equivalente.
Anche gli assetti multisig richiedono un trattamento altrettanto attento. Una chiave Coldcard vulnerabile non compromette automaticamente un wallet che richiede ancora firme da un numero sufficiente di dispositivi indipendentemente sicuri. Ma un quorum composto interamente da seed vulnerabili può preservare lo stesso problema di fondo. La protezione deriva da una soglia adeguata di chiavi generate in modo indipendente e sicuro, non dalla sola etichetta multisig.
La correzione di Coinkite e il problema della migrazione
Coinkite ha rilasciato hotfix su tutte le linee di prodotto interessate e ha detto agli utenti di non generare seed sostitutivi finché non fosse installato il firmware corretto appropriato. La guida dell’azienda è inequivocabile sul punto più importante: gli aggiornamenti firmware non possono riparare i seed creati dal processo difettoso.
Gli utenti con seed interessati devono creare un seed completamente nuovo sul firmware corretto, verificare il nuovo fingerprint del wallet e l’indirizzo di ricezione, inviare una piccola transazione di test e solo allora migrare il saldo residuo. Il vecchio backup dovrebbe rimanere disponibile finché il trasferimento non è completamente confermato. Affrettare questo processo può introdurre una nuova perdita attraverso un indirizzo errato, un backup incompleto o un errore di passphrase.
TAPSIGNER, OPENDIME e SATSCARD non sono interessati perché utilizzano codebase diverse. Questo limite è importante. L’incidente è grave, ma non è una prova che ogni prodotto Coinkite o ogni hardware wallet condivida la stessa vulnerabilità.
In che modo il guasto di Coldcard cambia la visione del cold storage
"Cold" descrive la relazione di un wallet con le reti. Non certifica come sono state create le sue chiavi private, se il firmware ha seguito il percorso di esecuzione previsto o se backup e passphrase sono stati gestiti in modo sicuro.
Il guasto di Coldcard ha evidenziato un divario tra revisione dei componenti e comportamento del sistema. Il codice hardware RNG previsto esisteva nel binario del firmware. Anche il fallback software aveva la firma di funzione attesa. La revisione precedente aveva verificato che il componente corretto fosse presente, ma non aveva confermato quale implementazione la generazione del wallet raggiungesse effettivamente attraverso le librerie integrate.
È una lezione severa per la sicurezza open-source. Il codice pubblico consente una verifica indipendente, ma la pubblicazione non è la stessa cosa di una revisione continua end-to-end. Le build critiche per la sicurezza hanno bisogno di test che confermino che l’entropia raggiunga il chiamante, che falliscano in modo chiuso quando la sorgente prevista non è disponibile e che misurino il comportamento degli artefatti compilati invece di presumere che l’intento a livello di sorgente sopravviva all’integrazione.
Per gli utenti, la lezione non è abbandonare l’autocustodia. È capire che l’autocustodia trasferisce la responsabilità attraverso diversi livelli: autenticità dell’hardware, provenienza del firmware, entropia del seed, forza della passphrase, isolamento dei backup, diversità del multisig e capacità di migrare in modo sicuro quando viene scoperto un difetto.
I primi 594 BTC sono scomparsi in pochi minuti. Le condizioni che hanno reso possibili quei trasferimenti potrebbero essere esistite per più di cinque anni. Quel divario temporale è l’avvertimento centrale: un wallet freddo può rimanere silenzioso e apparentemente sicuro per anni mentre una debolezza nel suo seed originale attende di essere scoperta.
Scambia Bitcoin con leva - senza rinunciare alla custodia
Gli exchange decentralizzati di perpetual hanno superato di molto lo status di nicchia. Secondo il CoinGecko's 2025 Annual Crypto Industry Report, il volume di trading perpetual su DEX è aumentato del 346% lo scorso anno fino a $6.7 trillion, mentre l’open interest sugli exchange centralizzati è sceso del 20.8% nello stesso periodo. I trader stanno impegnando capitali significativi nei derivati on-chain, e i motivi sono chiari: il rischio di controparte è reale, i fallimenti custodiali accadono e la resistenza alla censura conta.
edgeX è un exchange decentralizzato di futures perpetual costruito per trader che vogliono accesso al mercato senza sacrificare il controllo.
Perché i trader scelgono edgeX per i perpetual su BTC
- Nessun KYC, nessuna barriera. Collega un wallet e inizia a fare trading senza verifica dell’identità o approvazioni dell’account.
- Vera autocustodia. edgeX combina il matching degli ordini off-chain con il settlement verificabile on-chain protetto da Ethereum. I meccanismi di forced-withdrawal mantengono i fondi recuperabili direttamente dalla blockchain anche se l’operatore va offline.
- Profondità di liquidità elevata, spread ridotti. edgeX mantiene una profondità di mercato di $10 million entro uno spread di un punto base, con slippage inferiore a 0.1 punti base su trade superiori a $100,000.
- Leva fino a 100x. I trader possono scalare le posizioni in base al proprio framework di rischio, sia che stiano coprendo un’esposizione sia che stiano negoziando il momentum.
- Ricompense del 100% delle commissioni di trading. I trader attivi possono guadagnare ricompense sulla propria attività di trading, riducendo nel tempo il costo netto delle strategie ad alta frequenza.
- Infrastruttura di livello istituzionale. edgeX elabora fino a 200,000 ordini al secondo con latenza di matching inferiore a 10 millisecondi.
Metti al lavoro la tua visione di mercato su Bitcoin
Fai trading di futures perpetual BTC/USDC perpetual futures su edgeX mantenendo il controllo dei tuoi asset. La leva amplifica sia i guadagni sia le perdite, quindi dimensionamento della posizione, distanza di liquidazione e costi di funding restano parti essenziali della gestione del rischio.
Domande frequenti
Gli hacker hanno avuto accesso da remoto ai dispositivi Coldcard?
Nessuna indagine autorevole ha dimostrato accesso remoto ai dispositivi interessati. Il meccanismo riportato implica la ricostruzione offline di seed o chiavi private candidati a partire da un processo di numeri casuali indebolito e la loro validazione rispetto alle informazioni pubbliche della blockchain.
L’incidente ha rotto la crittografia di Bitcoin?
No. La vulnerabilità riguardava la generazione del seed del wallet nel firmware Coldcard interessato. Non è stato dimostrato che il sistema di firme sottostante di Bitcoin sia stato crittograficamente compromesso.
L’installazione del firmware più recente protegge un wallet esistente?
Protegge la generazione futura del seed nella release corretta, ma non può riparare un seed creato sul firmware interessato. Coinkite consiglia di generare un nuovo seed e trasferire i fondi dopo aver verificato attentamente il wallet sostitutivo.
Tutti i modelli Coldcard erano ugualmente vulnerabili?
No. Il firmware Mk2/Mk3 interessato utilizzava il percorso più grave. Mk4, Q e Mk5 aggiungevano entropia dell’elemento sicuro e sono stati valutati come meno esposti, ma Coinkite ha comunque classificato i seed creati prima della correzione come abbastanza gravi da richiedere la migrazione. Prodotti, linea firmware e data di creazione del seed contano tutti.
1,815.75 BTC è l’importo confermato rubato?
No. La stima osservata su tre ondate di Galaxy Research era di 1,367.05 BTC. Circa 448.7 BTC era associato a una probabile quarta ondata, ma alcune transazioni erano in attesa o sostituibili mentre il cluster veniva analizzato. La cifra combinata è una stima provvisoria dell’esposizione, non un totale finale confermato della perdita.