Guida ai Bitcoin parte V: wallet, indirizzi e chiavi

La quinta parte della nostra guida passo passo per capire ed utilizzare al meglio la tecnologia più discussa dell'ultimo decennio: i Bitcoin.

Guida ai Bitcoin parte V: wallet, indirizzi e chiavi
Articolo a cura di

Se avete seguito il capitolo precedente della nostra guida, sarete ora in possesso di una certa quantità di bitcoin. Come accennato queste monete non sono però effettivamente sotto il vostro completo controllo. Dobbiamo trasferirle su un wallet personale.

Chiave pubblica e chiave privata

Avevamo detto nel primo capitolo di questa guida che una delle problematiche principali che vanno affrontate nel creare una moneta digitale è il meccanismo con cui un utente dimostra di essere il legittimo proprietario dei suoi fondi. I bitcoin affrontano questo problema utilizzando la crittografia a chiave pubblica, un concetto nato nel 1970 e che costituisce le fondamenta di tutto ciò che concerne la sicurezza in ambito informatico. La crittografia a chiave pubblica sfrutta una classe di funzioni matematiche che hanno la caratteristica di essere irreversibili, nel caso dei bitcoin si tratta della moltiplicazione su curve ellittiche (ECC, Elliptic Curve Cryptography). Il tutto ruota attorno a una coppia di chiavi: una chiave privata , che è semplicemente un numero casuale compreso tra 1 e 1,158 x 10^77, ed una chiave pubblica associata, ottenuta a partire da quella privata attraverso la ECC. Poiché la funzione è irreversibile, non è possibile in alcun modo ottenere la chiave privata conoscendo la sola chiave pubblica. Nello spendere bitcoin l'attuale proprietario presenta la propria chiave pubblica insieme ad una firma digitale, diversa ogni volta, ottenuta per mezzo della sua chiave privata. Questi due elementi permettono a ciascun altro elemento della rete di verificare che effettivamente al momento della transazione l'utente era il legittimo proprietario di quei bitcoin.

Indirizzi

Il beneficiario di una transazione è individuato tramite un indirizzo, proprio come quello di un assegno è identificato dal nome che segue la dicitura "pagare all'ordine di...". Si può generare un indirizzo a partire da una chiave pubblica, tuttavia non tutti gli indirizzi corrispondono ad una chiave pubblica, in maniera simile a come negli assegni non sempre il beneficiario è una persona fisica. Questo consente un certo grado di flessibilità ai bitcoin, ad esempio il beneficiario di una transazione può essere uno script. Gli indirizzi sono l'unico elemento che vedrete regolarmente nell'utilizzo dei bitcoin, tutto il resto è gestito dal software. Un esempio di indirizzo è il seguente:

1PS9YZ751hXYM7tjRXZYdXjPAktNrstyhY

Il numero 1 iniziale non è casuale, infatti tutti gli indirizzi corrispondenti ad una chiave pubblica iniziano per 1. Potete visualizzare lo stato di un indirizzo, l'ammontare di denaro in esso contenuto e lo storico delle transazioni che lo riguardano usando un blockchain explorer come Blocktrail o blockchain.info. Qui potete vedere i dati relativi all'indirizzo suddetto. Come vedete è presente un codice QR che scansionato vi restituirà l'indirizzo, in modo da copiarlo velocemente.

Wallet

Un wallet è essenzialmente una collezione di chiavi private. Siccome indirizzi e chiavi pubbliche sono derivabili dalle chiavi private infatti, non è necessario conservare altro che queste ultime. Per ragioni di sicurezza, eccetto casi particolari, è preferibile utilizzare ciascun indirizzo una volta sola. Perdere la chiave privata equivale a perdere il denaro ad essa associato, perciò si presenta la necessità di effettuare un backup ogni volta che si esegue una transazione. Per ovviare a questo problema si sono diffusi tipi particolari di wallet detti deterministici, i quali generano tutte le chiavi private necessarie in maniera sequenziale a partire da un numero casuale scelto alla creazione del wallet, detto seed. Questo non diminuisce la sicurezza (è impossibile risalire al seed a partire dalle chiavi) ma risolve la necessità di effettuare backup continui, infatti per ripristinare il wallet è sufficiente il seed, non serve altro. Per questioni di comodità tutti i wallet deterministici moderni presentano il seed all'utente non come un numero ma come una sequenza di 12 parole della lingua inglese, scelte tra un dizionario di 2048 possibili. Memorizzando la sequenza senza scriverla da nessuna parte il denaro è a tutti gli effetti "depositato" solo nella mente dell'utente, e si parla in questo caso di brain wallet . Un esempio di seed è il seguente.

witch collapse practice feed shame open despair creek road again ice least

Per creare un wallet personale vi servirà un software apposito, la nostra scelta è ricaduta su Electrum. Se siete utenti Windows o Mac potete scaricare l'eseguibile qui. Se siete utenti Linux potete installare il pacchetto snap (se supportato dalla vostra distribuzione) qui . È disponibile anche una versione per Android, di cui potete scaricare l'APK qui o sul Play Store.

Nel prossimo articolo vedremo come configurare un wallet e trasferirvi fondi.