👉🏻 Clicca qui per guardare la versione video su YouTube 👈🏻
Ok, abbiamo visto che dei numeri vengono tradotti in parole per rendere la lettura più facile. Però non è chiaro come vengono generati sti numeri. C’è qualcuno che li sceglie per noi?! Non può essere altrimenti conoscerebbe la nostra chiave privata… come si fa?!
Episodio 3 di 10 della serie sulla crittografia Bitcoin. Recupera qui gli altri episodi della serie 👉🏻 Caccia al tesoro
🎲 Cos’è davvero l’entropia?
Una seed da 12 parole rappresenta 132 bit (ovvero 132 “0” o “1”).
- 128 bit di entropia pura, ovvero casualità raccolta da una fonte affidabile.
- + 4 bit di checksum, cioè un codice di controllo che verifica se la frase è valida (ora lo capiremo meglio).
132 bit, che vengono divisi in 12 blocchi da 11 bit. Ogni parola corrisponde ad un blocco di 11 bit.
Questo ci fa capire che è l’entropia è il cuore della sicurezza. Sono quei 128 bit che rendono la tua seed imprevedibile.
Ma come si “sceglie” questa entropia?! O ancor meglio, come si genera?! Bhe esistono diversi modi:
- da movimenti casuali del mouse
- dalla temperatura del tuo processore
- dalla data in cui creo il portafoglio
Puoi vedere un esempio di creazione dell’entropia qua: https://www.bitaddress.org
Oppure qua: https://iancoleman.io/bip39/#italian
Per assurdo potrei anche io stesso scegliere la mia entropia andando a creare la mia casuale serie di “0” o “1”. Il motivo per cui non si fa è che come essere umani facciamo schifo a fare cose casuali. Anche se non ce ne accorgiamo seguiamo spesso dei pattern che possono essere facilmente ripetuti.
In sostanza quindi l’entropia è un numero CASUALE e l’importante è che nessuno possa indovinare o rigenerare la stessa entropia.
Perché se la tua entropia è prevedibile… il tuo wallet è vulnerabile, anche se ha 24 parole. Un po’ come mettere la tua data di nascita come password.

✅ Il checksum: il guardiano silenzioso
Ovviamente non puoi fare il contrario e scrivere prima le 12 parole, inventate di sana pianta e poi calcolare la tua entropia.
Immagina di scrivere la tua seed a mano. Hai 12 parole. Tutto sembra corretto… ma hai invertito due sole parole.
Ecco dove entra in gioco il checksum.
🔍 Esempio pratico
Supponiamo che la tua entropia sia:
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
(ovvero 128 zeri)
- Calcoliamo il suo SHA256: il risultato di questo hash è qualcosa tipo:4cd4c2f3…
- I primo dato è una “4” che è in formato esadecimale
- Trasformiamo “4” in binario ed ecco i primi 4 bit: 0100
- Aggiungiamo questi 4 bit alla fine dei 128 bit:→ Totale: 132 bit
- Dividiamo in 12 blocchi da 11 bit
- Ogni blocco → una parola del dizionario BIP39
Risultato finale:
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100
abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abete
👉 Questa seed è valida.
Ma se modifichi anche solo una parola, il checksum fallisce → il wallet ti dirà “Seed non valida”.
È come un filtro invisibile che fa passare solo combinazioni matematicamente coerenti.
🧪 La funzione di hash
La funzione di hash è un algoritmo che prende un input (un testo, un file, una password, qualsiasi tipo di dato) e lo trasforma in una stringa di lunghezza fissa, chiamata hash.
Queste sono le sue caratteristiche:
- Output di lunghezza fissa: qualunque sia la dimensione dell’input, l’hash prodotto ha sempre la stessa lunghezza.
- Esempio: SHA256 produce sempre 256 bit (64 caratteri hex).
- Deterministica: lo stesso input produce sempre lo stesso hash.
- SHA256(“ciao”) restituirà sempre 6b0d….
- Irreversibile: non puoi ricavare l’input originale dall’hash (non è una funzione invertibile).
- Sensibile ai cambiamenti: anche una minima modifica dell’input cambia completamente l’hash.
- ciao e Ciao hanno hash completamente diversi.
- Collision resistant: è estremamente difficile (idealmente impossibile) trovare due input diversi che generano lo stesso hash.
Sono diverse le applicazioni di questo algoritmo, che viene usato ogni singolo giorno non solo su Bitcoin ma sulla quasi totalità dei sistemi di sicurezza mondiali.
- Verifica dell’integrità dei dati: se calcoli l’hash di un file e questo cambia, sai che il file è stato modificato.
- Firma digitale e sicurezza: le password, ad esempio, non vengono salvate “in chiaro”, ma come hash. Così, anche se un database viene rubato, l’attaccante non ha subito la password originale.
- Blockchain e Bitcoin: ogni blocco della blockchain è “incatenato” al precedente grazie agli hash (SHA256), che garantiscono che i dati non possano essere modificati.
Ecco qua un sito dove puoi testare tu stesso questo algoritmo: https://emn178.github.io/online-tools/.
🧠 12 o 24 parole?!
Quando aprirai vari wallet nella tua avventura con Bitcoin, ti renderai conto che esistono portafogli che ti danno 12 parole ed altri che invece te ne danno 24.
Molti pensano, erroneamente, che una seed da 24 parole sia semplicemente una “versione più lunga” di quella da 12.
La verità è più interessante:
Le seed da 12 e 24 parole appartengono a due spazi di sicurezza diversi, e nessuna delle due sfrutta appieno il potenziale totale dei 512 bit che useremo alla fine (tranquillo, ora capirai da dove arriva questo numero).
Le seed BIP39 (sia da 12 che da 24 parole) sono costruite per essere:
- leggibili
- controllabili (grazie al checksum)
- trasportabili da un essere umano
Ma in realtà, tutto ciò che fanno è rappresentare una certa quantità di casualità (entropia), codificata in parole.
Tipo di seed | Entropia (bit veri) | Checksum | Totale bit | Combinazioni possibili |
---|---|---|---|---|
12 parole | 128 bit | 4 bit | 132 bit | 2¹²⁸ ≈ 3.4 × 10³⁸ |
24 parole | 256 bit | 8 bit | 264 bit | 2²⁵⁶ ≈ 1.15 × 10⁷⁷ |
512 bit diretti | 512 bit | — | 512 bit | 2⁵¹² ≈ 1.34 × 10¹⁵⁴ |
Una seed da 24 parole non è una “12 parole con 12 parole in più”.
È come se fosse un altro universo all’interno del campo delle possibilità massime date dai 512 bit:
Le seed da 12 e da 24 non sono convertibili tra loro, né compatibili. Non puoi “aggiungere parole” a una da 12 per farla diventare una da 24.
C’è un ultimo dettaglio che non ti ho detto infatti.
Che tu parta da 12, 24, o direttamente da bit casuali alla fine ottieni sempre un seed da 512 bit, tramite la funzione PBKDF2-HMAC-SHA512 (ti spiegherò di cosa si tratta nel prossimo episodio).
Se tu scrivessi a mano 512 bit casuali, non ti servirebbe né BIP39, né parole, né checksum.
Avresti già in mano un wallet perfettamente valido.
In questo senso, 12 e 24 parole ti portano in due regioni diverse dello stesso universo finale.
Ma scrivere 512 bit a mano ti dà accesso all’universo intero.
Questo discorso verrà affrontato nel prossimo episodio, quindi non mancare!
📌 Prossimo episodio
Ok abbiamo la nostra seedphrase, eppure non è tutto. Quello che noi chiamiamo wallet, è qualcosa di molto più complesso che deve gestire chiave private, chiavi pubbliche, deve poter inviare e ricevere. Andiamo a scoprire come si fa.
Episodio 3 di 10 della serie sulla crittografia Bitcoin. Recupera qui gli altri episodi della serie 👉🏻 Caccia al tesoro
🤬 La parola di oggi è: 3. paonazzo