Per capire questa storia non serve essere programmatori. Serve solo partire da un concetto: le 12 o 24 parole di un wallet Bitcoin devono essere imprevedibili. Se il dispositivo che le crea usa una casualità debole, tutte le altre protezioni — PIN, chip sicuri, custodia senza collegamento a Internet — vengono dopo. È come costruire una porta blindata attorno a una serratura con poche combinazioni.

Premessa
Questo articolo non afferma che il furto sia stato organizzato da persone interne a Coinkite. Espone però elementi che rendono legittimo discutere tre scenari: errore tecnico, negligenza grave o conoscenza interna della vulnerabilità. Dove le prove non bastano, lo diciamo chiaramente.

La trama: dalla nascita di Coinkite al maxi-furto di bitcoin

#000000Peter Gray e Rodolfo Novak lavoravano insieme già prima di Bitcoin, nello studio di applicazioni Ripe Apps. In seguito fondarono Coinkite, azienda canadese che sarebbe diventata conosciuta per prodotti Bitcoin come Opendime e Coldcard. Gray assunse il ruolo tecnico; Novak, conosciuto online come NVK, divenne il volto pubblico dell’azienda.

I protagonisti e i termini chiave
Quattro riferimenti essenziali per capire il caso Coldcard.
Coinkite
L’azienda canadese che produce Coldcard. Negli anni si è fatta conoscere nel mondo Bitcoin per dispositivi orientati alla custodia autonoma dei fondi.
Coldcard
Un portafoglio hardware: cioè un dispositivo fisico usato per creare e custodire le chiavi private necessarie a controllare i propri bitcoin.
Peter D. Gray / DocHex
Cofondatore e responsabile tecnico di Coinkite. Nelle ricostruzioni circolate online il suo nome compare più volte in relazione alla parte tecnica del caso.
Rodolfo Novak / NVK
Cofondatore e volto pubblico di Coinkite. È la figura più visibile dell’azienda nelle comunicazioni pubbliche e sui social.
Cronologia — parte 1
2017–2018
Coldcard entra sul mercato
Il prodotto viene presentato come uno dei portafogli hardware più rigorosi e adatti agli utenti che non vogliono affidare i propri fondi a servizi online.
2019–2020
Compare l’identità “switch” e nasce libngu
Un account pseudonimo chiamato switch pubblica una nuova libreria di programmazione, cioè un insieme di funzioni riutilizzabili, chiamata libngu. La libreria entrerà in seguito nel firmware Coldcard e avrà un ruolo nel percorso usato per generare la casualità del seed.
21 dicembre 2020
NVK scherza sul “retirement attack”
NVK descrive lo scenario in cui un produttore indebolisce di proposito la generazione casuale delle chiavi per recuperare i fondi in futuro. Aggiunge con tono ironico: «In alternativa potrebbero usare i dadi».
28 gennaio 2021
Un errore entra in libngu, la libreria usata per la casualità
Dentro libngu viene inserito un controllo errato. Il programma verifica soltanto se il generatore fisico è dichiarato, non se sia davvero attivo. Può quindi finire per usare un generatore software prevedibile.
1 marzo 2021
Coldcard comincia a usare libngu per creare il seed
La creazione delle 12 o 24 parole smette di passare direttamente dal generatore fisico di Coldcard e viene spostata su libngu. Secondo le analisi successive, è il passaggio che porta il seed nel percorso vulnerabile.
Cronologia — parte 2
Aprile 2021
Prime domande sulla nuova libreria
Nella comunità iniziano a circolare dubbi sulla scelta di sostituire codice crittografico molto studiato con libngu, una libreria nuova e poco esaminata da revisori indipendenti. La documentazione primaria di questi primi dubbi resta però incompleta.
Maggio 2025
Un nuovo avvertimento sul generatore casuale
Lo sviluppatore James O’Beirne racconta di aver esaminato il firmware, di aver dubitato che Coldcard usasse davvero il generatore fisico e di aver consigliato di eliminare libngu. Dice di essersi sentito rispondere che, se ci fosse stato un problema, «lo avremmo già saputo».
30 luglio 2026
Comincia il maxi-furto di bitcoin
Numerosi indirizzi vengono svuotati in ondate coordinate. La velocità della prima operazione fa pensare che gli attaccanti avessero preparato in anticipo l’elenco dei possibili seed vulnerabili e gli strumenti per controllare quali portafogli contenessero fondi.
31 luglio–agosto 2026
Correzioni, retromarce e nuovi problemi
Coinkite pubblica firmware corretti, ma i seed già creati restano vulnerabili e devono essere sostituiti. Nei giorni successivi vengono aperte ulteriori correzioni per la gestione degli errori del generatore fisico.

Il messaggio di NVK del dicembre 2020
Traduzione: «Scommetto che la gente riuscirà a perdere i propri bitcoin da sola prima che un produttore tenti un retirement attack. In alternativa, si potrebbero semplicemente usare i dadi». All’epoca era una battuta. Dopo il 2026, viene letta con tutt’altro tono.

La scelta che fa nascere il dubbio: perché proprio la creazione del seed?

Alekos Filini è uno sviluppatore Bitcoin italiano. Dopo l’esplosione del caso ha analizzato la cronologia del codice Coldcard e pubblicato un rapporto riproducibile su GitHub. Il suo obiettivo dichiarato non è accusare qualcuno, ma mostrare cosa fece realmente la modifica del 1° marzo 2021.

La sua osservazione più importante non è semplicemente «il generatore era sbagliato». È più precisa: la migrazione non spostò tutto nello stesso modo. Molte funzioni continuarono a usare il generatore fisico sicuro. Solo due parti particolarmente delicate vennero spostate sul nuovo percorso: il modulo comune della casualità e la creazione del seed.

La modifica, tradotta dal codice all’italiano
Gruppo A
Le funzioni che usavano la vecchia libreria tcc.random furono sostituite meccanicamente con ngu.random. È la parte normale della migrazione.
Gruppo B
Le funzioni che già usavano direttamente il generatore fisico ckcc.rng_bytes furono lasciate in pace: copie di sicurezza, cancellazione sicura dei file, dati utente e altre operazioni continuarono sul percorso fisico.
Gruppo C: l’anomalia
Soltanto seed.py e random.py vennero spostati dal percorso fisico a ngu.random. Sono proprio i due file da cui dipendeva la creazione delle parole del portafoglio.

Questo non dimostra un’intenzione criminale. Dimostra però che non fu una sostituzione automatica di tutti i vecchi nomi. Fu una scelta selettiva: altre funzioni rimasero sul generatore fisico, mentre la parte più importante per la sicurezza del wallet cambiò strada e non tornò più indietro per oltre cinque anni.

Filini mostra anche perché i test non si accorsero del problema. Le prove controllavano che i numeri sembrassero casuali — ben distribuiti e senza ripetizioni evidenti — non che fossero veramente imprevedibili. Un generatore software deterministico può superare facilmente questo tipo di test.

Leggi l’analisi completa di Alekos Filini su GitHub. Il rapporto include i comandi con cui chiunque può ripetere le verifiche.

Il mistero di “switch”: pseudonimo, profilo e firma digitale

La libreria libngu era pubblicata sotto il nome switch, un’identità pseudonima. Nel mondo Bitcoin usare pseudonimi non è raro. Il problema nasce quando quella libreria entra nel punto più delicato di un prodotto di sicurezza e, anni dopo, si scopre un legame tecnico molto forte con il responsabile tecnico dell’azienda.

Peter Gray prima di Coinkite
Profilo pubblico storico di Peter Gray, all’epoca cofondatore e responsabile tecnico di Ripe Apps. Nella schermata compare anche un numero verificato mascherato con finale “44”, dettaglio poi confrontato con altri account. La coincidenza, da sola, non prova nulla.

Vecchi post mostrano switch parlare di libngu, ringraziare DocHex (Peter Gray) per modifiche al codice e ipotizzare che la libreria potesse essere utile a Coldcard. In seguito, Coldcard ringraziò pubblicamente switch per alcune funzioni del firmware. Questo crea il primo ponte visibile tra lo pseudonimo, Peter Gray e il prodotto. Nel dialogo pubblico su GitHub del 21 ottobre 2020, DocHex chiede a switch se Coinkite possa usare il codice e inviare modifiche.

I vecchi post di switch
I messaggi precedono il disastro di anni e mostrano un rapporto diretto con DocHex, libngu e Coldcard.

Coldcard ringrazia switch
Uno degli archivi sociali che riportano il legame pubblico fra l’account switch e gli aggiornamenti Coldcard.

Il passaggio successivo non riguarda fotografie o somiglianze. Riguarda una firma crittografica. Una firma GPG è un sigillo digitale: per crearla serve la chiave privata corrispondente. Il nome scritto su un commit può essere falsificato in pochi secondi; una firma valida no, a meno che la chiave privata non sia stata condivisa.

La schermata originale della verifica GPG
Il riepilogo tecnico pubblicato online mette a confronto commit firmati come switch e commit firmati come Peter D. Gray.

Che cosa dice, in italiano
La stessa chiave firma due identità
  • L’account switch non pubblicava una propria chiave GPG.
  • La chiave associata a Peter D. Gray firma 58 commit attribuiti a switch.
  • La stessa chiave firma anche 19 commit pubblicati con il nome Peter D. Gray.
  • Fra i commit firmati compare anche il codice relativo alla scelta del generatore casuale.
Conclusione corretta
Le due identità hanno usato la stessa chiave privata di firma. L’ipotesi più semplice è che fossero gestite dalla stessa persona. Una spiegazione alternativa richiederebbe che la chiave privata personale di Gray fosse condivisa con qualcun altro.

È qui che la vecchia conversazione tra DocHex e switch cambia significato: se le identità erano controllate dallo stesso operatore, il responsabile tecnico di Coinkite avrebbe chiesto pubblicamente al proprio pseudonimo il permesso di usare la libreria. Non è una prova del furto. È però una domanda seria sulla reale indipendenza della revisione del codice.

Gli avvertimenti prima del disastro

Il punto più pesante delle nuove ricostruzioni non è soltanto che il bug fosse pubblico. È che, secondo testimonianze e post pubblici, almeno due persone avevano già sollevato dubbi prima dei furti.

Il dubbio del 2021

Una segnalazione riportata dalla comunità avrebbe contestato già nell’aprile 2021 la sostituzione del vecchio codice crittografico, molto studiato, con libngu, una libreria nuova e con una cronologia di modifiche poco chiara. Al momento non disponiamo in questa pagina dell’intera conversazione originale verificabile, quindi la trattiamo come elemento da confermare.

L’avviso del 2025

Più documentato è il racconto di James O’Beirne. Dice di aver controllato la provenienza dei numeri casuali nel maggio 2025, di aver trovato sospetta libngu e di aver espresso dubbi sul reale utilizzo del generatore fisico. Consigliò di rimuovere la libreria. La risposta che riferisce di aver ricevuto fu: se ci fosse stato un problema, «lo avremmo già saputo».

Questa frase non prova che Coinkite conoscesse la vulnerabilità esatta. Prova però che il tema della sorgente casuale era stato sollevato più di un anno prima del drenaggio. Da quel momento la domanda non è più soltanto «come avete potuto non accorgervene?», ma anche «che cosa venne verificato dopo quell’avvertimento?»

La correzione che ha richiesto altre correzioni

Dopo il furto Coinkite ha pubblicato firmware d’emergenza. Nei giorni successivi, il repository ufficiale ha ricevuto ulteriori proposte per gestire correttamente gli errori del generatore fisico. Questo non significa che il dispositivo venisse distrutto per sempre da un singolo errore; significa però che una correzione preparata sotto pressione ha avuto bisogno di un secondo giro di interventi.

Che cosa può essere successo? Tre scenari

La storia non è completa. Ma le informazioni disponibili permettono di costruire tre ipotesi, dalla più ordinaria alla più grave.

1
Errore tecnico catastrofico
Un controllo scritto male collega la creazione del seed alla funzione sbagliata. I test vedono numeri apparentemente casuali, ma non capiscono che sono prevedibili. Il difetto può restare nascosto per anni.
2
Cattiva revisione e segnali ignorati
Poche persone controllano più ruoli, la revisione non è davvero indipendente e gli avvisi del 2021 e del 2025 non portano a una correzione efficace.
3
Qualcuno sapeva
La prima ondata sembra preparata prima dell’allarme pubblico. Questo non prova un coinvolgimento interno, ma lascia aperte domande su chi conoscesse il difetto.

Quasi duemila bitcoin e la rabbia scritta nella blockchain

Bilancio provvisorio
≈ 1.816 BTC
Rimossi da oltre 5.200 indirizzi secondo i tracciamenti riportati il 4 agosto. Il totale resta provvisorio e potrebbe cambiare.
Le prime cifre parlavano di 594 BTC, poi di oltre mille, poi di più ondate. Il conteggio è cresciuto man mano che gli analisti collegavano nuovi indirizzi e nuovi attaccanti al difetto Coldcard.

Dietro questi numeri non ci sono soltanto grafici. Ci sono persone che avevano lasciato i propri fondi fermi per anni, convinte di avere scelto uno dei sistemi di custodia più sicuri disponibili.
Attenzione
La sezione seguente contiene riferimenti a minacce violente e alla perdita di ingenti risparmi. Questi contenuti vengono riportati esclusivamente per documentare il caso Coldcard e mostrare il clima di tensione generato dalla vicenda.

Se preferisci evitare questo tipo di contenuti, puoi saltare la parte successiva dell’articolo.

Un messaggio inviato direttamente all’indirizzo del ladro
Il testo è stato registrato nella blockchain tramite OP_RETURN. Non sappiamo chi lo abbia scritto e non costituisce una prova sull’identità dell’attaccante. Vedi il post originale che segnalò la transazione.

Traduzione del messaggio

«Ora so chi sei. Verrò lì e ti accoltellerò agli occhi in diretta davanti al mondo. Non soffrirai soltanto per un minuto: ti renderò paraplegico, ti farò soffrire per settimane e morire di fame mentre noi festeggiamo. Te la sei cercata, A.»

È un testo terribile. Ma aiuta a capire il livello umano del disastro: qualcuno potrebbe aver perso i risparmi di una vita e ha scelto di lasciare la propria rabbia in un registro che nessuno può cancellare.

“Non fidarti, verifica”: che cosa cambia per chi custodisce bitcoin

Il caso Coldcard non dimostra che l’autocustodia sia sbagliata. Dimostra che anche l’autocustodia può avere un punto di fiducia nascosto: il produttore che genera il seed.

Generare la propria entropia
Una seed può essere generata partendo da entropia fisica, per esempio con dei dadi, riducendo la dipendenza dal generatore casuale del dispositivo. La procedura deve essere eseguita correttamente e offline: lanci indipendenti, risultati privati e nessuna fotografia o copia salvata online.
La guida spiega la generazione di 256 bit di entropia, il calcolo del checksum e la conversione nella seed BIP39.
Multifirma con produttori diversi
In una configurazione 2-su-3, il difetto o la compromissione di una singola chiave non è sufficiente per spendere i fondi. La protezione contro problemi specifici di un produttore è davvero efficace solo usando dispositivi di aziende differenti e backup separati.
Aggiornare il firmware non basta
Aggiornare il firmware di una Coldcard vulnerabile impedisce al dispositivo di generare nuovi seed deboli, ma non rende sicure le parole già generate. In quel caso bisogna creare un nuovo seed in condizioni sicure e spostare i fondi nel nuovo wallet.
L’aggiornamento corregge la generazione futura: non modifica e non mette in sicurezza un seed esistente.

Un vecchio messaggio del 2021 che oggi fa impressione
Nello scambio, Coldcard descrive un “retirement attack” come il caso in cui i creatori del progetto potrebbero avere o inserire un “errore” nella generazione dell’entropia per recuperare i fondi in seguito. È molto simile al tipo di rischio che si è poi materializzato nel 2026: un difetto nella generazione del seed che rende le chiavi ricostruibili. Non dimostra che l’errore fosse intenzionale, ma è un altro documento che, riletto oggi, fa inevitabilmente nascere domande

Traduzione del passaggio centrale

«È quando i creatori del progetto potrebbero avere un “errore” nella generazione dell’entropia, da usare per recuperare i fondi in seguito». Subito sopra, Coldcard suggeriva di generare il seed con i dadi se l’utente non si fidava del generatore casuale del dispositivo.

Coldcard

La nostra conclusione: qualcosa non torna

Non abbiamo prove sufficienti per affermare che il furto sia stato organizzato dall’interno di Coinkite. Ma, dopo aver ricostruito la storia, sarebbe altrettanto poco serio liquidare tutto come un semplice incidente sfortunato.

Una libreria poco esaminata entra nel punto più delicato del sistema. La creazione del seed viene spostata proprio sul percorso vulnerabile. Emergono identità pseudonime collegate tecnicamente alle stesse persone. Alcuni segnali vengono sottovalutati, altri apparentemente ignorati. Quando il caso esplode, arrivano messaggi minimizzanti, correzioni, post cancellati e una comunicazione che lascia spazio a dubbi ancora maggiori.

Presi singolarmente, molti di questi elementi possono avere una spiegazione innocente. Presi tutti insieme, però, fanno sentire una chiara puzza di bruciato.

La nostra impressione è che questa storia sia tutt’altro che conclusa. Le analisi del codice continueranno, gli indirizzi verranno seguiti sulla blockchain, vecchi messaggi e modifiche saranno riesaminati e nuove testimonianze potrebbero cambiare ancora il quadro. Forse emergerà soltanto una catena impressionante di errori, superficialità e pessime decisioni. Forse verrà fuori qualcosa di più grave. Oggi non possiamo dirlo.

Possiamo però dire una cosa: chi custodisce bitcoin non dovrebbe mai essere costretto a fidarsi ciecamente di un produttore, di una reputazione o di uno slogan. “Don’t trust, verify” vale anche per gli hardware wallet. E il caso Coldcard lo ha ricordato nel modo più doloroso possibile.

Fonti principali e limiti della ricostruzione

Alcuni elementi — in particolare la segnalazione del 2021 e il presunto gruppo di messaggistica creato nel 2025 — circolano in ricostruzioni pubbliche ma non sono accompagnati qui da documentazione primaria completa. Sono quindi trattati come piste, non come fatti conclusivi.

Segnali dal Villaggio è curata da Alessandro Angeli e Valerio Dalla Costa.