Sulla blockchain non ci sono sportelli, documenti d'identità o firme a penna. Eppure ogni pagamento deve essere autorizzato da chi possiede davvero quei fondi, e da nessun altro. Il trucco si chiama crittografia a chiave pubblica: un sistema di due chiavi gemelle che, come vedremo, è anche il motivo per cui chi perde la propria chiave perde per sempre le proprie criptovalute.
Corso "Blockchain per nerd" – Lezione 4 di 12
Due chiavi gemelle
Chi usa una blockchain ha sempre una coppia di chiavi, generate insieme da un programma:
- la chiave privata: un numero lunghissimo e segreto, che non va mai mostrato a nessuno. È la vera "proprietà" dei fondi;
- la chiave pubblica: derivata dalla privata con un calcolo matematico, si può mostrare a tutti. Da essa si ricava l'indirizzo, cioè l'equivalente dell'IBAN a cui gli altri possono inviarci denaro.
Il punto fondamentale è che dalla chiave privata si calcola facilmente quella pubblica, ma dalla pubblica è praticamente impossibile risalire alla privata. È una strada a senso unico, un po' come l'hash della lezione precedente.
La cassetta delle lettere
Un'immagine aiuta. Pensate a una cassetta delle lettere con il vostro nome sopra, appesa in strada. Chiunque conosce il suo indirizzo e può infilarci una busta: questo è l'indirizzo pubblico. Ma solo voi avete la chiave per aprirla e prendere ciò che c'è dentro: questa è la chiave privata.
Sulla blockchain, ricevere fondi è come ricevere buste nella cassetta: chiunque può mandarvene. Spendere quei fondi, invece, richiede la chiave, e chi ha la chiave può farlo senza chiedere il permesso a nessuno.
La firma digitale: "sono proprio io"
Quando volete inviare dei fondi, il vostro programma (il wallet, ne parleremo nella lezione 10) prepara un messaggio del tipo "trasferisco 0,01 bitcoin dall'indirizzo A all'indirizzo B" e lo firma con la vostra chiave privata.
La firma digitale ha due proprietà magiche:
- chiunque può verificarla usando la vostra chiave pubblica, e controllare così che il messaggio l'abbiate autorizzato voi;
- nessuno può falsificarla senza conoscere la chiave privata, e la firma vale solo per quel preciso messaggio: se qualcuno cambiasse l'importo o il destinatario, la firma non sarebbe più valida.
In questo modo migliaia di computer che non vi conoscono possono essere certi che il pagamento è autentico, senza che voi riveliate mai il vostro segreto. È lo stesso principio della firma digitale che molti già usano per firmare documenti con valore legale o per la PEC, applicato al denaro.
🤓 Per i più curiosi: curve ellittiche
Bitcoin ed Ethereum usano la crittografia su curve ellittiche, in particolare la curva chiamata secp256k1. La chiave privata è semplicemente un numero di 256 bit scelto a caso; la chiave pubblica è un punto della curva ottenuto "moltiplicando" un punto di partenza per quel numero. Fare la moltiplicazione è facile, ma tornare indietro (il cosiddetto problema del logaritmo discreto) è considerato impraticabile. Bitcoin, dal 2021 con l'aggiornamento Taproot, supporta anche le firme di Schnorr, più compatte ed efficienti. Le chiavi possibili sono talmente tante (circa 1077) che la probabilità di generare per caso la stessa chiave di un altro è trascurabile.
Gli indirizzi: lunghi, strani e da copiare con cura
Un indirizzo Bitcoin può avere un aspetto come bc1q... seguito da decine di caratteri; uno Ethereum inizia con 0x. Non sono fatti per essere ricordati, ma per essere copiati o letti tramite QR code. Due consigli pratici:
- controllate sempre i primi e gli ultimi caratteri dell'indirizzo prima di inviare: esistono virus che sostituiscono l'indirizzo copiato negli appunti con quello di un truffatore;
- un invio sulla blockchain non si annulla: se sbagliate indirizzo, non c'è una banca a cui chiedere lo storno.
La frase di recupero: 12 o 24 parole che valgono tutto
Una chiave privata è un numero difficilissimo da trascrivere. Per questo i wallet moderni la rappresentano con una frase di recupero (in inglese seed phrase): una sequenza di 12 o 24 parole comuni, per esempio "albero, finestra, lento, cometa...". Da quella frase il wallet ricostruisce tutte le chiavi.
Questo significa che chi conosce la vostra frase di recupero possiede i vostri fondi. Le regole sono semplici e non negoziabili:
- scrivetela su carta (o su una piastrina di metallo) e conservatela in un luogo sicuro, magari in due copie in posti diversi;
- non fotografatela, non salvatela nel cloud, non mandatela per email o chat;
- nessun servizio serio vi chiederà mai la frase di recupero: chi lo fa, anche se si presenta come "assistenza tecnica", è un truffatore.
Il rovescio della medaglia è altrettanto netto: se perdete la frase e il dispositivo si rompe, nessuno potrà restituirvi i fondi. Si stima che una parte consistente dei bitcoin esistenti sia ormai inaccessibile per sempre proprio per chiavi smarrite.
🤓 Per i più curiosi: lo standard BIP-39
Le frasi di recupero seguono quasi sempre lo standard BIP-39, che usa un elenco ufficiale di 2.048 parole (esiste anche in italiano). Ogni parola codifica 11 bit: 12 parole corrispondono a 128 bit di casualità più un piccolo controllo d'errore, 24 parole a 256 bit. Grazie a un secondo standard, BIP-32, da un'unica frase si possono generare infinite coppie di chiavi in modo ordinato: per questo un solo backup protegge tutti gli indirizzi del wallet. Alcuni wallet permettono di aggiungere una "passphrase", una parola extra che funziona come venticinquesima parola segreta.
Pseudonimi, non anonimi
Sulle blockchain pubbliche non compare il vostro nome, ma solo gli indirizzi. Si parla quindi di pseudonimato: ogni movimento è visibile a tutti, per sempre, e collegato a un indirizzo. Se un giorno quell'indirizzo viene associato alla vostra identità, per esempio perché avete comprato criptovalute su una piattaforma che vi ha chiesto il documento, tutta la sua storia diventa riconducibile a voi. Esistono società specializzate nell'analisi delle blockchain che collaborano con le forze dell'ordine proprio per seguire i flussi di denaro.
📌 Ricapitolando
- Ogni utente ha una chiave privata (segreta) e una chiave pubblica (da cui si ricava l'indirizzo).
- Con la chiave privata si firmano le operazioni; chiunque può verificare la firma con la chiave pubblica.
- La frase di recupero di 12 o 24 parole equivale alla chiave privata: chi la conosce possiede i fondi.
- Le operazioni non si annullano e le chiavi perse non si recuperano.
- Le blockchain pubbliche sono pseudonime, non anonime: tutto resta visibile.
Nella prossima lezione scopriremo come migliaia di computer sparsi nel mondo riescono a mettersi d'accordo su quale sia il blocco successivo: mining e staking.
Il commento di PINET
Nel nostro lavoro di assistenza vediamo spesso quanto sia facile perdere una password o un dispositivo. Con le criptovalute questo problema diventa definitivo: non esiste il "password dimenticata?". È una libertà, perché nessuno può bloccare i vostri fondi, ma è anche una responsabilità che molti sottovalutano. Il consiglio è trattare la frase di recupero come il documento più importante di casa e diffidare di chiunque, al telefono o in chat, la chieda con qualsiasi pretesto: è la truffa più diffusa in assoluto.