Nel primo portafoglio Bitcoin (ora chiamato Bitcoin Core), i portafogli erano collezioni di chiavi private generate ran-di chiavi private generate manualmente. Per esempio, il client Bitcoin Core originale pregenera genera 100 chiavi private casuali al primo avvio e ne genera altre se necessario, usando ogni chiave solo una volta. Tali portafogli sono stati sostituiti da portafogli deterministici perché sono ingombranti da gestire, fare il backup e importare. Lo svantaggio delle chiavi casuali è che se si generano molte di esse si devono tenere copie di tutte il che significa che il portafoglio deve essere aggiornato frequentemente. Ogni chiave deve essere Ogni chiave deve essere salvata, o i fondi che controlla sono irrevocabilmente persi se il portafoglio diventa inaccessibile. inaccessibile. Questo è in conflitto diretto con il principio di evitare il riutilizzo degli indirizzi, utilizzando ogni indirizzo bitcoin per una sola transazione. Il riutilizzo degli indirizzi riduce la privacy associando transazioni e indirizzi multipli l'uno all'altro. Un portafoglio nondeterministico di tipo 0 è una cattiva scelta di portafoglio, specialmente se si vuole evitare il riutilizzo degli indirizzi, perché significa gestire molte chiavi, il che crea la necessità di frequenti backup. Anche se il client Bitcoin Core includa un portafoglio Type-0, l'uso di questo portafoglio è scoraggiato dagli dagli sviluppatori di Bitcoin Core. mostra un portafoglio non deterministico, contenente una raccolta libera di chiavi casuali
Portafogli deterministici (seminati)
I portafogli deterministici, o "seeded", sono portafogli che contengono chiavi private che sono tutte derivate da un seme comune, attraverso l'uso di una funzione hash unidirezionale. Il seme è un numero generato casualmente che è combinato con altri dati, come un numero di indice o un "codice a catena" (vedere "Portafogli HD (BIP-32/BIP-44)" a pagina 96) per derivare le chiavi private. In un portafoglio deterministico, il seme è sufficiente per recuperare tutte le chiavi derivate e quindi è sufficiente un singolo backup al momento della creazione. Il seme è anche sufficiente per sufficiente per l'esportazione o l'importazione del portafoglio, permettendo una facile migrazione di tutte le chiavi dell'utente tra diverse implementazioni di portafoglio. La figura 5-2 mostra un diagramma logico di un portafoglio deterministico.
HD Portafogli (BIP-32/BIP-44)
I portafogli deterministici sono stati sviluppati per rendere facile derivare molte chiavi da un singolo "seme". unico "seme". La forma più avanzata di portafogli deterministici è il portafoglio HD definito dallo standard BIP-32. I portafogli HD contengono chiavi derivate in una struttura ad albero, così che una chiave madre può derivare una sequenza di chiavi figlie, ognuna delle quali può derivare una sequenza di chiavi nipoti, e così via, fino ad una profondità infinita. Questa struttura ad albero è illustrata.