Dare la caccia all’hacker di Coldcard: il ladro della Wave 1 potrebbe essere noto all’FBI
Punti chiave
- •La prima ondata dei drenaggi Coldcard ha spostato 1.082,65 BTC il 30 luglio 2026, e quei bitcoin non sono ancora stati mossi dall’indirizzo dell’attaccante.
- •Block ha affermato che la sua indagine ha collegato gli sweep a un account a pagamento presso un fornitore di servizi blockchain, e che i log del provider corrispondevano al pattern delle richieste con precisione straordinaria.
- •Entro l’inizio di agosto, le perdite confermate e stimate di più ondate superavano 1.800 BTC su oltre 5.000 indirizzi, con circa 118 milioni di dollari confermati rubati.
- •La vulnerabilità derivava da un guasto nell’entropia della generazione dei seed nel firmware Coldcard che colpiva dispositivi vecchi fino al MK2 con firmware 4.0.1 e successivi.
- •I ricercatori affermano che alcune ondate successive mostrano comportamenti operativi diversi, suggerendo che altri attori possano aver sfruttato lo stesso spazio di seed debole dopo la divulgazione.

Le forze dell’ordine potrebbero già sapere chi ha svuotato più di 1.000 bitcoin dai wallet Coldcard nella prima e più grande ondata dei drenaggi di luglio 2026. L’indagine di Block afferma di aver ricondotto gli sweep on-chain dell’attaccante a un account a pagamento presso un importante fornitore di dati blockchain, e che i log interni del provider corrispondevano al pattern del furto con “extraordinary specificity”.
PSA: L’attacco è in corso e prende di mira chiavi private deboli generate su dispositivi vecchi fino al MK2 con firmware 4.0.1 e successivi. Se potresti averne uno, ricontrollalo e sposta i fondi il prima possibile. Vedi il coinkite advisory e la status page.
I bitcoin di quella prima ondata — 1.082,65 BTC — restano intatti nell’indirizzo dell’attaccante. Questo ha lasciato aperta la possibilità che le vittime possano recuperare almeno parte dei fondi rubati. La domanda chiave ora è chi sia l’hacker e se la stessa traccia punti a un outsider sofisticato oppure a qualcosa di più vicino al “retirement attack” interno di cui Coinkite aveva in passato messo in guardia.
La posta in gioco va oltre gli utenti di Coldcard. I dispositivi Coldcard, prodotti da Coinkite, sono tra i wallet hardware più noti per la custodia autonoma di bitcoin, con chiavi private generate e archiviate offline anziché su server connessi a Internet. Un difetto nella casualità usata per generare quelle chiavi colpisce il fondamento stesso di quel modello.
Cosa sappiamo
Il 30 luglio 2026, un attaccante ha iniziato a drenare sistematicamente bitcoin dai wallet hardware Coldcard che avevano generato seed con firmware vulnerabile, un bug rimasto inosservato per anni. La prima e più grande ondata ha spostato 1.082,65 BTC. Sono seguite altre ondate, con stime oltre 2.000 BTC. Alex Thorn di Galaxy Research ha tracciato l’attività tramite analisi dei pattern on-chain e segnalazioni volontarie delle vittime. Entro l’inizio di agosto, le perdite confermate e stimate su più ondate superavano 1.800 BTC da oltre 5.000 indirizzi, anche se il totale finale continua a essere affinato man mano che arrivano nuove segnalazioni. In termini di dollari, risultano confermati rubati circa 118 milioni di dollari.
Thorn ha dichiarato pubblicamente che le forze dell’ordine potrebbero già avere un indizio concreto sull’operatore dietro il blocco più grande. In un segmento del Bitcoin Policy Institute ospitato sul canale YouTube di Bitcoin Magazine, Thorn ha affermato: “Wave one’s identity, attacker identity, may be known to law enforcement.” Ha aggiunto che Wave 1 resta il singolo blocco più grande finora identificato, con i bitcoin ancora fermi nell’indirizzo dell’attaccante, e ha osservato che il pattern di Wave 2 appare abbastanza simile da poter coinvolgere lo stesso soggetto. Wave 2 aggiunge altri 76 circa bitcoin al totale.
La principale fonte dell’affermazione secondo cui l’identità dell’hacker potrebbe essere nota è Clay Garrett, engineering lead di Block che lavora su Bitkey. Il 31 luglio 2026, Garrett ha pubblicato i risultati dell’indagine di Block:
“During our investigation of the Coldcard drain yesterday, we identified an unusual pattern in the sweeps. That pattern led us to a hypothesis that has since been confirmed: the operator used a paid account at a well-known blockchain-services provider to query the source addresses and perform other related activity during the sweeps.”
“We contacted the provider directly. Their internal logs matched the suspected workflow with extraordinary specificity, including the number, timing and sequence of requests. The provider was supplying its standard services in response to requests that did not reveal their broader purpose. We have seen no evidence that the provider knowingly participated in or facilitated the suspected theft.” Garrett ha detto, aggiungendo: “We are sharing the relevant information with the appropriate authorities. We will provide further updates when doing so will not interfere with the investigation.”
Per gli investigatori, il dato è significativo perché colma il divario che di solito separa il furto on-chain da un’identità del mondo reale: gli sweep erano collegati a un account a pagamento i cui log delle richieste — numero, tempistica e sequenza delle query — erano conservati dal provider, creando una traccia fuori catena che Garrett afferma Block stia ora condividendo con le autorità competenti.
Thorn e altri hanno osservato che le ondate successive, più piccole, mostrano pattern operativi diversi — inclusi drenaggi rapidi e opportunistici seguiti da un veloce riciclaggio — suggerendo che altri attori possano aver reverse-engineerizzato lo stesso spazio di seed debole dopo la divulgazione iniziale. I drenaggi confermati auto-segnalati sembrano essersi rallentati nettamente dopo il 6 agosto, anche se molti seed potenzialmente vulnerabili generati sul firmware interessato tra il 2021 e la patch di luglio 2026 restano a rischio finché gli utenti non migrano.
Un attacco di fine carriera?
La natura del guasto ha alimentato teorie del complotto su attacchi interni, che Coinkite stessa aveva già discusso pubblicamente. Nell’ottobre 2021, l’account ufficiale COLDCARD definì un “retirement attack” come la situazione “when the project makers could have a ‘bug’ in the entropy generation for later retrieval.” Il post è ancora disponibile qui.
La vulnerabilità del 2026 ha prodotto esattamente quel risultato: seed generati con molta meno entropia del previsto, rendendoli ricercabili anni dopo. Alcune persone nell’ecosistema Bitcoin ritengono ora che l’hack possa essere stato un lavoro interno di Coinkite, mentre altri non sono d’accordo. Le prove pubbliche restano troppo scarse per arrivare a una conclusione definitiva, e ulteriori elementi potrebbero emergere solo tra anni, probabilmente attraverso il contenzioso.
Il cambiamento critico è entrato nel codebase il 1° marzo 2021, in un commit intitolato “First pass w/ libNgU” (b18723dd). Quel commit ha sostituito la crittografia derivata da Trezor e il codice BIP-39 rimanenti con una nuova libreria, libngu, e ha ricollegato la generazione dei seed. L’obiettivo previsto era che la chiamata alla casualità si risolvesse nel vero generatore di numeri casuali hardware dell’STM32. Invece, il bug ha reindirizzato la chiamata al PRNG software Yasmarang di MicroPython, causando un collasso effettivo dell’entropia a circa 40 bit sui modelli più vecchi e intorno a 72 bit su quelli più nuovi. Questo significava che le chiavi private bitcoin generate erano, in pratica, indovinabili con hardware di calcolo moderno. Per dare un ordine di grandezza, un seed Bitcoin generato correttamente dovrebbe avere da 128 a 256 bit di entropia, quindi un collasso a circa 40 bit riduce lo spazio di ricerca dell’attaccante di molti ordini di grandezza — la differenza tra chiavi praticamente impossibili da indovinare e chiavi che possono essere semplicemente enumerate.
Lo scambio è stato inserito nel codebase da Doc-Hex, noto anche come Peter Gray, Chief Technical Officer di Coinkite.
Secondo Zach Herbert, CEO e fondatore di Foundation Devices, la mossa potrebbe essere stata guidata da pressioni di licensing, anche se Coinkite ha negato che il licensing fosse la motivazione principale del cambio di codice, affermando: “COLDCARD had to make this change to move to libsecp256k1; the license change is irrelevant to this. libsecp256k1 is the standard library used by Bitcoin Core.”
Coldcard stava usando codice derivato da Trezor con licenza open source GPLv3. Dopo che Foundation Devices ha forkato materiale correlato, Coinkite ha cercato di spostare i componenti rimanenti verso un più restrittivo accordo MIT + Commons Clause che limitava il riuso commerciale. La riscrittura era ampia e perseguiva obiettivi ingegneristici complessi; è stata questa integrazione ad aver presumibilmente lasciato il guasto silenzioso nel percorso dell’entropia.
Lo scetticismo sulla migrazione lontano dalla libreria crittografica Trezor è emerso già il 7 aprile 2021, quando un membro del gruppo Telegram di Coinkite ha scritto: “do we really want to replace the many-years-old TrezorCrypto code that has been heavily scrutinized by white hatters like Johoe and penetration tested by wallet.fail”, aggiungendo “switch may be a talented pseudonymous coder, but their commit history sucks.” La critica è stata però rapidamente liquidata da NVK, che ha definito la libreria Trezor un “shitcoin shitshow.” Paradossalmente, la condivisione di quel codebase con il mercato crypto più ampio, sotto licenza aperta, significava che la libreria crittografica di Trezor aveva ricevuto una revisione ben più profonda di quanto Libngu avrebbe mai ottenuto, anche anni dopo.
Switch e Peter Gray alias Doc-Hex
Lo scambio di librerie crittografiche che ha introdotto il bug è stato inserito nel codebase da Doc-Hex, CTO di Coinkite, Peter D. Gray. Ha sostituito la libreria crittografica Trezor sotto GPLv3 con Libngu, un codebase poco noto creato da “Switch”, uno pseudonimo che, fino alla creazione di Libngu, non aveva una storia precedente evidente.
L’account Switch è apparso su X il 3 agosto 2019 con un riferimento a DEFCON, la conferenza internazionale degli hacker, un evento normalmente frequentato da ingegneri della cybersecurity di ogni tipo. Il 16 ottobre 2020, Switch ha ringraziato Doc-Hex su X per aver integrato il suo codice; “Thanks for merge @DocHex … I’m making yet another bitcoin library. Could be useful on @COLDCARDwallet someday.” Pochi giorni dopo, Switch ha twittato un link a Libngu, orgoglioso di aver costruito una “useful thing.”
Tuttavia, qui la storia si fa strana. Secondo le ricerche del contributor di Bitcoin Core James O’Beirne, Switch e Peter D. Gray avrebbero firmato commit di codice con le stesse chiavi GPG. O’Beirne ha mostrato tramite le firme GPG dei commit che decine di commit attribuiti a switck erano firmati con la chiave personale di Peter D. Gray, cofondatore e CTO di Coinkite, che opera anche come DocHex. Zach Herbert ha inoltre affermato che numeri di telefono terminanti con le stesse due cifre erano collegati sia all’account X DocHex sia a quello switck (post). Altri ricercatori hanno indicato pattern corrispondenti nelle registrazioni DNS.
Né Gray né Coinkite hanno affrontato pubblicamente i risultati sulle firme GPG al momento in cui scriviamo, e non hanno risposto quando è stato chiesto un commento sull’argomento. L’account Switch è ancora attivo oggi, avendo fuso modifiche di codice in Libngu anche il 17 agosto 2026.
Molti nell’industria Bitcoin stanno interpretando questo come una sorta di indizio indiretto di illecito. Ma da solo, il collegamento non è conclusivo. Se Gray avesse davvero inteso sfruttare il bug RNG contro gli utenti Coldcard, non è chiaro perché avrebbe firmato i commit con la propria chiave GPG personale. Un bug nascosto rimasto inattivo per anni sembrerebbe anche poco compatibile con l’uso di uno pseudonimo usa-e-getta in modo tracciabile. Le identità pseudonime sono comuni nei circoli degli sviluppatori Bitcoin, con Satoshi come esempio più noto. Di per sé, il legame Gray-Switch non sembra risolvere l’indagine sull’hacker di Coldcard.
Contributori di MicroPython
Anche alcuni altri sviluppatori open source sono stati recentemente identificati come persone che hanno toccato o influenzato il codice che ha avuto un ruolo nel bug RNG di Coldcard.
L’analista dei dati LaurentMT ha esaminato il lato MicroPython del percorso RNG. MicroPython è un’implementazione snella e open source di Python 3, progettata per microcontrollori e computer con risorse limitate. A causa del bug, il firmware Coldcard ha finito per chiamare il fallback del generatore pseudo-casuale Yasmarang di MicroPython, portando a una generazione a bassa entropia.
Le modifiche alla logica PRNG in MicroPython sono iniziate il 20 agosto 2020, con l’apertura su GitHub dell’issue #6347 da parte di un utente chiamato “mirko”. Egli sosteneva che il suo hardware ESP32 restituisse sempre lo stesso risultato quando chiamava random.choice() in un certo modo e si aspettava invece risultati casuali. L’issue ha avviato mesi di discussione sulla logica corretta e sul comportamento atteso, che Mirko ha mostrato essere controintuitivo.
Laurent sottolinea che “robert-hh initialized a [Pull Request] implementing the PRNG seeding change” il 22 agosto 2020. Successivamente, il 29 ottobre 2020, dpgeorge, maintainer di MicroPython, ha fuso nel repository master una versione leggermente modificata di quella pull request, implementando “the (UID+SysTick+RTC) to address some limitations in robert-hh’s solution.” Le modifiche a questo codice critico legato all’RNG erano quindi presenti nel repository master di MicroPython quando Coldcard lo ha forkato per usarlo in Libngu, ma prima che MicroPython avesse rilasciato una nuova versione ufficiale.
Questo è rilevante perché costruire sulla branch master di un repository può essere rischioso: il codice potrebbe essere ancora in evoluzione, a differenza di una release ufficiale stabile. La successiva release di MicroPython è arrivata solo il 3 febbraio 2021, con la versione v1.14. Anche allora, la modifica alla logica RNG è stata menzionata solo brevemente nell’annuncio di release, che diceva “the urandom module will randomize its seed on import on stm32, esp8266, esp32 and rp2 ports.”
In un’intervista con Bitcoin Magazine, Laurent ha concluso senza ambiguità che “without this modification the bug in Coldcard code would have been immediately detected.” Commentando la serie di eventi che ha portato al bug, ha anche detto che “there are a lot of ‘coincidences’ in this timeline,” aggiungendo che “while they don’t prove anything, I don’t see how an official investigation may completely ignore them.”
È importante notare che non ci sono prove che uno qualsiasi degli sviluppatori sopra menzionati abbia cercato intenzionalmente di introdurre il bug RNG di Coldcard con queste modifiche e, in ultima analisi, è Coinkite, la società di wallet hardware, ad essere responsabile della sua implementazione del codice critico. MicroPython è un progetto open source ampio e molto usato. Tuttavia, c’è probabilmente molto da imparare da quello che, per il momento, possiamo ben definire — almeno per ora — una tragica commedia di errori.
Perché un lavoro interno appare improbabile
Diversi fattori vanno contro l’ipotesi di un deliberato attacco interno di tipo retirement, pianificato a lungo. L’identità “switck” era mal compartmentalized; la chiave GPG condivisa e altri sovrapposizioni rendevano l’attribuzione a Doc-Hex alias Peter Gray relativamente semplice una volta che i ricercatori hanno iniziato ad analizzare il caso. Inoltre, l’account era in gran parte abbandonato da anni. I contributori di MicroPython, invece, operavano apertamente su un progetto ad alta visibilità.
L’indagine Citadel21 di Hodlonaut e altre analisi tecniche non trovano prove chiare che il guasto di entropia fosse intenzionale. Il report tecnico dell’ingegnere Alekos Filini espone esplicitamente i fatti tecnici, affermando che “My goal is to purely present facts and NOT make any conclusions.” L’autopsia tecnica di Wizardsardine descrive molteplici salvaguardie fallite e colloca il guasto “across a submodule boundary, which is precisely where reviewers stop looking.” Anche il deep dive tecnico di Steven Geller non ha avanzato affermazioni forti in un senso o nell’altro. La ricostruzione proof-of-concept di DK27ss descrive il problema come “a chain of four flaws, each harmless in appearance.”
Se i drenaggi fossero stati un classico attacco interno o una lunga truffa, la conversazione odierna sarebbe probabilmente molto diversa. L’ultimo grande long con nell’industria Bitcoin è stato probabilmente QuadrigaCX, l’exchange canadese il cui fondatore, Gerald Cotten, fu segnalato come “dead in India” nel 2018 in circostanze misteriose, non molto tempo dopo la scoperta dei fondi mancanti. La Ontario Securities Commission accusa i fondatori di aver sottratto i depositi degli utenti dell’exchange per quasi 170 milioni di CAD per molti anni prima di sparire.
Al contrario, la leadership di Coinkite rimane pubblicamente attiva. L’azienda ha risposto all’incidente, distribuito firmware corretto, aiutato gli utenti nella migrazione e discusso i dettagli tecnici. I fondatori e gli operatori continuano a gestire l’impresa e non sono scomparsi quando i fondi sono svaniti.
Nel frattempo, i fondi della Wave 1 — oltre 1.000 BTC — restano raccolti in tre indirizzi, monitorati da centinaia di ingegneri e probabilmente anche dalle forze dell’ordine, inclusa l’FBI. Se Coinkite stesse portando avanti un attacco di fine carriera in stile “5D chess”, sarebbe stata molto più attenta con i bitcoin rubati. Non li avrebbe raggruppati in pochi indirizzi facilmente tracciabili, e i suoi fondatori probabilmente non sarebbero ancora in giro a discutere l’incidente.
Restano ora diverse domande aperte: se i bitcoin della Wave 1 usciranno dai tre indirizzi monitorati; se Gray o Coinkite commenteranno pubblicamente i risultati sulle firme GPG, cosa che al momento non avevano fatto; e se i proprietari dei seed ancora vulnerabili generati tra il 2021 e la patch di luglio 2026 migreranno i loro fondi prima che gli opportunisti delle ondate successive li raggiungano.
Non ci sono ancora conclusioni finali, e le indagini probabilmente continueranno per anni. Per ora, le prove indicano un fallimento culturale nella comunità Bitcoin maximalist e self-custody, una scarsa educazione diffusa sulle buone pratiche open source e, col senno di poi, un eccesso di fiducia da parte della leadership iniziale di Coinkite.
Questo articolo è apparso per la prima volta su Bitcoin Magazine ed è scritto da Juan Galt.