- Bitcoin Train
- Posts
- Fermata #51 - Bitcoin Training: il wallet è un portachiavi
Fermata #51 - Bitcoin Training: il wallet è un portachiavi
Che cos'è un wallet? I software utilizzati per ricevere e inviare transazioni sono quanto di più concettualmente lontano da un portafoglio tradizionale: come funzionano davvero?
Un wallet Bitcoin non contiene bitcoin.
Il termine wallet (inglese per “portafoglio”) è forse uno dei più impropri ormai diffusi nel settore. E’ comprensibile: l’idea di un software che gestisca denaro digitale è facilmente assimilabile per chi è abituato da sempre ad avere un portafoglio fisico con le banconote e, di fatto, un wallet Bitcoin è esattamente ciò che permette di inviare e ricevere pagamenti, gestire i propri satoshi. Tuttavia, per quanto possa sembrare strano, non contiene alcun bitcoin. Questo perché non è un portafoglio: è un portachiavi intelligente.
Il wallet è un portachiavi intelligente
I bitcoin, in forma di UTXO (la cui spiegazione è nella fermata #38), non si muovono mai dalla blockchain. Cambiano i proprietari ma restano sempre e solo all’interno del layer base di Bitcoin. A cambiare sono gli indirizzi a cui gli UTXO sono associati e le chiavi in grado di controllarli.
Proprio nella fermata #38 ho scritto di come da una chiave privata si ottenga una chiave pubblica e di come da quest’ultima si derivino gli indirizzi ai quali vengono associati gli UTXO. Questo procedimento è effettuato dai wallet.
I wallet non sono altro che software sviluppato per gestire coppie di chiavi (chiave privata e rispettiva chiave pubblica) e le loro derivazioni (gli indirizzi), per costruire le transazioni da inviare alla rete tramite il nodo a cui sono collegati e per ricostruire il saldo complessivo tramite l’addizione di tutti gli UTXO associati agli indirizzi generati interrogando il nodo che, a sua volta, raccoglie queste informazioni ispezionando l’intera blockchain.
Esistono due macro tipologie di wallet: nondeterministici e deterministici. I primi venivano utilizzati soprattutto nei primi anni di Bitcoin e consistevano, di fatto, in una serie di chiavi generate indipendentemente l’una dall’altra, tanto da guadagnarsi l’acronimo JBOK: Just a Bunch of Keys (“solo un mazzo di chiavi”). Non mi soffermerò su questi, scriverò invece di quelli deterministici che oggi rappresentano la quasi totalità dei wallet in circolazione.
Il punto d’origine: il seed
Nei wallet deterministici le chiavi private non sono generate senza una correlazione ma vengono tutte derivate da un unico numero chiamato seed (seme), per esempio:
a0e04873eb1c9ad484d19f8cf6060df80f8b0acc5c711e9c686143fc35ad6d2dfae4055a1c75468744f6b17ce754f8908b8110162541041794282b6f0e5c8a48
Questo significa che a differenza dei wallet nondeterministici - in cui per recuperare i fondi è necessario segnarsi ogni singola chiave - i wallet deterministici sono in grado di rigenerare l’intero portafoglio partendo unicamente dal seed.
Non serve quindi ricordarsi o gestire tutte le chiavi private create, basta conservare il seed per poter ricostruire il wallet in qualunque momento. In realtà non è nemmeno necessario segnarsi questa lunga stringa di caratteri per avere il backup: bastano 12 parole (spiegazione più avanti).
I wallet deterministici si dividono poi in quelli semplici e in quelli gerarchici, oggi indubbiamente i più diffusi e introdotti grazie allo standard BIP-32. Se i primi si limitano a creare una quantità quasi illimitata di chiavi private derivate da un singolo seed, i secondi permettono di generare le chiavi secondo una struttura ad albero: da ogni chiave si può far derivare una serie di chiavi “figlie” e da queste, a loro volta, altre chiavi ancora e così via.
La struttura gerarchica deterministica ha un vantaggio: può essere sfruttata dagli sviluppatori di wallet per creare, per ogni tipologia di pagamento, sezioni apposite gestite da rami di chiavi separati. Un set di chiavi potrebbe essere riservato allo stipendio e un altro agli incassi e alle spese occasionali. Un’azienda potrebbe assegnare rami di chiavi diversi ai vari reparti per distinguere incassi e spese di ogni area. Alla fine, però, tutto è controllato da un unico seed.
La mnemonic seed phrase
La comunità Bitcoin si è resa conto che non era affatto comodo doversi ricordare o segnare un numero così complesso come una chiave privata o un seed. La soluzione è arrivata nel 2013 con BIP-39: uno standard in grado di tradurre il seed in una sequenza di parole facili da trascrivere e da ricordare definite come mnemonic seed phrase (o semplicemente seed phrase).
Per l’esempio seguente ho utilizzato questo sito che genera seed BIP-39 (potete provare anche voi). Partendo da un codice di entropia esadecimale viene generata la mnemonic seed phrase dalla quale si ottiene il seed.
Entropia (numero esadecimale): e507b3992715ae16cea21529778bf235
Mnemonic seed phrase: bring raw view glimpse dawn city spread notice icon total scatter leopard1
Seed:c1a6648f151818d20d981f0793d371b5712bd95ec6f0e84c5964839260d28c0b9b0130af4b357c777f3657666cca9ff21c0c9d049b4441b7c6f68e5e6dbbed40
Più sono le parole della seed phrase, più il wallet è al riparo da attacchi di forza bruta. E’ per questo che gli hot wallet - quelli connessi a Internet e pensati per gestire somme limitate - generano solitamente 12 parole, mentre i signing device (più comunemente conosciuti come hardware wallet) - privi di connessione Internet e pensati per conservare i risparmi a lungo termine - generano 24 parole2. Sebbene oggi gran parte dei portafogli venga ricostruita con 12 o 24 parole se ne possono creare anche con 15, 18 e 21.
Una credenza diffusa è che i signing device contengano i bitcoin e che quindi, in caso di perdita o di rottura del dispositivo, il wallet sia compromesso per sempre. Non è così. I signing device sono hardware studiato per gestire e proteggere le chiavi offline ma in linea di principio non funzionano diversamente da un qualunque wallet software. In caso di perdita o di rottura del dispositivo per rigenerare il portafoglio è sufficiente inserire le 24 parole della mnemonic seed phrase in un nuovo dispositivo - se si vuole mantenere la sicurezza dell’hardware offline - o in un software wallet.
Una protezione aggiuntiva: la passphrase
Per aumentare ulteriormente la sicurezza di un wallet (ma anche la probabilità di perderne il backup, nda) BIP-39 ha anche dato la possibilità di aggiungere una passphrase finale alla mnemonic seed phrase. Considerabile come una sorta di 13esima (o 25esima) parola, è una stringa scelta dall’utente che cambia il seed originale.
Questo significa che quando si aggiunge una passphrase a una mnemonic seed phrase pre-esistente si crea, di fatto, un nuovo wallet generato da un nuovo seed. Per ricostruire il nuovo wallet sarà necessario segnarsi sia la mnemonic seed phrase (uguale all’originale) che la passphrase. Aggiungendo la passphrase “Bitcoin Train” all’esempio di prima, il risultato è il seguente:
Entropia: 1c3653cfb1937e52f4c4b7705cbb01c0
Mnemonic seed phrase: bring raw view glimpse dawn city spread notice icon total scatter leopard
Seed:0c72d1e5ca4ec8f0cb17fd7a3436341123d1f623fb8cf63ff97a90f747d05dff1d65ef55f13ce349534af78004d4ea0d9d50ef7f9c1c52d55ee4eeb8eb7ab39f
Passphrase: Bitcoin Train
Attenzione: non esistono passphrase sbagliate! Se doveste sbagliare nell’inserire la vostra passphrase quando aprite o rigenerate il wallet non fareste altro che creare un nuovo wallet privo di fondi.
Una soluzione come questa può essere utile per aggiungere un layer di sicurezza al proprio backup. In caso di furto di una copia delle vostre 24 parole, chi provasse a ricreare il wallet utilizzandole si troverebbe davanti a un portafoglio vuoto. C’è però anche l’altro lato della medaglia: aggiungere una passphrase significa doverla proteggere esattamente come la mnemonic seed phrase, perché il wallet può essere ricostruito solamente con entrambe: in caso di perdita di seed phrase o di passphrase, il wallet sarebbe irrecuperabile.
Nasce Bitcoin Train Premium!
Manca poco al lancio della versione premium di Bitcoin Train. A partire da sabato 15 ottobre sarà possibile sottoscrivere l’abbonamento alla newsletter per accedere a contenuti riservati. In particolare:
Due ulteriori articoli mensili che verranno pubblicati infrasettimanalmente;
Bitcoin Train Podcast, la versione letta e commentata degli articoli in pieno stile Audible. Sarà possibile ascoltarlo sia da app che tramite browser;
Un gruppo Telegram privato per commentare gli articoli della newsletter, fare domande e parlare dei temi di attualità legati a Bitcoin insieme a me e a tutti gli altri abbonati.
Il prezzo sarà di € 5 al mese o di € 50 all’anno e ci sarà anche la possibilità di diventare Founding Member a € 150 all’anno, ricevendo a casa la maglietta ufficiale “Learn your way out of fiat” e accedendo a una call mensile di Q&A insieme a me e a tutti gli altri Founding Members. Potete consultare qui tutti i dettagli.
Abbonatevi per accedere ai contenuti esclusivi supportando la divulgazione indipendente!
Quale signing device scegliere?
Qual è il miglior signing device - più conosciuto come hardware wallet - per conservare i propri satoshi a lungo termine?
Per non delegare la responsabilità della custodia a terze parti, come gli exchange, è necessario proteggere autonomamente le proprie chiavi private e il modo più sicuro per farlo è offline. Per questo sono nati i signing device: dispositivi privi di connessione Internet studiati appositamente per proteggere le chiavi private.
A mio avviso, tra sicurezza e semplicità d’utilizzo, il migliore sul mercato è BitBox02, prodotto da Shift Crypto. Il codice sorgente è completamente open-source e, a differenza degli altri principali signing device sul mercato, BitBox02 consente il backup e il ripristino della seed-phrase anche tramite una micro-SD. E’ disponibile sia nella versione Multi Coin che in quella Bitcoin-only (naturalmente io consiglio quest’ultima).
Potete provarlo acquistandolo da questo link. Per ulteriori informazioni potete rispondere a questa e-mail oppure scrivermi tramite i miei contatti.
Questo NON è un messaggio pubblicitario. BitBox02 è un prodotto che ho testato personalmente. Provatelo e fatemi sapere come vi trovate!
Online su YouTube la live di lunedì scorso con Massimo Musumeci
Di seguito la nuova puntata dei video-approfondimenti live dedicati al tema della settimana di Bitcoin Train sul canale YouTube di Massimo Musumeci, fisico, ricercatore Bitcoin ed esperto di privacy e sicurezza informatica. Questa settimana, prendendo spunto dall’intervista a Giacomo Zucco e Aleksandar Svetski, si è parlato di libertà di espressione, proprietà privata e responsabilità sociale. Appuntamento a lunedì 10 ottobre ore 17:00.
Reply