Andiamo a rubare con Papero - Side lesson - Criptovalute - Part 4
Eccoci qua, cari Criptomaniaci Spregiudicati, riprendiamo l'argomento criptovalute, visto che la pensione non la vedrete mai, e non vi resta che capire se vale la pena investire quei quattro spicci che vi rimangono sul conto in economie volatili. Uso il “voi”, perché io sto puntando a depositi più affidabili, come quello che utilizzava mia nonna.
Ma mettiamo per un attimo da parte le nostre vicissitudini contabili.
Oggi proveremo a capire perché generare criptovaluta richiede più energia elettrica di quella che occorre per fare il polpettone nel forno e il lavaggio delle lenzuola a 90 gradi nello stesso momento, mentre l'Eva-01 si ciuccia tutta l'energia restante per fare fuori l'Angelo Ramiel con un colpo di un fucile sperimentale a positroni.
Quello che abbiamo visto finora è che una criptovaluta altro non è che un registro dove vengono raccolte tutte le transazioni fatte dai possessori della valuta stessa. Abbiamo anche capito che ogni transazione è firmata digitalmente, e può essere eseguita solo se chi opera la transazione ha abbastanza valuta per poterla fare. L'ultimo problema che rimane da risolvere è chi detiene questo registro pubblico delle transazioni. Avevo anticipato che l'unico modo a “fiducia zero” fosse quello di dare ad ognuno una copia del registro, così che tutti avessero la stessa informazione.
Il problema è: come fare? Dobbiamo garantire che ogni possessore di valuta possa avere la stessa copia di tutte le transazioni, e ogni volta che viene effettuata una nuova operazione tutti gli altri possano essere aggiornati, e tutti devono poter certificare che tutti i registri sono autentici. Su Internet esiste una sola risposta a questo problema: E’ IMPOSSIBILE, mettiamoci l'animo in pace, non ne parliamo più.
Hai ragione, Mara, la lezione poteva tranquillamente finire qui, se non fosse che, un bel giorno del 2008, un pazzo assassino al nome di Satoshi Nakamoto se ne uscì con una roba tanto geniale quanto assurda quanto incomprensibile quanto allucinante, ovvero il concetto di blockchain. Fun fact, questo Nakamoto non esiste, ovvero non si sa chi sia, abbiamo solo un documento di specifiche scritto da questa persona, ma nessuno l'ha mai visto, non si sa se è una persona sola, o un gruppo di persone, o degli alieni che ci hanno lasciato questo PDF prima di ritornare sulla loro galassia.
https://bitcoin.org/bitcoin.pdf
Satoshi-chi-cazz-è sapeva che il problema non era risolvibile usando solo Internet come strumento, e usò un artificio matematico-informatico, partendo da questo ragionamento: siccome non posso fidarmi di Internet, e non posso fidarmi delle persone, facciamo in modo che ogni registro abbia, oltre alle transazioni, una informazione in più, una stringa, che in sé non significa nulla, però ha queste caratteristiche:
non deve essere frutto di un calcolo deterministico, l'unico modo per calcolare la chiave che genera quella stringa è tentare a cazzo
essendo frutto di un tentativo casuale, la probabilità di indovinare la chiave deve essere talmente bassa da richiedere un tempo lungo abbastanza da rendere praticamente impossibile la possibilità fregare il sistema in un periodo ragionevolmente sicuro
la difficoltà deve essere proporzionata al tempo medio che un gruppo di utenti richiede per indovinare la chiave
Il punto 2 lo vediamo nella prossima parte, esaminiamo i punti 1 e 3. Il punto 1 crea le basi per generare un blocco di quell’insieme di blocchi che costituisce una blockchain, il punto 3 è più specifico delle criptovalute, e fa in modo da non generare troppa moneta, facendone perdere il valore.
Il punto 1 ci spiega anche perché, nel mondo delle criptovalute, questa ricerca della chiave si chiama mining: essendo una operazione fatta su tentativi, ci si prova fino a quando non viene trovata la chiave, esattamente come cercare l'oro in una miniera.
No, non si fa così, non fatelo a casa, poi vi spiegherò come nelle parti finali come fare (se riesco a capirci qualcosa).
Il metodo in sé è abbastanza semplice: si prende un gruppo di transazioni, altre informazioni (descritte nella prossima parte), e si deve indovinare un valore X tale per cui
SHA256( transazioni + altra roba + X ) = risultato
SHA256 è una funzione di hash, come le abbiamo viste nelle lezioni sulla crittografia, ovvero una funzione che trasforma un testo A in un altro testo B, in modo tale che sia impossibile (ovvero, serve un tempo infinitamente assurdo) capire, dato il testo finale B, quale fosse il testo A di partenza, ovvero una funzione matematica impossibile da invertire.
Il risultato è un testo che abbia delle caratteristiche di probabilità precise, così da sapere quanti tentativi occorrono, in media, per riuscire ad ottenerlo. Ad esempio, nel mondo di alcune criptovalute, tra cui Bitcoin, viene richiesto di trovare quel valore X tale che, combinato con le altre transazioni e con l’hash del blocco precedente (che vedremo nella prossima parte), dia un testo il cui SHA256 sia una stringa con N zeri all'inizio. Non è proprio al 100% così, ma può essere presa come esempio per capire la difficoltà e il tempo medio per trovare il valore X.
Se ricordate la lezione sulla probabilità, se avete N monete, la probabilità di lanciare N monete in aria e avere una combinazione precisa (tipo, ad esempio, tutte testa), è ½^N. Esempio, se abbiamo 30 monete, la probabilità di avere 30 testa è ½^30, ovvero 1/1.073.741.824, ovvero poco meno di una su un miliardo, ovvero dobbiamo provare un miliardo di volte per avere, in media, la possibilità di vedere, almeno una volta, 30 testa di fila.
Supponiamo di riuscire a tirare le 30 monete 10 volte al minuto: questo vuol dire che, per ottenere 30 testa, ci impiegheremo, in media, 74.565 giorni, ovvero poco più di 204 anni. Se però siamo in 1000 persone a fare questa operazione, con 30 monete ciascuno, sempre 10 volte al minuto a testa, ogni 3 mesi circa potrebbe esserci un vincitore. Il calcolo in sé non è corretto, perché non tiene conto delle probabilità congiunte, ma lasciamo stare i dettagli, seguitemi qualitativamente: capite da questo esempio che, all'aumentare dei partecipanti, la probabilità deve essere abbassata di conseguenza, per far sì che ci sia mediamente un vincitore nello stesso intervallo di tempo: se la probabilità non venisse abbassata, la probabilità che la chiave venga subito trovata sarebbe molto alta, visto l’alto numero di partecipanti (tradotto: più siamo a giocare, più culo abbiamo, semplicemente per il fatto che aumentano il numero di tentativi nello stesso arco di tempo).
Una volta scoperta la chiave, quel registro contenente quella lista di transazioni viene “pubblicato” al resto del mondo, e tutti possono verificare che il valore X è corretto, basta calcolare la funzione di hash sul blocco e verificare che il risultato torni. X viene definito “proof of work”, ovvero la prova che del lavoro è stato eseguito per certificarlo. Il registro certificato viene inserito in una lista, chiamata blockchain, che vedremo nel dettaglio nella prossima parte.
E qui arriviamo al discorso del guadagno. Quando un nuovo blocco viene certificato, chi ha trovato la chiave viene ricompensato con della criptovaluta, quindi in quel blocco apparirà una transazione in più, dove al fortunato viene dato un certo quantitativo in criptovaluta, che potrà spendere.
Quanta valuta riceve? Beh, qui dipende dalla politica di quella criptovaluta. Nel mondo dei Bitcoin, ad esempio, ogni volta che un blocco viene certificato viene emessa altra valuta, e più blocchi ci sono nel mondo meno valuta viene data al prossimo fortunato, per limitare la quantità di valuta totale presente in quel sistema economico (e questo ne fa salire ovviamente il valore, visto che devo lavorare di più per averne di meno), ma non deve essere al tempo stesso talmente esigua da scoraggiare i miner nel loro lavoro, altrimenti il sistema crolla.
Sappiamo già che le transazioni sono pubbliche, e possono essere visualizzate da tutti. Qui potete osservare il primo blocco Bitcoin mai emesso, il 9 gennaio del 2009: https://www.blockchain.com/btc/block/1. Contiene una sola transazione, che è la ricompensa del proof of work, pari a 50 BTC. Nel 2009 non so quanto valesse 1 BTC in euro o dollari, probabilmente nulla, visto che nessuno se li cagava.
L'ultimo blocco certificato, nel momento in cui sto scrivendo questa lezione, è stato rilasciato giorno 8 gennaio 2022 (https://www.blockchain.com/btc/block/00000000000000000003712c4b38137591d00140cd97d7ff77e60f782e9e19ba), al fortunato sono stati dati 6,25 BTC, ai quali corrisponde un importo al cambio corrente di 238.830 euro.
Prima di far rigirare Marx nella tomba con i vostri orgasmi capitalisti, sappiate che l’attuale livello di difficoltà corrisponde a cercare una stringa di hash con un numero di zeri che va da 17 a 19, ovvero di 76 bit a zero nel caso peggiore, ovvero una probabilità di ½^76, ovvero 1 su un numero a 22 cifre, il più difficile superenalotto mai esistito, ma con milioni di persone che ci provano miliardi di miliardi di volte nello stesso momento, è possibile vincerlo.
Qui si innesta adesso il discorso della spesa e della resa, e qui mettiamo da parte un attimo la matematica complicata e facciamo due conti con le nostre tasche.
Facendo un po’ di ricerche sul web, una scheda grafica tipo la NVIDIA GTX 570, che trovate a 170 euro su Amazon, riesce a calcolare 105 milioni di hash al secondo. Supponendo utopisticamente di essere da soli sul pianeta a cercare chiavi, alla difficoltà attuale, vi servono più di 3 milioni di anni per avere la prima botta di culo e trovare la stringa, ovvero dopo quando il pianeta Terra sarà completamente sott’acqua per il cambiamento climatico e il Sole avrà ingoiato la Terra, avrete trovato il primo hash. Forse. Bella l'economia virtuale, eh? Non sbattetevi a capire se gli esponenti son giusti, se avessi anche sbagliato i calcoli di qualche ordine di grandezza, è un tempo comunque schifosamente eterno. E adesso mi aspetto questo tipo di commento dai miei lettori:
Per accelerare il calcolo, sono stati sviluppati circuiti dedicati (chiamati ASIC) che fanno una sola cosa, a differenza dei computer che sanno fare tutto, ma la fanno in modo superveloce. Da una ricerca, ho trovato questo modello, https://compassmining.io/hardware/bitmain/antminer-s19-pro-110-th-2a8da616-ebe3-4d11-82ab-531f2d5ab26a, che consuma più di quello che il vostro contatore è in grado di sopportare ed è in grado di calcolare 110 trilioni di hash al secondo, quindi 6 ordini di grandezza in più della NVIDIA di prima. Questa bestia costa più di 10.000 dollari, oltre a tutta l'energia elettrica che dovrete spendere per trovare la chiave. Rifacciamo i conti, sempre sull’ipotesi utopistica che siate gli unici a cercare la chiave nel pianeta: con cento e passa trilioni di hash al secondo vi servono in media 1157 giorni per trovare un hash, ovvero poco più di 3 anni.
Se adesso siamo in 1000 a cercare l’hash, facendo il calcolo errato e grossolano di prima, ci servono circa 2 giorni. Fate conto che, nel caso del Bitcoin, la difficoltà (a.k.a. più o meno quel numero di zeri iniziale) viene tarata ogni due settimane, sulla base dei “minatori” disponibili, in modo tale da avere un blocco, quindi nuova valuta, circa ogni 10 minuti.
In soldoni: dovete spendere tantissimo in energia e capitale iniziale, per gareggiare con gli altri, e se vi va di culo, ma mooooolto di culo, avrete fatto jackpot. Chi sono i vostri avversari? Beh, li potete trovare qui:
https://www.sunbirddcim.com/blog/largest-bitcoin-mining-farms-world
Top player, Dailan, in Cina, riesce a calcolare 360 milioni di trilioni di hash, consumando al mese qualcosa come più di un milione di dollari in elettricità. Le grandi corporazioni, visto il forte valore di alcune criptovalute, ci si son buttate a pesce, potendoselo permettere, consumando l'equivalente energetico di quello che basterebbe per farci trovare un altro pianeta in un'altra galassia e ricominciare ad inquinare anche la nostra nuova casa. Secondo il Cambridge Center for Alternative Finance (CCAF), fare mining di Bitcoin attualmente consuma 110 Terawattora all’anno, ovvero lo 0,55% della produzione elettrica globale, ovvero il consumo annuo di paesi come Malaysia o Svezia. E stiamo parlando del solo Bitcoin, eh. E’ sostenibile una roba simile, dal punto di vista politico e considerando i troiai ambientiali nei quali viviamo?
Cara Greta, ormai questo mondo l’abbiamo fottuto alla grande, per quanto io stimi tantissimo la tua determinazione nel cambiare le cose, mi sa che non ci resta che schiattare. Ma torniamo ad inquinare sul pezzo.
Lo so che state pensando: meglio l'agricoltura, fa bene al cuore, all'anima e al portafogli. E avete ragione. Però, se proprio volete provarci anche con poco, potete ricorrere al famoso proverbio “l'unione fa la forza”: esistono, nel mondo, i “mining pool”, ovvero persone che si mettono insieme e cercano allo stesso momento, con un nome unico, la chiave. In caso di vittoria di uno dei partecipanti, si divide in parti più o meno uguali (a seconda delle politiche del pool). Si guadagna molto meno, ma aumentano le probabilità di riuscire. Da qui a capire se possa convenire o meno, non saprei dirvi.
Non vi lagnate, ho detto che vi avrei spiegato le criptovalute e la blockchain, non come diventare schifosamente ricchi, altrimenti non sarei qui a riempirvi di fregnacce.
Nella prossima lezione vedremo il punto (2), punto che ha dato la nascita al concetto di blockchain.