👉🏻 Clicca qui per guardare la versione video su YouTube 👈🏻
Hai 12 parole. Non è ancora Bitcoin. Ma è da lì che nasce tutto. In questo episodio scopriamo la trasformazione invisibile da seedphrase a chiavi private, passando per una funzione che lavora 2048 volte… per proteggerti.
Episodio 4 di 10 della serie sulla crittografia Bitcoin. Recupera qui gli altri episodi della serie 👉🏻 Caccia al tesoro
🧱 Hai la tua seed. E adesso?
Facciamo un passo indietro.
Hai ricevuto o generato una frase come questa:
abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abete
Sembra già tutto pronto. Ma non puoi ancora firmare una transazione, né accedere al tuo wallet.
Queste parole sono solo una rappresentazione mnemonica di 128 bit di entropia. Serve ancora un passaggio fondamentale: trasformarle in un seed binario da 512 bit.
⚙️ Il cuore di tutto: PBKDF2-HMAC-SHA512
Questa sigla lunga (PBKDF2-HMAC-SHA512) è la funzione di derivazione della chiave usata dallo standard BIP39 per creare il seme reale del tuo wallet.
- PBKDF2 descrive il processo, colui che dice come si fanno le cose
- HMAC è il “rinforzo di sicurezza” per usare lo SHA512 in maniera più sofisticata e sicura
- SHA512 è la funzione di hash che ci da un output da 512 bit
Abbiamo bisogno di 4 elementi per far funzionare il tutto:
- La seedphrase: ovvero le 12 parole
- La passphrase: una parola segreta, opzionale, che io posso aggiungere come 13esima parola (vedremo più avanti)
- Algoritmo: HMAC-SHA512
- Iterazioni: 2048 (quante volte voglio ripetere il processo per renderlo più lento e sicuro)
Facciamo giusto due parole su questa funzione HMAC-SHA512.
Abbiamo già visto nel precedente episodio che cos’è una funzione di hash. Ora dobbiamo aggiungerci uno step in più, il nostro HMAC. In poche parole ciò che succede è questo:
HMAC va a fare lo SHA512 non solo della mia seedphrase, ma della mia seedphrase mischiata ad un valore chiamato “SALT” che è composto dalla parola “mnemonic” + passphrase
HMAC-SHA512(seedphrase, mnemonic + passphrase )
Se la mia passphrase è vuota allora salt è uguale a “mnemonic”, cioè proprio alla parola “menmonic” e la funzione sarà così:
HMAC-SHA512(seedphrase, mnemonic)
Il salt è un “ingrediente segreto” che garantisce che due seed identiche, ma con passphrase diverse, generino wallet completamente differenti. In più l’aggiunta della costante “mnemonic” funge da “namespace”, cioè separa logicamente il mondo delle seedphrase BIP39 da qualsiasi altro uso di PBKDF2.

📦 Il processo di creazione
Quando applico la funzione PBKDF2-HMAC-SHA512 alla mia seedphrase, alle mie 12 parole, ecco ciò che succede:
- Viene calcolato il primo HMAC-SHA512 tra la mia seedphrase e l’eventuale passphrase
- Prendo il risultato e calcolo HMAC-SHA512 tra la mia seedphrase ed il risultato precedente
- Prendo il nuovo risultato e calcolo HMAC-SHA512 tra la mia seedphrase ed il risultato precedente
- Poi di nuovo…
- Poi di nuovo…
- …
- Via così fino a 2048 volte
Il risultato finale è il seed binario del tuo wallet. Un numero binario da 512. Ancora non siamo arrivati al wallet vero e proprio perché deve ancora entrare in gioco il BIP32. Ma tutto questo lo vedremo più avanti!
Potremmo effettuare questo processo di persona sul sito: https://emn178.github.io/online-tools/sha512.html
È importante specificare che tutti questi passaggi servono a proteggere la chiave privata rallentando sempre di più il processo di “tentativi” che un attaccante potrebbe mettere in atto. Più operazioni computazionali il mio computer deve fare, e meno è incentivato a perdere tempo ed energia in questo.
Alla fine della fiera la sicurezza si riduce al non far scoprire la combinazione di 512 bit precisa.
Se un attaccante volesse provare a fare un bruteforce dei wallet:
- dovrebbe calcolare 2¹³² combinazioni
- ogni hash richiederebbe 2048 iterazioni
- gli servirebbero 10³³ secondi, contro i 10¹⁷ secondi dell’età dell’universo
Risultato?
Impossibile. Anche senza passphrase.
📌 Prossimo episodio
Abbiamo parlato molto velocemente della passphrase, ma è una compagna di viaggio che non può essere lasciata indietro. Nel prossimo episodio capiremo meglio cos’è, come si usa e perchè può salvarci la vita… a presto!
Episodio 4 di 10 della serie sulla crittografia Bitcoin. Recupera qui gli altri episodi della serie 👉🏻 Caccia al tesoro
🤬 La parola di oggi è: 4. tralcio