Chi si avvicina a un portafoglio Bitcoin incontra presto una frase che dovrebbe tranquillizzare e di solito ottiene il contrario: è praticamente impossibile che qualcun altro generi il tuo stesso seed. Suona come una scappatoia. Non dice impossibile, dice praticamente, e chi legge sente la differenza: una possibilità c'è, per quanto piccola, e le cose piccole ogni tanto capitano a qualcuno. Perché non dovrebbero capitare proprio a me?
L'obiezione è ragionevole e merita una risposta, non una rassicurazione. Qui sotto si prova a darla per intero: quanto è grande davvero quel numero, quanto vale la paura di scontrarsi con un altro, quanto costerebbe a un processo fisico qualunque anche solo attraversare quello spazio, e infine dove il conto si rompe per davvero, perché un punto fragile c'è e non è quello che sembra. Con i conti in mano si risponde per ultima alla domanda pratica che tutti fanno, se dodici parole bastino o ne servano ventiquattro.
Resta poi una seconda metà della questione, che i conti non toccano: le procedure, i meccanismi e gli strumenti con cui quei numeri vengono davvero prodotti. Un impianto teorico solido dice quanto è grande lo spazio, non garantisce che chi lo estrae lo abbia usato tutto. Approfondire le basi serve, ma quella convinzione resta appesa a un'implementazione robusta e alla disciplina che questi temi richiedono.
Un numero, non una parola d'ordine
La prima cosa da spostare è l'immagine. Un seed non è una password scelta da qualcuno: è un numero estratto a sorte da un insieme di dimensione fissata. Le password si somigliano fra loro perché le sceglie una testa umana, e le teste umane pescano nello stesso angolino minuscolo dei nomi propri e delle date. Un seed generato bene non pesca in nessun angolo: prende un valore qualunque fra tutti quelli disponibili, con la stessa probabilità.
Quanti sono. Un seed da 256 bit di entropia vale
2²⁵⁶ ≈ 1,16 × 10⁷⁷
cioè un 116 seguito da settantacinque zeri. Il paragone canonico è con gli atomi dell'universo osservabile, che sono all'incirca 10⁸⁰: lo spazio dei seed è circa un millesimo di quel numero. Non «tanti»: senza misura nell'esperienza.
Va detto subito, perché torna alla fine, che non tutti i seed sono da 256 bit. Le dodici parole che quasi tutti i portafogli propongono per prime ne portano 128, e le ventiquattro ne portano 256. Sono due numeri diversi e reggono conti diversi.
«Qualcuno però la lotteria la vince»
L'obiezione vera, quella che l'intuito oppone davvero, non è che la cosa sia improbabile. È che il jackpot esce lo stesso, tutti gli anni, e a qualcuno tocca. Se un evento da uno su seicento milioni capita regolarmente, perché uno su 10⁷⁷ dovrebbe essere di un'altra natura?
Chi ragiona così sta già facendo il conto giusto, e conviene riconoscerlo invece di correggerlo. Al SuperEnalotto le combinazioni possibili sono
C(90, 6) = 622.614.630
cioè una probabilità di circa 1,6 × 10⁻⁹ per schedina. Il jackpot esce non perché quel numero sia grande abbastanza, ma perché a ogni concorso si giocano decine di milioni di schedine, e i concorsi si ripetono da decenni. L'intuito, insomma, non guarda mai la probabilità da sola: la moltiplica per il numero di tentativi. È esattamente il metodo corretto. Il punto è applicarlo fino in fondo anche all'altro caso.
Lo stesso ragionamento, applicato ai seed
Applicarlo per bene richiede un'accortezza. La domanda non è «qualcuno indovina il mio seed», che è una ricerca mirata su un bersaglio fisso, molto più costosa e di cui si occupa il post sul calcolo quantistico. La domanda è: fra tutti i seed che verranno mai generati al mondo, ce ne saranno due uguali? È il problema del compleanno, ed è la domanda giusta perché è quella che regala all'attaccante tutte le coppie possibili invece di una sola.
Con N seed generati e uno spazio di k bit, la probabilità che due qualsiasi coincidano è all'incirca
p ≈ N² / 2^(k+1)
Serve un N dichiarato. Prendiamone uno largo: un miliardo di seed mai creati, che è più dei portafogli esistiti finora messi insieme, contando pure quelli generati e buttati.
N = 10⁹ k = 128 → p ≈ 1,5 × 10⁻²¹
N = 10⁹ k = 256 → p ≈ 4,3 × 10⁻⁶⁰
Adesso quei due numeri si possono confrontare con la lotteria, che è la scala di cui il lettore ha esperienza. Vincere due volte di fila il SuperEnalotto sta attorno a 2,6 × 10⁻¹⁸. La collisione fra un miliardo di seed da 128 bit è circa millesettecento volte più rara di così. Con 256 bit servono quasi sette vincite consecutive per arrivare allo stesso ordine.
E se il numero di un miliardo sembrasse tirato, si può prendere un limite assurdo: ogni essere umano mai vissuto, centodiciassette miliardi di persone, che genera mille seed a testa. Fanno 1,17 × 10¹⁴ seed, e la probabilità di una collisione da qualche parte in tutta la storia della specie diventa 2 × 10⁻¹¹ per i seed da 128 bit e 6 × 10⁻⁵⁰ per quelli da 256. Il primo dei due, va notato, non è più un numero impronunciabile: è circa una possibilità su cinquanta miliardi, cioè un'ipotesi grottesca che porta comunque un rischio ottanta volte più piccolo che vincere il SuperEnalotto giocando una sola schedina.
Quanto costa anche solo contare
C'è un modo di rendere quel numero meno astratto, e non passa dalla crittografia. Passa dalla fisica, e in particolare dal principio di Landauer: cancellare un bit di informazione ha un costo energetico minimo, che a temperatura ambiente vale
k·T·ln2 ≈ 2,9 × 10⁻²¹ J
È un limite inferiore, non una stima di quel che costa oggi: è quanto costerebbe a una macchina perfetta, che non scalda, non ha attriti e non spreca nulla. Nessuno può fare meglio.
Prendiamo allora l'operazione più stupida che si possa immaginare, che non rompe niente e non prova niente: contare. Scorrere una volta sola tutti i valori possibili di un seed da 256 bit, senza nemmeno controllare se corrispondono a qualcosa.
2²⁵⁶ × 2,9 × 10⁻²¹ J ≈ 3,3 × 10⁵⁶ J
Il Sole, in tutta la sua esistenza, dal primo giorno all'ultimo, emetterà all'incirca 1,2 × 10⁴⁴ joule. Il conteggio ne chiede quasi tremila miliardi di volte tanto. Non l'energia disponibile sulla Terra, non quella che l'umanità saprebbe raccogliere: tremila miliardi di stelle come la nostra, spese per intero, per fare la cosa più inutile del mondo.
Conviene dire anche dove l'affermazione smette di reggere, perché il confine si sposta spesso di un passo di troppo. Contro l'energia dell'universo intero il conto non tiene: la sola materia ordinaria dell'universo osservabile vale qualcosa come 10⁷⁰ joule, e 10⁵⁶ ci sta dentro comodamente. La frase esatta è che nessun processo confinato in un sistema stellare potrà mai attraversare quello spazio, il che basta e avanza, e ha il pregio di essere vera.
E vale per 256 bit. A 128 bit lo stesso conto darebbe 9,8 × 10¹⁷ joule, cioè circa quattordici ore di consumo energetico mondiale: la termodinamica, da sola, lì non dimostra niente. Quello che protegge i 128 bit non è il limite ideale ma la distanza fra l'ideale e il reale. L'hardware più efficiente mai costruito per ripetere un'unica operazione, gli ASIC che macinano hash per il mining, consuma circa 1,5 × 10⁻¹¹ joule per hash: cinque miliardi di volte il minimo di Landauer. Con quella macchina, 2¹²⁸ operazioni costerebbero 5 × 10²⁷ joule: otto milioni di anni di consumo energetico mondiale, là dove alla macchina perfetta ne bastavano quattordici ore. Non è un limite di principio come quello di prima: è una distanza che nessun budget concepibile copre, e la differenza va detta.
Una scommessa che si fa già
Resta la parte che i numeri non toccano, cioè il fastidio di appoggiarsi a qualcosa che non è vietato ma soltanto improbabile. Ed è una condizione già familiare.
L'aria di una stanza, ventiquattr'ore al giorno, potrebbe raccogliersi tutta in una metà, lasciando l'altra vuota. Nessuna legge lo proibisce: le molecole si muovono a caso, e quella configurazione è una fra le tante. In una stanza da trenta metri cubi le molecole sono circa 7 × 10²⁶, e la probabilità che stiano tutte in metà stanza è 2 elevato a meno quel numero, un valore che non ha nemmeno senso scrivere per esteso. Il diavoletto di Maxwell racconta per esteso perché il secondo principio funziona così: è statistico, non assoluto.
Serve a stabilire una cosa sola, ed è bene dire quale: che «non vietato ma non accade» non è un cavillo inventato dai crittografi per non rispondere. È una categoria vecchia quanto la fisica, e ci si vive dentro senza accorgersene. Il gas non misura niente di ciò che riguarda i seed: la sua improbabilità è di un altro ordine, incomparabilmente più remota, e chi lo usasse come metro direbbe una cosa falsa.
La misura, semmai, va cercata dalla parte opposta, fra le cose che capitano più spesso di una collisione e che nessuno considera un motivo per cambiare vita. Essere colpiti da un fulmine, nell'arco di un'esistenza, sta attorno a una probabilità su decine di migliaia: più di sedici ordini di grandezza sopra la collisione di cui parliamo, e non risulta che qualcuno resti in casa per questo. La differenza fra 10⁻⁵ e 10⁻²¹ non si sente, ma è la stessa che passa fra il guardarsi da un temporale e il preoccuparsi che l'aria esca dalla stanza.
Il paragone utile, allora, è con i rischi vicini invece che con quelli remoti. Perdere le parole, trascriverle in modo che fra dieci anni non si rileggano, tenerle su un dispositivo già compromesso, morire senza che nessuno sappia dove stanno: sono tutte cose enormemente più probabili di una coincidenza, e sono quelle contro cui vale la pena spendere attenzione. La collisione non è il primo rischio della lista. Non è nemmeno l'ultimo: è fuori dalla lista.
Il punto dove il conto può saltare
Tutto quanto sopra poggia su una condizione sola, mai dichiarata finora: che il sorteggio sia stato un sorteggio vero. La probabilità 1/2²⁵⁶ non è una proprietà del seed, è una proprietà del modo in cui è nato. Se il generatore non era casuale davvero, i valori che poteva produrre non sono 2²⁵⁶ ma quanti ne permetteva il suo difetto, e ogni conto di questa pagina va rifatto con quel numero al posto dell'altro.
Non è un'ipotesi di scuola. Nell'agosto del 2013 un difetto del generatore di numeri casuali di Android colpì i portafogli Bitcoin che giravano su quei telefoni: le chiavi nascevano da uno spazio molto più piccolo di quello nominale. Lo stesso componente difettoso guastava le cose in due punti distinti, la nascita delle chiavi e la firma delle transazioni, e i furti che seguirono passarono soprattutto dal secondo, la ripetizione del nonce.
Alla fine di luglio del 2026 il produttore del portafoglio hardware Coldcard ha pubblicato un avviso di sicurezza che riguarda esattamente questo punto. Il difetto risale al marzo del 2021 e sta in una riga di codice che non ha niente a che vedere con la crittografia: una direttiva del preprocessore controllava che un'opzione fosse definita invece di controllare che valesse sì. L'opzione era definita a zero, perché quel dispositivo usa un proprio collegamento al generatore hardware, e il risultato è che il firmware si è legato al generatore hardware in un punto e ha compilato un ripiego scritto in software nell'altro. Quel ripiego veniva avviato una volta sola, a partire dal numero di serie del chip e dallo stato dell'orologio interno, e dopo non raccoglieva più niente: da lì in poi ogni valore seguiva da quello prima per pura aritmetica.
I bit rimasti, secondo le stime preliminari del produttore e dei ricercatori che hanno ricostruito il guasto, erano una quarantina sui modelli più vecchi e settanta circa su quelli recenti, al posto dei 128 di un seed da dodici parole. Sono numeri che cambiano tutto: 2⁴⁰ vale circa 1,1 × 10¹², cioè uno spazio che una macchina percorre per intero. Non è servito attaccare nessuna serratura, e nessun dispositivo è stato toccato: più di mille portafogli sono stati svuotati in meno di un'ora, ricostruendo le chiavi da fuori. A conferma che il problema sembra legato all'entropia della sorgente di numeri: chi aveva aggiunto lanci di dado propri alla generazione, almeno una cinquantina, oppure una passphrase solida, non è stato esposto. Quali modelli e quali versioni siano interessati sta nell'avviso, in coda a questa pagina.
Vale la pena fermarsi su cosa non è successo. Nessuna collisione, nessuna coincidenza sfortunata, niente che assomigli alla paura da cui parte questa pagina. Il conto di prima, quello che nemmeno il Sole basta a pagare, riguarda un insieme da 2²⁵⁶ elementi. Qui l'insieme ne aveva 2⁴⁰, e il resto della matematica era intatto: la crittografia ha continuato a funzionare esattamente come promesso, su uno spazio che qualcun altro aveva già svuotato.
Il rischio, insomma, non è la coincidenza. È la nascita. Ed è una buona notizia, perché una coincidenza non si può controllare mentre il modo in cui il seed viene generato sì: è una scelta di strumento, ed è documentata.
Dodici parole o ventiquattro
Torna qui la precisazione lasciata all'inizio, perché è il punto su cui circola più confusione, condensata in una frase che si sente ovunque: bastano dodici parole, «tanto è lo stesso». Conviene dire le cose una alla volta.
La scelta fra dodici e ventiquattro parole si fa prima del sorteggio, e fissa quanto si sorteggia: dodici parole scrivono 128 bit estratti a sorte, ventiquattro ne scrivono 256. Non c'è nessuna conversione, in nessuna direzione: chi sceglie dodici parole non sta comprimendo un sorteggio da 256 bit, ne sta facendo uno più piccolo; e nessun passaggio successivo riduce le ventiquattro a 128. Nelle liste ci sono anche alcuni bit di controllo, che servono ad accorgersi di un errore di trascrizione e non aggiungono entropia, quindi non entrano in nessuno di questi conti.
Parte dell'equivoco viene da un nome. Dopo le parole, il protocollo le trasforma, insieme all'eventuale passphrase, in un numero molto più lungo, 512 bit, ed è quello che la specifica chiama «seed»; da lì discendono tutte le chiavi del portafoglio. Ma quel passaggio non crea imprevedibilità: il numero lungo può assumere soltanto i valori che il sorteggio iniziale permetteva. Con dodici parole l'intero albero delle chiavi, per quanto vasto, resta raggiungibile da 2¹²⁸ punti di partenza; con ventiquattro, da 2²⁵⁶.
Dunque non è lo stesso: sono due spazi diversi, e fra i due c'è un fattore 2¹²⁸. La domanda giusta è allora se 128 bit bastino.
Per la collisione accidentale la risposta sta nei conti già fatti, e quel margine non lo intacca nessuno scenario realistico. Per la ricerca mirata c'è un fatto che nel «tanto è lo stesso» manca quasi sempre, e riguarda un altro bersaglio: chi ha di mira un portafoglio solo non è costretto a cercare il seed, può puntare alla chiave che ne discende, e quella strada ha un costo suo che dalla taglia del sorteggio non dipende.
La matematica con cui Bitcoin firma offre al miglior attacco classico conosciuto un lavoro di circa 2¹²⁸ operazioni per chiave, che si tratti di dodici parole o di ventiquattro. Quel numero è ancora una radice: attaccare una chiave non vuol dire provarle tutte a una a una, ma spingere un calcolo finché non ricade su un valore già incontrato, e in uno spazio da 2²⁵⁶ una coincidenza del genere arriva dopo circa 2¹²⁸ passi. È di nuovo il problema del compleanno, applicato però dentro l'attacco a un bersaglio solo.
La catena, cioè, ha già un anello da 128 bit, e sta a valle di entrambi i sorteggi: le dodici parole allineano il primo anello a quello che esiste comunque, le ventiquattro rinforzano il primo e lasciano l'altro dov'era. Vale finché la chiave pubblica si vede, ed è il caso più comune: su certi output sta in chiaro dal primo momento, su tutti gli altri compare alla prima spesa, perché per spendere bisogna mostrarla. Finché resta coperta da un'impronta quell'anello sta più in alto, attorno ai 2¹⁶⁰ dell'impronta stessa, e lì le ventiquattro parole un margine lo aggiungono; un margine che nella pratica non sposta niente, perché anche il più basso dei due numeri è fuori portata.
Chi sceglie le ventiquattro parole non sta quindi correggendo una debolezza: sta comprando margine contro il futuro, cioè contro progressi che oggi nessuno sa prevedere (quelli quantistici sono il capitolo del post dedicato), e il costo è solo memoria. Dodici parole sono sufficienti con ampio margine; non per questo sono equivalenti a ventiquattro.
Nessuna delle due forme, però, compra una difesa contro un generatore fatto male, ed è lì che i casi di cronaca hanno sempre svoltato. Conta più lo strumento della lunghezza.
La parola in più
C'è una leva che non è né la lunghezza né lo strumento. Alle dodici o ventiquattro si può aggiungere una passphrase, un segreto che nelle parole non compare e che il portafoglio chiede a parte: parole e passphrase entrano insieme nella trasformazione che produce il numero lungo da cui discendono le chiavi.
La domanda naturale è se questo aumenti l'entropia del seed o se sia soltanto una protezione messa attorno a un seed che resta quello di prima. Conviene rispondere separando le due cose, perché la risposta non è né l'una né l'altra per intero.
Non è un lucchetto applicato sopra. Passphrase diverse producono portafogli diversi, tutti ugualmente validi: sbagliando una lettera non si ottiene un errore, si ottiene un altro portafoglio, vuoto. Il dispositivo non ha modo di dire che quella è sbagliata, perché non conosce quella giusta e non la custodisce da nessuna parte.
Di entropia, invece, ne aggiunge esattamente la propria, e nemmeno un bit di più. Il punto sta in quando quei bit servono. Se il sorteggio è stato vero non servono: 128 erano già fuori portata, e sommarne altri non sposta niente di concreto. Se il sorteggio non è stato vero sono l'unica cosa rimasta in piedi, ed è quello che è successo con il difetto raccontato sopra: le parole si ricostruivano da fuori, la passphrase no, perché non era passata dal generatore. Il modo esatto di dirlo è questo: la passphrase non rinforza un numero che bastava già, copre il caso in cui quel numero non c'era.
Qui però torna la parola d'ordine da cui si era partiti. La passphrase la sceglie una testa umana, quindi conta quanto è imprevedibile per chi la cerca, non quanto è lunga; e chi possiede le parole può provarne quante ne vuole per conto suo, tanto più che la trasformazione ripete la stessa operazione qualche migliaio di volte soltanto, che non basta a rendere caro un tentativo.
Il resto sono i rischi vicini, e qui sono più grandi. Una passphrase dimenticata non si recupera in nessun modo, e non lascia traccia: non c'è un supporto da ritrovare, e chi resta non sa nemmeno che cosa cercare.
Le coppie che si confondono
- collisione accidentale ≠ ricerca mirata: la prima gioca su tutte le coppie possibili e costa la radice dello spazio, la seconda ha un bersaglio fisso e costa lo spazio intero del seed, ammesso che sia il seed a essere cercato;
- improbabile ≠ vietato: nessuna legge fisica proibisce la coincidenza, e non ne serve una;
- casuale ≠ imprevedibile: numeri che sembrano casuali possono essere rifatti da chi conosce il punto di partenza;
- deterministico ≠ prevedibile: una regola fissa applicata a un segreto produce valori che restano fuori portata di chi il segreto non ce l'ha;
- entropia del seed ≠ lunghezza della frase: contano i bit sorteggiati, non quante parole servono a scriverli;
- seed sorteggiato ≠ seed derivato: la specifica chiama «seed» anche il numero lungo ricavato dalle parole, ma l'imprevedibilità resta quella del sorteggio iniziale;
- entropia sorteggiata ≠ segreto scelto: la prima è uniforme per costruzione, il secondo vale quanto è imprevedibile per chi lo cerca, ed è la differenza fra un seed e una passphrase;
- impossibile in crittografia ≠ impossibile in logica: qui ha sempre voluto dire «fuori da qualunque budget concepibile», e conviene saperlo invece di sospettarlo.
In breve
Lo spazio da cui si estrae un seed è grande quanto un millesimo degli atomi dell'universo osservabile, e la domanda giusta non è se qualcuno possa indovinare un seed in particolare, ma se fra tutti i seed mai generati ne salteranno fuori due uguali. Il conto si fa, e con un numero largo di portafogli mai creati resta più raro che vincere il SuperEnalotto due volte di fila; gonfiando le ipotesi fino al grottesco resta comunque ottanta volte più improbabile di una vincita sola. Non è una convenzione: attraversare quello spazio, senza rompere niente e solo per contarlo, costerebbe a una macchina perfetta migliaia di miliardi di volte tutta l'energia che il Sole emetterà in vita sua. Resta il fastidio di appoggiarsi a qualcosa che non è vietato ma soltanto improbabile: è la stessa condizione in cui si sta ogni volta che si respira in una stanza, e i rischi che si accettano ogni giorno senza pensarci sono sedici ordini di grandezza più probabili di questo. Fra dodici parole e ventiquattro, poi, non corre la stessa entropia come si sente dire: corrono 128 bit sorteggiati contro 256, e i primi bastano largamente senza che le due forme si equivalgano. Il punto fragile è un altro e sta prima: quei conti valgono se il sorteggio è stato vero, e quando qualcosa è andato storto è sempre andato storto lì.
Riferimenti
- BIP 39, Mnemonic code for generating deterministic keys: github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
- R. Landauer, Irreversibility and Heat Generation in the Computing Process, IBM Journal of Research and Development, 1961: doi.org/10.1147/rd.53.0183
- NIST SP 800-90A/B/C, raccomandazioni sui generatori di numeri casuali: csrc.nist.gov/publications/detail/sp/800-90a/rev-1/final
- Bitcoin.org, avviso di sicurezza sui portafogli Android (agosto 2013): bitcoin.org/en/alert/2013-08-11-android
- Coinkite, avviso di sicurezza sulla generazione dei seed Coldcard (luglio 2026): blog.coinkite.com/coldcard-mk3-seed-generation-warning, con l'approfondimento tecnico sull'entropia
- Block Engineering, Predictable RNG Fallback and 32-Bit Reseed in COLDCARD Firmware: engineering.block.xyz
- Sun Fact Sheet della NASA, per la luminosità solare: nssdc.gsfc.nasa.gov/planetary/factsheet/sunfact.html