IL CONTESTO GENERALE
Dopo la crisi finanziaria del 2008, in molti hanno visto volatilizzare parte dei risparmi di una vita e hanno cominciato a diffidare delle banche e del loro compito di mediazione fra chi presta e chi chiede denaro. Il ruolo di queste istituzioni come guardiani dell’infrastruttura finanziaria globale è stato messo in discussione.
Questo terremoto non solo economico ma anche e forse soprattutto sociale ha comportato, fin dall'inizio della crisi medesima, la nascita delle cosiddette criptovalute, di cui il bitcoin è indiscutibilmente la più celebre anche perché rappresenta la stragrande maggioranza della capitalizzazione complessiva tra tutte le criptovalute (ethereum, litecoin, dash, monero…) nate negli anni successivi, e che prendono il nome di altcoins (monete alternative).
Una criptovaluta è come detto una vera e propria alternativa alle valute tradizionali, soprattutto perché si usa unicamente online e non viene sottoposta ad alcun controllo da parte delle banche centrali e dei governi, ma dipende unicamente dai volumi e dall'entità delle transazioni che ne determinano il valore.
UN PASSO INDIETRO
Le banconote che diamo a un venditore in cambio di merce o servizi non sono solo dei rettangoli di carta (più precisamente, di cotone), ma si tratta di documenti garantiti prima di tutto dalla banca e poi dallo Stato (nel caso dell'Euro, dall’intera Unione Europea). Il venditore accetta quel tipo di pagamento perché sa che lo Stato (o la UE) gli garantisce che in ogni momento potrà ricomprare quei pezzi di cotone e dare in cambio oro o altri beni preziosi di valore equivalente.
Il discorso cambia se paghiamo con rettangoli di plastica - carte di credito o bancomat - perchè non c’è nessuna emissione né movimento di banconote fisiche ma solo di bit digitali. Tuttavia, ciò che non cambia è il fine ultimo: al termine della transazione il nostro conto online sarà più leggero e quello del venditore più pesante dello stesso ammontare di valuta. Rispetto allo scenario precedente, nel mezzo si aggiunge sempre l’interfaccia online di una banca dietro la quale agisce uno Stato che garantisce la custodia dei conti di tutti gli interessati.
Il problema sorge nel momento in cui non vogliamo riempirci il portafogli di banconote e al tempo stesso non ci fidiamo delle banche…
Ecco che a quel punto entrano in scena le criptovalute. Come in tutti i pagamenti online o tramite POS, le transazioni di criptovalute sono completamente digitali. Ma, a differenza di tutti gli altri metodi di pagamento, i bitcoin non sono garantiti da un singolo intermediario riconosciuto da chi vende e da chi compra: si garantiscono da soli. Ovviamente occorre che ogni transazione sia verificata e che l’importo oggetto di transazione finisca effettivamente nelle tasche elettroniche del soggetto corretto: di tutto ciò non si occupa più una istituzione fisica, bensì la crittografia digitale, che ha il doppio ruolo di proteggere le transazioni e di controllare la creazione di nuove monete.
PROCEDIAMO PER ESEMPI
Alessandro compra una torta da Gabriella. Questa transazione fisica non richiede alcun intermediario. La torta fatta da Gabriella ora è nelle mani di Alessandro. Gabriella non può venderla anche ad altri perché non la possiede più. Alessandro paga la torta ricevuta con una transazione digitale e – dal suo computer – invia a Gabriella un bitcoin (o altra criptovaluta che entrambi gradiscono): il prezzo concordato fra loro in precedenza.
Ma il bitcoin è, appunto, un insieme di bit, una lunga stringa di 0 e 1 che chiunque può copiare, e non è emesso quindi neppure tutelato da una istituzione garante e comunemente riconosciuta come tale. Chi ci assicura pertanto che Alessandro non faccia una copia del bitcoin prima di mandarlo a Gabriella e poi lo rifili anche a Veronica in cambio di un’altra torta sfornata da quest’ultima? Così Alessandro avrebbe usato un solo bitcoin per avere in cambio due torte. E, se ha ancora voglia di torta, potrebbe continuare così con altri venditori.
Nel frattempo Gabriella decide di spendere il bitcoin legittimamente guadagnato, acquistando delle caramelle da Veronica. Ma chi ci dice che Gabriella, una volta ricevuto il bitcoin da Alessandro, non ne abbia fatto una copia identica prima di spenderla con Veronica e poi non sia andata pure da Corrado a comprare i suoi biscotti con la copia?
Insomma, in definitiva: tra tutti i soggetti in ballo, chi è che possiede l’unica stringa di 0 e 1 lecita ed autentica, e chi invece dei falsi digitali che però sono identici e indistinguibili dall’unico legittimo ed originale?
IL REGISTRO DI CRIPTOVALUTE
Una soluzione può essere: usiamo un registro che tenga conto delle transazioni. Su di un registro è possibile ad esempio annotare ogni volta che viene emesso un bitcoin, e così non si potranno avere transazioni per un ammontare complessivo maggiore di quanta non sia l’effettiva disponibilità di valuta emessa. Questo risolve già alcuni problemi… ma ne fa sorgere altri!
Chi custodisce il registro, se non esiste alcuna autorità centrale garante e super partes?? Non possiamo certo consegnarlo a nessuno dei soggetti coinvolti negli scambi, perché c’è il rischio che qualcuno faccia il furbo taroccando il registro. Occorre una entità ritenuta affidabile da tutti, che custodirà il registro e verificherà che sia sempre tenuto aggiornato. Supponiamo che Marco sia un soggetto di fiducia tanto per Gabriella quanto per Alessandro: quando Gabriella riceve il bitcoin in cambio della torta, Marco segnerà sul registro +1 sul conto di Gabriella e -1 su quello di Alessandro.
Ma cosa succede se Alessandro e Gabriella non si fidano di Marco? Se Marco decidesse che ha diritto ad una percentuale per il disturbo di tenere il registro? Se Marco facesse lui il furbo e segnasse -1 sul conto di Alessandro ma +1 sul suo conto personale lasciando Gabriella a bocca asciutta?
RENDERE SICURA UNA CRIPTOVALUTA
Gabriella e Alessandro trovano una soluzione: distribuiscono il registro a tutti i loro amici fidati (che, nel contesto delle criptovalute, sono chiamati nodi, in inglese nodes) e non solo a Marco. In questo modo decentralizzano il controllo sul registro, adottando quindi il modello di rete peer-to-peer che è tipico ad esempio della struttura dei torrent. E trattandosi di un registro digitale, si può facilmente creare una applicazione che mantenga la copia di ogni nodo sincronizzata con tutte le altre copie presenti nella rete bitcoin. Se la maggior parte degli amici affidatari di una copia del registro si trovano d’accordo sulla validità di una nuova transazione, allora quella transazione viene riconosciuta da tutti e aggiunta a tutte le copie del registro.
In questo modo è più difficile fregare: se Alessandro o Gabriella volessero taroccare il registro, dovrebbero coinvolgere la maggior parte dei nodi, ovvero dei custodi delle copie, e comunque bisognerebbe sempre riuscire a trovarli d’accordo.
Se Gabriella scrivesse sulla propria copia del registro che ha ricevuto due bitcoin da Alessandro, oppure se Alessandro omettesse di scrivere che ha dato un bitcoin a Gabriella, il loro registro non sarebbe più sincronizzato con quello di tutti gli altri e la frode sarebbe evidente. E se anche uno dei due convincesse pure Marco ad alterare la sua copia, le loro copie resterebbero differenti da quelle della maggioranza dei custodi.
È ovvio che più numerosi sono i custodi, più diventa difficile riuscire a organizzare una cospirazione che coinvolga la maggioranza di questi.
Ecco dunque essersi avverata una transazione sicura di valuta tra due soggetti, senza la presenza di una autorità centrale che l’abbia garantita. Il trasferimento virtuale di una stringa di 0 e 1 – pur rimanendo una procedura digitale – assume lo stesso valore fisico della torta che Gabriella ha venduto a Alessandro. Ce ne è una sola copia in giro ed è sempre ben chiaro chi la possiede. L’unica differenza tra la torta e il bitcoin, è che la torta finirà presto per essere mangiata...
LA BLOCKCHAIN
I custodi che aggiornano il registro devono continuamente monitorare se avvengono nuove transazioni tra Alessandro, Gabriella, Marco, Veronica, … e confezionarle all’interno di un unico pacchetto (chiamato blocco, in inglese block). Allo scadere di un determinato periodo di tempo, il nuovo pacchetto contenente tutte le ultime transazioni viene aggiunto alla catena di tutti gli altri blocchi precedenti, che nel suo insieme costituisce il registro.
Questo registro si chiama Blockchain proprio perché, come ci dice la traduzione letterale dall’inglese, altro non è che una catena di blocchi, ciascuno a sua volta composto da un insieme ordinato di registrazioni delle singole transazioni avvenute in un dato intervallo di tempo.
NON SOLO SEMPLICI CUSTODI… MA ANCHE MINATORI
I custodi del registro che lo desiderano, possono diventare produttori di valuta e il sistema prevede che possano essere cospicuamente premiati in tal caso. Una pacchia. Coloro che, più volenterosi di altri, si adoperano anche per l’emissione di nuova valuta, vengono detti miners (cioè, minatori).
Qui il discorso si complica un po’.
UN ROMPICAPO MATEMATICO
In cambio del diritto a poter agganciare un nuovo blocco alla catena - che è la condizione necessaria per venire premiati con nuova valuta - i minatori devono riuscire a risolvere un complicato puzzle matematico che richiede un lavoro computazionale enorme per avere successo. Il primo minatore che riesce a risolvere il puzzle viene infatti premiato con… dei bitcoin (mica con delle torte!).
Con il prezzo di un bitcoin che oggi oscilla tra 5.000 e 15.000 euro, il miraggio di una simile ricompensa è tale da spingere sempre più minatori a realizzare sistemi di computing operanti in parallelo sempre più imponenti, allo scopo di trovare per primi la soluzione del puzzle e portarsi a casa il premio in bitcoin.
L'algoritmo che sottende alla gestione della Blockchain e alla generazione di nuova valuta è così “astuto” da regolare la difficoltà del nuovo puzzle sottoposto ai minatori in base alla potenza di calcolo da essi messa in campo: più questi aumentano la propria forza aggiungendo computer su computer, più il nuovo puzzle risulterà complesso. E viceversa, qualora la capacità di calcolo impiegata diminuisca.
MA DI CHE TIPO DI PUZZLE SI TRATTA?
Banalizzando, il puzzle in questione chiede “solo” di calcolare il risultato di una funzione matematica - chiamata hash - applicata a un blocco di caratteri alfanumerici.
In sostanza, tutti i minatori competono per creare tale hash, ovvero per determinare un valore numerico che sia una rappresentazione codificata del nuovo blocco di transazioni che sta per essere aggiunto alla catena. Una volta determinato, l’hash viene memorizzato all’interno del nuovo blocco, divenendo l'intestazione del blocco stesso.
Poiché tale valore è calcolato matematicamente, in ogni momento (anche negli anni a venire) sarà possibile riapplicare la medesima funzione al medesimo blocco ottenendo sempre il medesimo risultato: e questo è ciò che garantisce l’integrità nel tempo del blocco stesso.
La difficoltà computazionale è data dal fatto che non può trattarsi di un valore di hash “pur che sia”, ma che deve per forza iniziare con un numero di zeri imposto dall’algoritmo che sta alla base della Blockchain, e che varia periodicamente in proporzione alla potenza di calcolo globalmente impiegata dai cercatori: c'è una certa probabilità di trovare un hash che inizia con 0, una parecchio inferiore di trovarne uno che inizia con 00, e via dicendo, e ciò basta per complicare (o semplificare) il problema da risolvere in rapporto alla potenza di calcolo globalmente impiegata dai cercatori.
La quantità minima di zeri iniziali cambia ogni 2016 blocchi, in modo che il tempo medio tra i blocchi sia di 10 minuti (nell'intestazione di ogni blocco è chiaramente presente anche un campo di marca temporale).
NON PUO’ ESSERE DAVVERO TANTO DIFFICILE
Una funzione di hash è un'operazione one-way (a senso unico) che converte un blocco di testo in una stringa molto lunga. Ad esempio, usando lo sha256 (una delle funzioni matematiche di hashing più comuni) sul testo "SomeBlockOfTransactionsETC" si ottiene come risultato:
"afb4752c44369d4ac88b7936b4498a0f2ff10379633ba2e3d909852317a5170f"
Calcolare uno sha256 è un’operazione che un normale pc esegue istantaneamente. Ma non altrettanto si può dire se viene imposto che il risultato ottenuto inizi con una certa quantità di zeri.
Il blocco di testo su cui calcolare l'hash è di fatto composto da tre parti:
- un riferimento al blocco precedente, che serve a concatenare i blocchi tra loro e mantenere l’ordine cronologico all’interno della catena
- un insieme di caratteri che raccoglie l’elenco di tutte le transazioni avvenute nel periodo di tempo a cui il blocco si riferisce
- una stringa alfanumerica “a piacere” (in inglese, nonce) inserita dagli stessi minatori, che è superflua ai fini del funzionamento della Blockchain, ma che costituisce la componente variabile necessaria ad ottenere un risultato di hash sempre diverso.
Per spiegare, se la regola del momento imponesse di ricavare un hash che inizia con un solo 0, il blocco delle transazioni fosse descritto dal testo “BlockOfTransactions” e la parte variabile aggiunta dai minatori fosse “111”, allora lo sha256 di “BlockOfTransactions111” è:
"c64f8dc6051a967d6e8f731acdfc0edf89425eca3b99d219f3c32ccdda0efab1"
Ciò non soddisferebbe evidentemente la richiesta di avere uno 0 iniziale.
Ma se la parte variabile fosse invece “119” ecco che lo sha256 di “BlockOfTransactions119” diventa:
"029d882e8338e8428e5ec0480a817c735778cfb61b6e2839d120898c10278b81"
Eureka!
Quindi, in pratica, tutto è nelle mani dei minatori, che hanno l’onere di “inventare” la parte variabile, unirla al resto del blocco che rimane sempre costante, e calcolare l’hash su tale insieme vedendo se inizia con la quantità di zeri richiesti. Più velocemente si riesce a ripetere tutto ciò, il che significa milioni o miliardi di volte al secondo, e più possibilità si hanno di aggiudicarsi il premio in bitcoin.
VALIDARE OGNI BLOCCO, PER RISCUOTERE IL PREMIO
Ovviamente, i custodi/minatori si tengono sempre d’occhio l’un l’altro.
Quando uno di essi risolve il puzzle, prima che il nuovo blocco appena realizzato venga appeso alla Blockchain, è necessario che gli altri custodi analizzino la validità del nuovo pacchetto controllando che sia genuino. Quando la maggioranza degli utenti lo ha approvato, il nuovo blocco viene appeso alla Blockchain e quest’ultima viene distribuita a tutti i custodi che la sostituiscono alla precedente. Tutto questo processo si svolge automaticamente. Solo alla conclusione di questo percorso il minatore vincitore viene premiato con il suo gruzzoletto.
Quindi è fondamentalmente inutile tentare di imbrogliare nella gara di hashing, perché se altri minatori e nodi di rete non sono d'accordo sul fatto che il tuo blocco ha rispettato tutte le regole, questo sarà ignorato e tu avrai sprecato il tuo lavoro di calcolo.
Dal momento in cui un blocco viene accettato dalla maggioranza dei custodi/minatori, tutte le transazioni contenute in quell’ultimo blocco diventano pubbliche e quindi chi ha pagato bitcoin non li possiede più mentre chi li ha ricevuti li possiede materialmente.
LA FIRMA DIGITALE
Resta ancora un quesito: come fanno i singoli nodi a sapere che la richiesta di approvare un nuovo blocco è effettivamente autentica e legittima, e non generata ad esempio da un soggetto esterno che sta attaccando il sistema e cercando di truffare i nodi?
L’autenticità dei messaggi di richiesta è garantita dalla firma digitale, che in questo caso è un algoritmo matematico che impedisce la copia o la contraffazione. La firma digitale deriva da un complesso meccanismo di crittografia e matematica, ed è formata da una chiave privata e da una chiave pubblica.
Gabriella invia a Alessandro un testo in chiaro. In allegato al messaggio vi è anche la firma digitale del messaggio criptata con la chiave privata di Gabriella. Alessandro usa la chiave pubblica di Gabriella per ottenere la firma digitale. Conoscendo l’algoritmo con cui tale firma è stata calcolata, Alessandro può prendere il messaggio in chiaro e calcolare a sua volta l’impronta digitale, che confronterà poi con quella inviatagli da Gabriella in allegato. Quando le due impronte risultano identiche, l’autenticità è garantita (ma non la riservatezza).
UN SISTEMA PERFETTO E INSOSTENIBILE
Il tallone di Achille del bitcoin – e di tutte le altre criptovalute che funzionano in questo modo – si trova proprio nel meccanismo stesso che le crea e le garantisce.
Ogni minatore, per arrivare a risolvere il puzzle prima degli altri minatori e aggiudicarsi il bitcoin, deve avere a disposizione una potenza di calcolo superiore a quella degli altri. Non si tratta quindi di brufolosi nerd armati di pc chiusi nel garage di casa: oggi la battaglia per il bitcoin si combatte fra grandi aziende specializzate e dotate di enormi centri di calcolo.
Il business è enorme: la somma dei ricavi mondiali prodotti dalla caccia ai nuovi bitcoin nell’ultimo anno è stata di 18 miliardi di $, mentre il costo globale stimato per crearli è stato inferiore ai 2 miliardi di $. Quindi, in media, queste aziende hanno ricavato più di 9 dollari per ogni dollaro investito.
Ma tutte queste batterie di computers consumano un mare di energia per funzionare. Peggio ancora, col progressivo complicarsi del puzzle da risolvere per attaccare un blocco alla blockchain e generare nuovi bitcoin, questa potenza di calcolo deve aumentare. E con essa anche l’energia consumata.
Per dare un’idea, ogni giorno vengono consumati 100 milioni di KWh solo per produrre bitcoin, corrispondenti a un consumo annuale pari a 36,32 TWh. Confrontando i fabbisogni energetici mondiali, si scopre che ben 152 Stati consumano meno di quello che viene consumato dai miners: per scavare bitcoin si usa più energia di quella utilizzata da tutta la Bulgaria, e la International Energy Agency mette i miners al 37esimo posto al mondo dopo Algeria, Vietnam e Svezia ma prima di Qatar, Uzbekistan e Norvegia.
Il problema peggiore dei bitcoin non è solo il consumo energetico totale, ma il fatto che queste infrastrutture di miners si trovano principalmente in Cina e vengono prevalentemente alimentate dalle centrali a carbone. Qui l’elettricità generata dal carbone è disponibile a prezzi molto bassi: per questo interi quartieri industriali cinesi vengono riempiti di computers dedicati esclusivamente a questo traffico. Traffico virtuale ma potenzialmente in grado di generare in media guadagni del 900%.
Ogni singola transazione in bitcoin produce così ben 123,31 chilogrammi di anidride carbonica (ebbene sì: chilogrammi), pari a poco meno di 18 milioni di tonnellate di CO2 all’anno. E si sta parlando solo di bitcoin e non delle altre criptovalute che sono nate sulla scia di questi.
Se l’aumento di consumo di energia richiesto per ogni nuova criptovaluta mantenesse costante la progressione sin qui registrata, la loro produzione consumerebbe tutta l’energia mondiale entro febbraio 2020.