Fermata #7 - Una chiave è per sempre
Germania e Usa hanno messo all'asta dei bitcoin confiscati, ma non hanno hackerato le chiavi private che li controllano. Hot e cold wallet, quali opzioni per la conservazione delle chiavi?
Parafrasando il noto claim pubblicitario dedicato ai diamanti, si potrebbe dire che una chiave (privata) è per sempre. La private key di un wallet è davvero l’unica cosa in grado di spostarne i bitcoin e resterà la stessa per l’eternità. E’ la firma digitale che certifica la proprietà dei fondi e non è possibile cambiarla una volta generata (si possono però creare nuovi wallet con nuove chiavi private).
La necessità di un chiarimento nasce dal fatto che il 27 ottobre si è conclusa in Germania l’asta con la quale il Ministero della Giustizia del Nord Reno-Westfalia ha venduto 215 bitcoin confiscati ad alcuni criminali nel dark web. Analogamente lo scorso giugno, dopo un attacco hacker che aveva bloccato l’oleodotto Colonial Pipeline negli Stati Uniti, l’Fbi ha recuperato parte dei bitcoin pagati come riscatto agli autori dell’attacco.
Le notizie hanno fatto sorgere un dubbio: non si era sempre detto che non c’è modo di hackerare Bitcoin? In questa fermata scopriamo che effettivamente è così. Non si può violare una chiave privata, ma si può provare a entrarne in possesso.
Il controllo delle chiavi private
Un atomo nell’universo
Ricavare la private key di un indirizzo (ricordo che la blockchain è pubblica, quindi il saldo degli indirizzi è facilmente consultabile) se non impossibile è quantomeno irrealistico: per ogni address Bitcoin esistono approssimativamente 2^96 possibili chiavi private. Per darvi un’idea delle dimensioni, si stima che in tutto il mondo esistano 2^63 granelli di sabbia.
In totale, la rete Bitcoin può creare 2^256 chiavi private, più o meno il numero di atomi presenti nell’universo conosciuto (che si pensa siano tra i 2^240 e i 2^280).
L’unico modo per trovare una private key è quello di provare tutte le combinazioni possibili e, con la potenza di calcolo che offre la tecnologia contemporanea, l’impresa richiederebbe comunque secoli. Questo non significa che non esista il modo di entrare in possesso delle chiavi se vengono custodite male: nel caso dell’Fbi e del Ministero della Giustizia federale tedesco gli hacker non le avevano nascoste bene.
La conservazione dei fondi
Il tema della conservazione delle chiavi private è uno dei più delicati ed è di doveroso approfondimento per chi si avvicina per la prima volta a questo mondo.
Non è possibile consigliare il miglior metodo in assoluto: ce ne sono di più o meno congeniali a seconda delle esigenze di ognuno e variano anche in base alla scelta del wallet. Un privato che controlla piccole somme ha necessità profondamente diverse rispetto a un’azienda che manovra grossi capitali.
Molti wallet, per esempio, supportano la funzione multisig (abbreviazione di multi-signature, ovvero firma multipla), che permette di gestire un portafoglio con più chiavi. Se il cda di un’azienda, per esempio, volesse controllare i propri bitcoin in modo distribuito, potrebbe utilizzare un wallet con 5 chiavi (numero del tutto esemplificativo) e stabilire che le transazioni possano essere effettuate solo se firmate dalla maggioranza.
In linea di massima si possono suddividere le modalità di conservazione delle chiavi in due macro-categorie: hot storage e cold storage: il primo consiste nel detenere le chiavi in dispositivi connessi a Internet - una modalità tendenzialmente meno sicura ma comoda per transazioni veloci - il secondo si riferisce alla custodia offline - modalità più sicura ma anche più macchinosa quando arriva il momento di spostare i fondi.
Hot storage
La grande maggioranza dei wallet in circolazione è costantemente connessa. Questo offre immediatezza d’uso ma anche minor sicurezza (in caso di violazione del pc o dello smartphone gli hacker potrebbero facilmente sottrarre le chiavi private del wallet installato). I più comuni sono di due tipi:
Desktop wallet: vengono gestiti da pc. Cliccando su Mac o Windows potete trovarne alcuni esempi affidabili. Se siete particolarmente attenti alla vostra privacy, consiglio Wasabi. Nei casi di Bitcoin Core, Knots o Specter, il portafoglio è parte di un full-node1, ovvero è in grado di verificare autonomamente tutte le transazioni della rete senza dover fare affidamento al nodo della società che ha sviluppato il wallet.
Mobile wallet: è il tipo di portafoglio più comune, quello per smartphone. Cliccando su Android o iOS potete trovarne alcuni esempi affidabili, ai quali aggiungerei anche Blue Wallet e Muun Wallet, che oltre alle transazioni classiche su blockchain permettono in modo molto intuitivo anche l’utilizzo del Lightning Network.
Nella fermata #4 ho scritto di come molti utenti affidino i propri bitcoin anche agli exchange. In questo caso però, va ricordato che le chiavi private sono in mano alle piattaforme di scambio che non le condividono con il cliente (modalità definita custodial), per cui il controllo degli asset è delegato a loro. Il consiglio, come sempre, è quello di detenere le criptovalute su un wallet che fornisce le chiavi all’utente (definito non-custodial). In questa #fermata tutti i wallet nominati sono rigorosamente non-custodial.
Cold storage
Per chi gestisce una somma significativa in bitcoin è consigliabile la modalità cold storage, ovvero la conservazione delle chiavi private offline. Anche in questo caso esistono due tipologie di portafogli che vanno per la maggiore:
Paper wallet: scrittura delle chiavi private su un foglio di carta, da depositare possibilmente in un luogo sicuro (c’è chi li mette in cassaforte, chi divide la chiave scrivendone metà in un foglio e metà in un altro. Ci si può sbizzarrire).
Hardware wallet: è la soluzione cold storage più popolare. Si tratta di dispositivi non connessi che permettono di eseguire transazioni in uscita solamente quando collegati al pc tramite usb, in quanto celano al loro interno la chiave privata. In questo caso è comunque estremamente importante segnarsi e nascondere in un posto sicuro la seed phrase2 generata dal wallet al primo avvio: in caso di furto o smarrimento del dispositivo, è l’unico strumento utile per ricostruire il wallet. I leader di mercato in questo settore sono due: Ledger e Trezor. I prodotti di entrambe le aziende sono considerati molto sicuri, ma differenti:
Trezor produce wallet open-source (il loro codice è pubblico): prodotti trasparenti e affidabili, ma in caso di furto da parte di soggetti esperti la chiave privata custodita dal dispositivo può essere estratta in 15 minuti.
I wallet Ledger non sono open-source, per cui l’azienda non dichiara come sviluppa la sua tecnologia e la trasparenza ne risente. Tuttavia ad oggi nessuno è mai riuscito a violare un loro dispositivo, per cui in caso di furto il wallet non verrà svuotato nel giro di un quarto d’ora.
Ladri in casa: le contromisure
Qualora si subisse il furto di un hardware wallet, bisognerebbe spostare quanto prima i fondi in un nuovo portafoglio: con la seed phrase infatti si può ricostruire la chiave privata anche scaricando un hot wallet qualunque, non è indispensabile il dispositivo fisico. A quel punto servirà creare un nuovo portafoglio in cui spostare i bitcoin e se i malintenzionati riuscissero ad estrarre la chiave privata dall’hardware rubato, si troverebbero davanti a un wallet già svuotato.
Il vero problema è quando viene sottratta proprio la seed phrase: in questo caso non esiste wallet che possa proteggere i fondi e l’unico modo per sperare di non perderli è quello di spostarli in un nuovo portafoglio prima che lo facciano i ladri.
$5 wrench attack - Aggressione fisica
Un cenno finale merita quello che viene definito il $5 wrench attack, ovvero l’attacco della chiave inglese da 5 dollari. Proprio perché l’unico modo per rubare bitcoin è quello di ottenerne la chiave privata, i suoi custodi possono rischiare aggressioni fisiche, dove cui tutto ciò che serve ai criminali è una chiave inglese con cui torturare il malcapitato. Per questo, oltre a tutelare la propria privacy non rivelando mai pubblicamente quanto si possiede in bitcoin, può essere utile dividere la somma totale in più wallet: così in caso di attacco si potrebbe rivelare agli aggressori la chiave privata del portafoglio con meno bitcoin, sperando che possano bastare.
Se avete già utilizzato alcuni dei wallet citati o ne proverete uno dopo questo articolo, scrivetemi e ditemi cosa ne pensate. I feedback più utili saranno riuniti in una fermata successiva.
Full-node: software che convalida transazioni e blocchi mantenendo una copia dell’intera blockchain. Utilizzare un “nodo” significa fare attivamente parte della rete Bitcoin e può apparire complesso per chi è poco avvezzo alle nuove tecnologie. In realtà è molto importante e piuttosto semplice: qui una guida per installare Bitcoin Core, il client più popolare. L’ideale alla base di chi ha sviluppato Bitcoin è che tutti i suoi utenti ne scarichino il programma per poter gestire il proprio denaro autonomamente e verificare la correttezza delle transazioni del resto della rete, liberandosi dalla necessità di un intermediario.
Seed phrase: una serie di parole che permette di rigenerare le chiavi di un wallet. Se un malintenzionato ne entra in possesso può ottenere tutte le chiavi, e di conseguenza i bitcoin, di quel wallet.