Il Bitcoin è una moneta elettronica creata nel 2009 da un anonimo inventore, noto con lo pseudonimo di Satoshi Nakamoto, che sviluppò un’idea da lui stesso presentata su Internet a fine 2008. Per convenzione se il termine Bitcoin è utilizzato con l’iniziale maiuscola si riferisce alla tecnologia e alla rete, mentre se minuscola (bitcoin) si riferisce alla valuta in sé.

A differenza della maggior parte delle valute tradizionali, Bitcoin non fa uso di un ente centrale né di meccanismi finanziari sofisticati, il valore è determinato dalla leva domanda e offerta: esso utilizza un database distribuito tra i nodi della rete che tengono traccia delle transazioni, ma sfrutta la crittografia per gestire gli aspetti funzionali, come la generazione di nuova moneta e l’attribuzione della proprietà dei bitcoin.

La rete Bitcoin consente il possesso e il trasferimento anonimo delle monete; i dati necessari a utilizzare i propri bitcoin possono essere salvati su uno o più personal computer o dispositivi elettronici quali smartphone, sotto forma di “portafoglio” digitale, o mantenuti presso terze parti che svolgono funzioni simili a una banca. In ogni caso, i bitcoin possono essere trasferiti attraverso Internet verso chiunque disponga di un “indirizzo bitcoin”. La struttura peer-to-peer della rete Bitcoin e la mancanza di un ente centrale rende impossibile a qualunque autorità, governativa o meno, il blocco dei trasferimenti, il sequestro di bitcoin senza il possesso delle relative chiavi o la svalutazione dovuta all’immissione di nuova moneta.

Proprietà

Schema semplificato di una catena di possesso. In realtà, una transazione può avere più di un input e più di un output.

Ogni utente che partecipa alla rete Bitcoin possiede un portafoglio che contiene un numero arbitrario di coppie di chiavi crittografiche. Le chiavi pubbliche, o “indirizzi bitcoin”, fungono da punti d’invio o ricezione per tutti i pagamenti. Il possesso di bitcoin implica che un utente può spendere solo i bitcoin associati con uno specifico indirizzo. La corrispondente chiave privata serve ad apporre una firma digitale a ogni transazione facendo in modo che sia autorizzato al pagamento solo l’utente proprietario di quella moneta. La rete verifica la firma utilizzando la chiave pubblica.

Se la chiave privata viene smarrita, la rete Bitcoin non potrà riconoscere in alcun altro modo la proprietà del denaro: la relativa somma di denaro sarà inutilizzabile da chiunque e, quindi, da considerarsi persa in modo irrimediabile. Casi di perdita patrimoniale per smarrimento della chiave privata si sono già verificati nei primi anni di operatività della criptovaluta: ad esempio, nel 2013 un utente ha lamentato la perdita di 7.500 bitcoin, all’epoca del valore di 7,5 milioni di dollari, per essersi accidentalmente sbarazzato di un hard disk che conteneva la sua chiave privata.

Anonimato

Gli indirizzi non contengono informazioni riguardo ai loro proprietari e in genere sono anonimi.Gli indirizzi in forma leggibile sono sequenze casuali di caratteri e cifre lunghe in media 33 caratteri, che cominciano sempre per 1 oppure per 3, della forma 1NAfBQUL4d2N7uu1iKxjwF8dESXTT3AKcq. Gli utenti possono avere un numero arbitrario di indirizzi Bitcoin, e infatti è possibile generarne a piacimento senza nessun limite in quanto la loro generazione costa poco tempo di calcolo (equivalente alla generazione di una coppia di chiavi pubblica/privata) e non richiede nessun contatto con altri nodi della rete. Creare una nuova coppia di chiavi per ogni transazione aiuta a mantenere l’anonimato.

Transazioni

I bitcoin contengono la chiave pubblica del loro proprietario (cioè l’indirizzo). Quando un utente A trasferisce della moneta all’utente B rinuncia alla sua proprietà aggiungendo la chiave pubblica di B (il suo indirizzo) sulle monete in oggetto e firmandole con la propria chiave privata.[34] Trasmette poi queste monete in un messaggio, la “transazione”, attraverso la rete peer-to-peer. Il resto dei nodi validano le firme crittografiche e l’ammontare delle cifre coinvolte prima di accettarla.[35]

La catena dei blocchi e le conferme

La catena principale (in nero) consiste nella serie più lunga di blocchi dal primo (in verde) fino al blocco corrente. I blocchi orfani (in viola) esistono al di fuori della catena principale.

Per impedire la possibilità di utilizzare più volte la stessa moneta, la rete implementa quella che Satoshi Nakamoto descrive come un “server di marcatura oraria peer-to-peer”,[36] che assegna identificatori sequenziali a ognuna delle transazioni che vengono poi rafforzate nei confronti di tentativi di modifica usando l’idea di una catena di proof-of-work (mostrate in Bitcoin come “conferme”).

Ogni volta che viene effettuata una transazione, essa parte nello stato di “non confermata”; diventerà “confermata” solo quando verificata attraverso una lista di marcatura oraria gestita collettivamente di tutte le transazioni conosciute, la blockchain (in italiano: “catena di blocchi”).

In particolare, ogni nodo “generatore” raccoglie tutte le transazioni non confermate che conosce in un “blocco” candidato, un file che, tra le altre cose, contiene un hash crittografico del precedente blocco valido conosciuto a quel nodo. Prova poi a riprodurre un hash di quel blocco con determinate caratteristiche, uno sforzo che richiede in media una quantità definibile di prove da dover effettuare. Quando un nodo trova tale soluzione la annuncia al resto della rete, i peer che ricevono il blocco ne controllano la validità prima di accettarlo e poi aggiungerlo alla catena.

Quando una transazione viene ammessa per la prima volta in un blocco, riceve una conferma. Ogni volta che al di sopra di quel blocco vengono creati altri blocchi figli a esso collegato, riceve un’altra conferma. Quando il blocco contenente la transazione raggiunge sei conferme, ovvero vengono creati sei blocchi collegati a esso, il client Bitcoin cambia stato alla transazione portandola da “non confermata” a “confermata”. La motivazione dietro a questa procedura è che a ogni conferma della transazione, ovvero a ogni nuovo blocco che viene creato al di sopra del blocco con la transazione stessa, risulta via via più difficile e costoso annullare la transazione. Un ipotetico attaccante, per annullare una transazione con un certo numero di conferme, dovrebbe generare una catena parallela senza la transazione che desidera annullare e composta da un numero di blocchi pari o superiore alle conferme ricevute dalla transazione.

Ne consegue che la catena dei blocchi contiene lo storico di tutti i movimenti di tutti i bitcoin generati a partire dall’indirizzo del loro creatore fino all’attuale proprietario.[38] Quindi, se un utente prova a riutilizzare una moneta che ha già speso, la rete rifiuterà la transazione in quanto la somma risulterà già essere spesa.

Nakamoto ha progettato il sistema in modo che, nonostante il database aumenti di dimensioni nel tempo, sia possibile averne una versione ridotta che riguardi nel dettaglio solo alcune transazioni, ma che rimanga completamente verificabile in modo indipendente. Ad esempio, per un utente privato potrebbe essere interessante avere la catena dei blocchi con le sole transazioni che lo riguardano. Oppure, potrebbe essere desiderabile ripulire dal database tutte le transazioni le cui somme in uscita sono già state utilizzate in altre transazioni, diminuendone di molto le dimensioni.