Cos’è la Seed Phrase dei Wallet: Tutto Quello che Devi Sapere

Cos'è il seed e come funziona

Quando dai vita ad un wallet non custodial, ad un certo punto ti viene chiesto di scriverti 12 o 24 parole.

Quelle parole rappresentano il tuo Seed (pronunciato sid).

In quest’articolo vedremo cos’è una Seed Phrase, cosa lo rende vitale per la sicurezza dei tuoi fondi, e qual’è la differenza tra seed e chiave privata.

Partiamo.

Cos’è la Seed Phrase

Nell’ambito della custodia di Bitcoin e criptovalute, la Seed Phrase è una serie di parole che ti permette di recuperare l’accesso e l’utilizzo dei tuoi fondi.

La Seed Phrase – che in italiano significa frase seme – viene anche definita:

  • Mnemonica
  • Seed
  • Frase mnemonica
  • Seed mnemonico
  • Backup
  • Recovery Phrase
  • Recovery Seed

 

Un esempio di Seed - 24 parole
Un esempio di Seed da 24 parole

 

Ad uno sguardo in superficie, si tratta di un insieme di parole dal quale è possibile estrarre chiavi private ed indirizzi, relativi a multipli wallet e criptovalute.

Tutto dipenderà dal derivation path utilizzato. Vale a dire come quelle parole verranno combinate per dare vita ad una chiave privata.

Ma qual è la differenza tra seed e chiave privata?

La Differenza tra Seed Phrase e Chiave Privata nei Wallet

Se volessimo farla semplice potremmo dire che la seed phrase è la chiave privata. La differenza è che sono scritti in formati diversi.

In realtà le cose sono leggermente diverse:

La chiave privata è una combinazione di numeri lunga 256-bit (ossia 0 e 1 in fila 256 volte). Questo elemento informatico ti permette di utilizzare i tuoi Bitcoin o la criptovaluta ad essa associata.

Anche se può essere espressa in diversi formati, di fatto la chiave privata è un numero estremamente grande.

Un esempio di chiave privata:

6Ld9slfmvE34Snt3mNto7mNNfitR3Dfe81SdmFeGR39KFLeMfkEw

Dalla chiave privata potrai inoltre generare la chiave pubblica da cui estrarrai indirizzi per ricevere pagamenti.

La seed phrase invece è un insieme di parole estratte casualmente da un vocabolario di 2048 parole.

Come scrivevo nell’introduzione, da tale combinazione di parole puoi estrarre la chiave privata che ti permette di utilizzare o recuperare i tuoi fondi.

E allora potresti dirti: “ma non bastava la chiave privata?

La Ragion D’Essere del Seed

Il vantaggio del seed è che ‘trasforma’ un numero estremamente grande in parole che puoi scrivere, capire e ricordare.

L’idea è quella di facilitare gli utenti nel custodire ciò che gli da accesso ai proprio fondi.

Così invece di avere una lunghissima stringa di numeri, ti trovi con 12 o 24 parole.

Importante notare come sia la chiave privata che le parole che compongono il recovery seed DEVONO essere completamente casuali.

Ecco perchè lo fa il wallet e non tu.

Lo standard utilizzato oggi è stato introdotto dal Bitcoin Improvement Proposal 39 (BIP39) da parte dei programmatori di Satoshi Lab (gli ideatori del famoso wallet Trezor.)

Eppure, l’idea di avere i propri fondi protetti da 24 parole estratte da un vocabolario di 2048 parole non sembra tanto sicuro, sbaglio?

Invece lo è.

Vediamo perché.

Come Fanno Delle Parole a Proteggere I Miei Fondi?

Le 12 o 24 parole che compongono la recovery phrase sono estratte da un vocabolario di 2048 parole in inglese.

A rendere sicuro questo procedimento è proprio il suo funzionamento:

Ad ogni parola è associato un numero da 1 a 2048.

La prima parola (abandon) sarà il numero 1, la seconda (ability) sarà il 2. L’ultima sarà 2048 (Zoo).

Capisci perché quindi va tutto scritto in ordine preciso?

Ogni parola corrisponde ad un numero, ed ogni numero può essere trasformato in codice binario.

Record = 1438 = 10110011110

Le 12 o 24 parole che ti trovi in mano dopo aver generato un wallet sono quindi una lista di numeri.

Interessante no?

Ora arriva la parte complicata ma affascinante…

Nella creazione della recovery seed stai prendendo una parola dalle 2048 disponibili e ripeterai questo passaggio 12 o 24 volte.

Aritmeticamente parlando, il numero di possibili combinazioni è quindi 2048 elevato alla 12esima o alla 24esima.

Un numero enorme.

E indovina un pò?

Si tratta di un numero tanto grande quanto una chiave privata.

Uno che volesse scoprire una specifica mnemonica dovrebbe fare un calcolo praticamente impossibile.

Per darti una misura della difficoltà, si tratterebbe di indovinare uno specifico atomo nell’universo conosciuto.

Ecco perchè il seed è sicuro.

Ricapitolando:

Il Seed è un numero ma sotto forma di parole.

E quel numero è estremamente grande, ma molto più facile che ricordare una chiave privata composta da codice binario.

Come si Genera la Private Key dal Seed? (Conclusioni)

Nel Bitcoin è sempre questione di matematica. Ecco perchè si dice vires in numeris.

Se alla seed phrase applichi una speciale funzione – derivation path – puoi generare delle chiavi private.

A quel punto, avrai accesso al wallet e a tutto ciò che contiene.

Tutto partendo da un numero.

Magico no?

Questo articolo ha 10 commenti

  1. Lisa

    Salve fabio, mi chiamo Lisa
    Ho bisogno del suo aiuto. Per favore mi contatti per delle informazioni

  2. Stefano

    Mi sfugge qualcosa: quelle 24 parole non le scelgo io ma me le trovo già fornite da qualcuno che ha programmato il wallet per me. Come faccio a essere sicuro che il programmatore (il ledger della situazione) o il titolare della app del wallet) non conosce il seed?

    1. Fabio Arcieri

      Ciao Stefano. Bella osservazione. Provo a chiarire meglio i punti:

      Le 24 parole non ti vengono fornite da chi ha programmato il wallet ma le generi con il wallet. Nel senso che la chiave privata viene generata al momento della creazione del tuo wallet, tramite specifiche funzioni matematiche. La tipologia di funzione utilizzata è visibile nei wallet open source, quindi saprai che tipo di algoritmo viene utilizzato per generare la tua chiave privata. Ovviamente, devi saper leggere il codice. Tuttavia, non sei obbligato a fidarti di quella funzione o del produttore.

      Se non ti fidi, puoi generare la chiave privata in autonomia e con delle procedure specifiche. Ad esempio, i metodi menzionati sopra (il lancio dei dadi o le carte) L’importante è che la chiave privata sia realmente casuale e non apparentemente casuale. Il problema è che estrarre dei numeri realmente a caso ed in maniera casuale è più difficile di quanto si creda perchè l’essere umano tende ad usare dei pattern o delle scorciatoie, anche senza accorgersene. Ecco perchè, se non ci si fida della chiave privata dei wallet devi trovare dei metodi alternativi per estrarre i numeri realmente a caso. Spero di aver chiarito i tuoi dubbi e ti ringrazio per il commento.

  3. Marco

    Ciao, mi viene un dubbio, forse stupido. Ok che 12/24 parole vengono scelte casualmente dal wallet attraverso specifici algoritmi, ma in teoria è possibile (anche se quasi totalmente improbabile) che venga generata una combinazione di parole già utilizzata, giusto?

    1. Fabio Arcieri

      Ciao Marco,

      in teoria ‘è possibile’, in pratica no. Nel senso che la probabilità statistica che venga generata una combinazione di parole già utilizzata è la stessa di selezionare casualmente 2 volte lo stesso atomo nell’universo. Quindi si tratta di numeri talmente infinitesimali che si tende a dire che è impossibile.

      Tuttavia, queste condizioni valgono se e solo se il seed deriva da una chiave privata generata in maniera realmente casuale. Gli algoritmi dei wallet semplificano la vita all’utente generando il numero in maniera casuale partendo da specifiche funzioni matematiche. Ciò non toglie che anche gli algoritmi potrebbero essere buggati (improbabile, soprattutto nei wallet open source di Bitcoin). Motivo per cui alcuni Bitcoiners generano la chiave privata da soli; ciò non toglie che se si genera la chiave privata da soli, ma in maniera non realmente casuale, il seed corrispondente non avrà la sicurezza statistica menzionata in precedenza.

      Spero di aver chiarito i tuoi dubbi 😉

  4. Carmine

    Ciao,
    vorrei un approfondimento sul perchè un seed o chiave privata può generare tante chiavi pubbliche / Wallet.
    Me lo potrebbe spiegare in modo semplice?
    Grazie

    1. Fabio Arcieri

      Ciao Carmine,

      bella domanda. Provo a fartela breve. Fino a qualche anno fa per ogni indirizzo bisognava avere la chiave privata correlata che permetteva di muovere i fondi. Come puoi immaginare, non è comodo scrivere e conservare tante chiavi private, inoltre si riutilizzava sempre lo stesso indirizzo (e questo non è ottimale per la privacy). Per risolvere questo problema, tramite una serie di BIP (Bitcoin Improvement Proposal) è stato sviluppato una metodologia per il quale da una chiave privata (detta anche master private key) è possibile derivare infinite altre chiavi private e chiavi pubbliche correlate. I wallet che utilizzano questo modello sono chiamati hierarchical-deterministic wallet (in italiano gerarchici deterministici). Stiamo parlando di praticamente tutti i wallet.

      In sostanza, ti trovi quindi con un seed che ‘rappresenta’ la tua chiave privata master, dalla quale sarà possibile derivare gerarchicamente tutte le altre coppie di chiavi necessarie a controllare i tuoi fondi.

  5. Moreno

    Ciao Fabio, scusa la mia ignoranza in materia, volevo capire come posso usare il mio qrcode del Wallet Exodus per acquistare qualsiasi cosa in un negozio convenzionato. E quando servono le 12 parole del seed. Grazie mille e complimenti per i tuoi video.

    1. Fabio Arcieri

      Ciao Moreno. Non conosco il wallet Exodus, ma in generale per acquistare cose in Bitcoin devi inquadare il QRcode del merchant ed effettuare una transazione dal wallet. Quanto alle parole del seed, quello ti serve come backup dei tuoi fondi in Bitcoin. Non ti serve per spendere bitcoin, quello lo farà in automatico con il wallet. Il seed è prezioso perchè ti da controllo assoluto sui tuoi fondi.

      Spero che questa risposta ti sia d’aiuto.

      Fabio

Lascia un commento

Correlati
Potrebbe Interessarti