Bcademy

CAPIRE BITCOIN | PARTE QUINTA: CHIAVI E INDIRIZZI | SEZIONE QUINTA: I WALLET

2020-01-20 08:38:16

Il testo è una guida completa, che partendo dalla parte teorica e toccando quella pratica, entra in profondità nelle dinamiche interne di Bitcoin. Per approfondimenti: "Mastering Bitcoin" di A. Antonopoulos e "The Bitcoin Standard" di S.Ammous. Per info sui corsi [email protected]

Un wallet è un contenitore di chiavi private, non di coin. Le chiavi servono per firmare le transazioni che di fatto destinano i coin, memorizzandoli nella blockchain sotto forma di UTXO, da un indirizzo ad un altro. Ci sono differenti tipi di wallet.

Wallet casuali non-deterministici (Type-0 nondeterministic wallet, “Just a Bunch Of Keys,” or JBOK). Nei primi client di Bitcoin i wallet erano semplicemente collezioni di chiavi generate casualmente (Bitcoin Core pre-generava inizialmente 100 chiavi private, e poi ulteriori se necessarie, utilizzando ciascuna chiave solo una volta (contrastando con il principio di evitare il riutilizzo degli indirizzi per preservare la privacy).

Wallet deterministici (Seeded). Sono wallet che contengono chiavi private che sono generate da un unico seme (seed). Il seed è sufficiente per ripristinare tutte le chiavi derivate e pertanto è sufficiente un singolo backup al momento della creazione.

Mnemonic Code Words. (BIP 39) I codici mnemonici sono sequenze di parole che codificano un numero casuale usato come seme per derivare un portafoglio deterministico. Un’applicazione wallet che implementa i wallet deterministici con il codice mnemonico mostrerà all’utente una sequenza di 12-24 parole quando si crea per la prima volta un wallet. Questa sequenza di parole è il backup del wallet e può essere utilizzata per recuperare e ricreare tutte le chiavi nella stessa o in qualsiasi applicazione wallet compatibile.

Wallet Gerarchici Deterministici. (Hierarchical Deterministic Wallet o wallet HD – BIP 32 / BIP 44) La forma più avanzata di wallet deterministico è HDW wallet definito dallo standard BIP 32. I wallet HD contengono chiavi derivate in una struttura ad albero, tale che da una chiave madre si può far derivare una sequenza di chiavi figlie, e da ognuna di queste si può far derivare una sequenza di chiavi nipoti, e così via. Questo fornisce dei vantaggi:

  1. la struttura ad albero può essere usata per rappresentare una struttura organizzativa aggiuntiva (es: un ramo di sottochiavi per i pagamenti in arrivo e un altro per ricevere il resto da pagamenti in uscita; un ramo per ogni ramo d’azienda, etc);
  2. la possibilità di creare una sequenza di chiavi pubbliche senza avere accesso alle corrispondenti chiavi private (permette l’utilizzo su un server non sicuro o con sola capacità di ricezione, con l’emissione di una diversa chiave pubblica per ogni transazione).

I wallet HD sono creati da un singolo root seed (un numero casuale a 128-, 256-, o 512-bit), tutto il resto è deterministicamente derivato.



 

 Alessio Salvetti, Co-founder di Bcademy e board member (VP), business developer, filosofo per formazione e bitcoiner per passione, esperto di modeling e lean startup, è co-founder di Inbitcoin e responsabile prodotto di Bcademy (CPO).

10