Premessa
Zia Clorinda è incazzata, ed ha pure ragione, ripete in continuazione in modo ossessivo «Ma questa entropia che ca%%o è!». Per chi non conoscesse zia Clorinda consiglio di leggere l’articolo Mia zia zitella usa Bitcoin .
Dai consigli ricevuti
- Tutti gli dicevano non detenere BTC negli exchange crea un tuo portafoglio personale, e cosi ha fatto.
- Usa un wallet su un computer sicuro da dedicare esclusivamente ai Bitcoin, con orgoglio mi ha mostrato un bellissimo e scintillante portatile.
- Non è finita qui, non detenere la chiave privata sul computer, firma le transazioni attraverso un Hardware Wallet cosi sei al sicuro visto che la chiave privata è memorizzata nell’HW, e così ha fatto.
- Compra il top dell’Hardware Wallet quello che è completamente sconnesso air-gapped, prendi il COLCARD, anche in questo caso zia Clorinda investe per una mini scatoletta di plastica dal contenuto ignoto.
- Crea un seed di 24 parole, massima sicurezza che ottieni dal protocollo BIP-39, fidati del COLCARD fa tutto in automatico!
I dati sono allarmanti vengono drenati bitcoin
AGGIORNAMENTO del 01/08/2026: fonte Galaxy Research sono stati drenati 1.367,05 BTC (~88,6 milioni di dollari) su 4.585 indirizzi

Nella notte del 30 luglio un’operazione automatizzata ha prosciugato 500 indirizzi single-sig in quattro blocchi consecutivi. Gli indizi convergono su chiavi private nate deboli. Tra le vittime nessun wallet multisig e nessun indirizzo taproot. La fonte .
Comunicati di sicurezza del produttore:
Cosa è successo
Siamo di fronte a un dispositivo hardware COLCARD, il quale ha generato un’entropia debole, rendendo possibile risalire alla chiave privata a partire da quella pubblica. La blockchain è pubblica e gli indirizzi sono stati oggetto di analisi, probabilmente già da diverso tempo. Una volta individuati gli UTXO, sono stati impartiti gli ordini di spostamento, sottraendoli ai legittimi proprietari.
Si è cercato di sovrascrivere una variabile di sistema responsabile della generazione di numeri casuali, creando un errore di compilazione dovuto alla presenza di duplicati. L’errore è stato reso silente.
L’orrore del codice coldcard , è stata inserita una pezza, voluta o non voluta, mai verificata nel corso degli anni, tale che l’errore di blocco in fase di compilazione ha comportato la disattivazione del generatore di numeri casuali TRNG. Al momento della generazione dell’entropia, essendo il TRNG hardware disabilitato, il software ha applicato un algoritmo pseudocasuale più debole denominato Yasmarang, previsto in MicroPython.
#ifdef MICROPY_PY_STM
// ports/stm32/rng.c
extern uint32_t rng_get(void);
# define CHIP_TRNG_SETUP()
# define CHIP_TRNG_32() rng_get()
# ifndef MICROPY_HW_ENABLE_RNG
# error "get a HW TRNG plz" // Non si attiva mai MICROPY_HW_ENABLE_RNG(0) è definito (a 0)
# endif
#endif
Cosa concretamente rappresenta un bug, una svista di programmazione o una volontà del produttore? Ipotesi di bypassare l’entropia del processore hardware partendo dall’assunto che è qualcosa non dominabile e soggetta a bug ignoti, delegare ad un produttore terzo l’uso del random rispetto al codice scritto in proprio. Altra ipotesi di dolo voluto per predisporsi ad azioni di attacco bruto per drenare criprovaluta. Chiaramente Cointike ha necessità di affermare che trattasi di un bug del software cercandosi di rendersi estranea da eventuale dolo, qui siamo nel campo forense nella determinazione di responsabilità.
L’azienda continua a vendere le sue scatolette di plastica infischiandosene del bug, preoccupandosi solo di avvisare.

Tutti ora consigliano
Zia Clorinda è ancora più incazzata perchè i nuovi consigli sono da nerd:
- Bisognava creare un seed con un’entropia forte e con Passphrase chiamata anche impropriamente come 25° parola.
- Ma non ti preservi, bisogna creare un multisig.
- Bisogna che gli indirizzi siano di tipo Taproot non sono stati attaccati.
Pillole di entropia
Iniziamo dal lancio di dadi, che devono essere obbligatoriamente calibrati: vanno bene i dadi da casinò. Prendendo invece dadi comuni come quelli del Monopoli, vedrai che non sono calibrati; avrai quindi più probabilità di ottenere il numero 1 e il numero 6.

Un dado a 6 facce fornisce ~2,58496250072116 bit di entropia per lancio log₂(6).
Standard BIP39
Entropia per una seed phrase BIP39:
| Lunghezza Seed | Entropia | Divisione (/32) | Checksum (bit) | Bit Totali |
|---|---|---|---|---|
| 12 parole | 128 bit | 128 / 32 | 4 | 132 |
| 15 parole | 160 bit | 160 / 32 | 5 | 165 |
| 18 parole | 192 bit | 192 / 32 | 6 | 198 |
| 21 parole | 224 bit | 224 / 32 | 7 | 231 |
| 24 parole | 256 bit | 256 / 32 | 8 | 264 |
Il checksum in BIP39 serve solo come controllo di integrità per rilevare errori nella seed phrase.
Lancio Dadi, Entropia e Sicurezza BIP39
| Seed | Entropia Richiesta (BIP39) | Lanci Minimi (D6) | Lanci con Anti-Bias | Probabilità di Indovinare il Seed |
|---|---|---|---|---|
| 12 | 128 bit | 50 | 60 | $\frac{1}{2^{128}} \approx \frac{1}{3.4 \times 10^{38}}$ |
| 15 | 160 bit | 62 | 72 | $\frac{1}{2^{160}} \approx \frac{1}{1.5 \times 10^{48}}$ |
| 18 | 192 bit | 75 | 85 | $\frac{1}{2^{192}} \approx \frac{1}{6.3 \times 10^{57}}$ |
| 21 | 224 bit | 87 | 98 | $\frac{1}{2^{224}} \approx \frac{1}{2.7 \times 10^{67}}$ |
| 24 | 256 bit | 99 | 110 | $\frac{1}{2^{256}} \approx \frac{1}{1.2 \times 10^{77}}$ |
Probabilità di Indovinare un Seed da 24 Parole (256 bit)
Formula Base
$$ P = \frac{1}{2^{256}} $$
Passaggio 1: Logaritmo in Base 10
Per convertire $$ 2^{256} $$ in notazione scientifica, usiamo:
$$ \log_{10}(2^{256}) = 256 \times \log_{10}(2) $$
$$ \log_{10}(2) \approx 0.3010299957 $$
$$ 256 \times 0.3010299957 = 77.06367888 $$
Quindi:
$$ 2^{256} = 10^{77.06367888} $$
Passaggio 2: Separazione Mantissa ed Esponente
$$ 10^{77.06367888} = 10^{0.06367888} \times 10^{77} $$
$$ 10^{0.06367888} \approx 1.158 $$
Quindi:
$$ 2^{256} \approx 1.158 \times 10^{77} $$
Passaggio 3: Valore Completo
$$ 2^{256} \approx 115.792.089.237.316.195.423.570.985.008.687.907.853.269.984.665.640.564.039.457.584.007.913.129.639.936 $$
Passaggio 4: Probabilità Finale
$$ P = \frac{1}{2^{256}} = \frac{1}{1.158 \times 10^{77}} $$
$$ P \approx 8.64 \times 10^{-78} $$
$$ P \approx 0.000…000864 \quad (\text{76 zeri prima dell'8}) $$
La probabilità di indovinare casualmente una chiave a 256 bit al primo colpo è così microscopica da essere praticamente zero.
Riepilogo Tutti i Seed
| Seed | Entropia | Passaggio Chiave | 2^n (approssimato) | Probabilità P |
|---|---|---|---|---|
| 12 | 128 bit | 128 × 0.301 = 38.53 | $3.4 \times 10^{38}$ | $\approx 2.94 \times 10^{-39}$ |
| 15 | 160 bit | 160 × 0.301 = 48.16 | $1.46 \times 10^{48}$ | $\approx 6.85 \times 10^{-49}$ |
| 18 | 192 bit | 192 × 0.301 = 57.80 | $6.28 \times 10^{57}$ | $\approx 1.59 \times 10^{-58}$ |
| 21 | 224 bit | 224 × 0.301 = 67.43 | $2.69 \times 10^{67}$ | $\approx 3.72 \times 10^{-68}$ |
| 24 | 256 bit | 256 × 0.301 = 77.06 | $1.16 \times 10^{77}$ | $\approx 8.64 \times 10^{-78}$ |
La vera entropia di COLCARD
ColdCard non aveva 256 bit, aveva 40 bit di vera entropia in Mk3, e 72 bit in Mk4/Mk5. Con una GPU moderna, è possibile esplorare tutto lo spazio delle chiavi ECDSA 2^40 combinazioni in pochi minuti per il ColdCard Mk3. Per i modelli Mk4/Mk5 (72 bit), il tempo stimato sale da alcune settimane fino a un anno, teoricamente ancora vulnerabile, ma con uno spazio di ricerca numericamente molto più robusto.
| Modello ColdCard | Entropia reale | Spazio di ricerca | Tempo stimato (GPU moderna) |
|---|---|---|---|
| Mk3 | 40 bit | $2^{40} \approx 1,1 \times 10^{12}$ | Pochi minuti |
| Mk4/Mk5 | 72 bit | $2^{72} \approx 4,7 \times 10^{21}$ | Settimane → Anni |
Software per generare il seed dal lancio dei dadi
Analizziamo due software diffusi per ottenere il seed dal lancio dei dadi. Ian Coleman Mnemonic Code Converter ed il software scritto in python consigliato dalla stessa casa di COLCARD rolls.py .
Con lo stesso lancio di dati si ottengono seed differenti, gli algoritmi alla base sono differenti.
rolls.py, qualsiasi input, di qualsiasi lunghezza, viene trattato in un hash a 256 bit tramite SHA-256. È un procedimento a effetto valanga: cambiare anche un solo carattere dell’input stravolge completamente l’hash risultante.
iancoleman.io Dice [1-6] 62535634, nessun hashing sull’entropia grezza. Il tool tratta l’intera sequenza di lanci come un singolo numero in base 6, lo converte in un grande intero (BigInt) e ne prende la rappresentazione binaria diretta come entropia finale.
Ian Coleman mette esplicitamente in guardia gli utenti: You are not a good source of entropy. Secondo le sue stesse istruzioni, non bisogna mai fidarsi della propria intuizione sulla casualità.
Gli algoritmi sono entrambi validi, ma per i paranoici bisogna essere più robusti magari adottando HKDF-SHA512 applicato alla generazione di entropia BIP39, forse merita un’approfondimento.
