Uno degli elementi essenziali per il funzionamento di Bitcoin ed, in generale, di tutte le criptovalute, è il sistema di crittografia a chiave pubblica e privata, chiamata anche crittografia asimmetrica. Questo sistema consiste in coppie di chiavi in cui:
- la chiave pubblica viene distribuita all’interno del network;
- la chiave privata rimane personale e segreta.
La chiave pubblica è generata partendo dalla chiave privata attraverso una funzione di hash (dall’inglese to hash, ovvero sminuzzare, pasticciare). Questa funzione è detta “non invertibile”: una volta utilizzata questa funzione si ottiene una stringa da cui non si può più risalire alla stringa che l’ha generata.
Per questo motivo si chiama anche crittografia asimmetrica: è facile andare in una direzione (dalla stringa originale a quella criptata) ma non si può andare nella direzione opposta (dalla stringa criptata a quella originale).
Crittografia asimmetrica vs simmetrica
Questo tipo di crittografia, inventata negli anni ’70, costituisce una evoluzione della crittografia simmetrica, che risale addirittura ai tempi dell’Impero Romano. Giulio Cesare, infatti, è considerato da molti il padre della crittografia perché utilizzava il cosiddetto cifrario di Cesare per proteggere i suoi messaggi in maniera criptata. Questo sistema prevedeva che ogni lettera venisse sostituita dalla lettera che si trovava un certo numero di posizioni dopo nell’alfabeto. Cesare utilizzava generalmente una chiave di 3, quindi scriveva D al posto della A, E per la B, F per la C, e così via. Suo nipote, l’imperatore Augusto lo utilizzava con chiave 1, quindi B per A, C per B, eccetera.
Anche i famosi “pizzini” del mafioso Bernando Provenzano, i foglietti di carta con il quale il boss comunicava durante la sua latitanza, erano creati utilizzando un sistema simile al cifrario di Cesare. Veniva sostituita ogni lettera con il numero corrispondente nell’alfabeto sommato a 3, in modo da trasformare delle parole o dei nomi in numeri apparentemente senza senso.
Il problema di questo sistema è che nel momento in cui si scopre la chiave, si riesce a decifrare tutto il messaggio, e quindi è un sistema “invertibile”. Con la crittografia simmetrica quindi è facile andare in una direzione (dal messaggio originale a quello criptato) ma è possibile (seppur più difficile) andare nella direzione contraria (dal messaggio criptato a quello originale), cosa invece impossibile nella crittografia asimmetrica.
Come funzionano le transazioni Bitcoin
La crittografia asimmetrica, che è alla base, tra le altre cose, anche delle firme digitali e delle password, è un elemento essenziale per il funzionamento di Bitcoin, non solo per come vengono generate le chiavi pubbliche partendo da quelle private (e a sua volta l’indirizzo Bitcoin – una sorta di IBAN – partendo dalle chiavi pubbliche), ma anche per come avvengono le transazioni stesse.
Nella blockchain di Bitcoin, infatti, questo tipo di crittografia consente l’invio delle transazioni in maniera sicura su un registro distribuito (blockchain) e permette anche a qualunque nodo del network di verificare che le transazioni siano avvenute in maniera corretta.
Il funzionamento delle transazioni sulla blockchain di Bitcoin, grazie alla crittografia a chiave pubblica e privata, può essere facilmente spiegata con la seguente analogia:
Alice deve mandare una scatola Bob ma non vuole che nessun altro al di fuori di Bob possa aprirla. Allora Alice chiede a Bob di spedirgli un lucchetto già aperto di cui Bob conserverà la chiave. Alice riceve il lucchetto da Bob, chiude la scatola e la spedisce a Bob. Bob ricevere la scatola e può aprirla con la chiave di cui è l’unico proprietario. Chiunque intercettasse il lucchetto aperto o la scatola con il lucchetto chiuso non potrebbe farci niente perché non ha la chiave.
In Bitcoin, il lucchetto dell’esempio rappresenta la chiave pubblica e la chiave recita la parte della chiave privata. La crittografia asimmetrica consente quindi di inviare bitcoin senza che chi vede la transazione possa in alcun modo appropriarsene.
Solo chi è in possesso delle chiavi private può disporre dei bitcoin ricevuti. Da qui il famoso detto “not your keys not your coins” (coniato da Andreas Antonopoulos), che rimarca l’importanza di custodire le proprie chiavi private invece che affidarle a terzi (come ad esempio all’exchange in cui si sono acquistati bitcoin con denaro tradizionale) al fine di utilizzare Bitcoin nella maniera più corretta e sicura.
Image Credits: Yegor Petrov