I miners non chiudono baracca, perchè Satoshi aveva calcolato tutto

Immaginate di dover fare, per un gioco, una gara automobilistica in auto in montagna: alla meta vi aspetta una quantità di gettoni d’oro, pari a 3.000 Euro (nel momento in cui partite). Vi sono solo due regole. La prima è che tutti i partecipanti debbano sempre percorrere 20 km ogni 10 minuti.  Quindi, non dovreste mai scendere sotto la velocità di 120 km/h, il che vi permette di soddisfare il primo requisito.

Pronti, via, si parte con la gara e siete sull’autostrada. Procedete spediti. Sapete che con quella velocità siete competitivi. Poi prendete la rampa d’uscita e – tutto d’un tratto – vi trovate su un sentiero sconnesso e in salita. Non riuscite più a mantenere la velocita di 20 km ogni 10 minuti e dovete consumare molta più benzina. Ma l’ammontare del montepremi è sufficiente anche al netto di questi ulteriori costi.

Poi, d’un tratto, una notizia viene comunicata ai piloti in gara: il montepremi si è ridotto del 70%. Non basterebbe più per coprire, forse, neanche la benzina e i costi necessari a raggiungere la metà, e comunque potrebbe continuarsi soltanto a una velocità molto minore da quella richiesta. Continuare la gara diventa anti-economico e, pian piano, tutte le macchine considerano che forse sarebbe meglio fermarsi.

La seconda regola del gioco

Tuttavia c’è un meccanismo che rappresenta la seconda regola del gioco. Ogni 12 sequenze da 20 km il sistema di gara controlla in quanto tempo queste sequenze siano state completate dai piloti in gara: dovrebbero di norma essersi concluse in 120 minuti (prima regola è 20 km ogni 10 minuti).

Se calcola invece che le auto – al completamento della dodicesima sequenza da 20 km – le hanno percorse in 180 minuti anziché 120, allora comprende che i piloti stanno avendo difficoltà a fare 20km in 10 minuti e, per risolvere tale problema, al sistema di gara varia il percorso del tracciato, includendo strade meno difficili in modo che le 12 sequenze da 20km tornino ad essere percorse in 120 minuti. Cosi i piloti sono facilitati nel percorrere il tracciato alla velocità richiesta (anche con costi adeguati rispetto al montepremi, che è più esiguo).

Se immaginate che i piloti siano miners, questo è quello che succede sulla blockchain bitcoin tramite un meccanismo chiamato hash rate adjustment.

Satoshi Nakamoto ha sapientemente costruito tale tecnologia in modo che i miners, in caso di una forte diminuzione del prezzo del Bitcoin, non spengano (tutti) le loro costose macchine ma, invece, continuino nel ruolo di “cervelloni matematici” assetati di bitcoin: lo fanno perché ricevono il supporto di una funzionalità ad hoc che – all’occorrenza, secondo quanto spiegherò sotto -, diminuisce la difficoltà computazionale necessaria a minare i bitcoin.

Per capire al meglio ciò di cui si tratta, è importante però cominciare dalla definizione di hashing power: l’hash è il risultato (output) di una funzione crittografica di hash. L’hasing power è la potenza computazionale necessaria a raggiungere l’output. Nell’esempio di prima, dunque, l’output è percorrere 20 km ogni 10 minuti. L’hasing power è la velocità del veicolo necessaria per raggiungere l’output.

Proviamo adesso a trasferire tutto nel reame del bitcoin.

Una regola del protocollo è che i blocchi di transazioni si completino ogni 10 minuti. A livello tecnico, la regola è che la difficoltà di risolvere l’output, sulla base dell’hasing power complessivo del network dei miners, deve essere sempre tale per cui l’intervallo tra un blocco e l’altro sia di 10 minuti.

Pertanto, il sistema è ben tarato se si hanno 2016 blocchi minati ogni due settimane, in quanto 2016 blocchi x 10 minuti è uguale a 20160 minuti, pari a 14 giorni. Tale numero di blocchi indica che (a) la difficoltà per risolvere l’algoritmo che completa il blocco e (b) l’ammontare di hashing power dei miners aggregata nell’adempiere a tale compito, sono perfettamente adeguate a garantire il corretto funzionamento temporale della catena.

Immaginiamo che dopo 14 gg non vi siano 2016 blocchi minati, ma 2217, ovvero il 10% di blocchi in più. Al raggiungimento del 2016mo blocco, con giorni di anticipo rispetto al tempo previsto di 14 giorni, Il protocollo avrà già aumentato la difficoltà del 10%, in modo da ristabilire la regola di un blocco minato ogni 10 minuti. Se, invece, dopo due settimane abbiamo soltanto 1814 blocchi minati, ovvero il 10 % di blocchi in meno rispetto al target di 2016/14gg, allora al raggiungimento del 2016mo blocco, con giorni di ritardo rispetto al tempo previsto di 14 giorni, il protocollo abbasserà la difficoltà. Questo calcolo avviene ogni 2016 blocchi (vedi sotto).

Difficulty History

Date Difficulty Change Hash Rate
Dec 03 2018 5,646,403,851,534 -15.13% 40,418,533,137 GH/s
Nov 16 2018 6,653,303,141,405 -7.39% 47,626,199,005 GH/s
Nov 01 2018 7,184,404,942,701 0.02% 51,427,973,784 GH/s
Oct 18 2018 7,182,852,313,938 -3.65% 51,416,859,634 GH/s
Oct 04 2018 7,454,968,648,263 4.23% 53,364,744,228 GH/s
Sep 20 2018 7,152,633,351,906 1.90% 51,200,543,878 GH/s
Sep 07 2018 7,019,199,231,177 4.34% 50,245,385,237 GH/s
Aug 24 2018 6,727,225,469,722 5.29% 48,155,355,642 GH/s
Aug 11 2018 6,389,316,883,511 7.39% 45,736,511,764 GH/s
Jul 29 2018 5,949,437,371,609 14.88% 42,587,731,568 GH/s
Jul 17 2018 5,178,671,069,072 -3.45% 37,070,371,464 GH/s
Jul 02 2018 5,363,678,461,481 5.64% 38,394,705,964 GH/s

Quindi ogni 2016 blocchi si ha un aggiustamento universale della difficoltà e, di conseguenza, dell’hasing power necessario per risolvere l’algoritmo.

Perché non tutti i miners spegneranno le macchine

Se, per esempio, la potenza computazionale del network diminuisse del 50% da quella ottimale, i blocchi inizierebbero a formarsi ogni 20 minuti invece che 10. Questo andrebbe avanti fino al 2016mo blocco, e pertanto l’aggiustamento potrebbe aversi dopo 4 settimane al posto che 2. Ma anche con più ritardo.

Quindi ci sarà un intervallo di tempo tra le due settimane previste e l’effettivo tempo di completamento di 2016 blocchi (“Ritardo”).

Durante questo Ritardo i miners sono costretti a operare a un livello di difficoltà che non è idoneo, ma di gran lunga superiore, al potere di calcolo loro disponibile. Pertanto si troveranno nella situazione di essere in un “guado” fino a quando, al 2016mo blocco successivo, il sistema ri-bilancerà la difficoltà e renderà nuovamente profittevole, per i miners ancora attivi, continuare il mining.

Ovviamente in questo periodo tra un aggiustamento e un altro molti miners non continueranno a minare perché non possono permettersi di consumare l’energia necessaria ad arrivare al prossimo aggiustamento di difficoltà. Di converso, i miners che hanno le risorse per continuare le operazioni fino alla chiusura del 2016mo blocco, inizieranno a guadagnare molto più facilmente non appena si “aggiusta” la difficoltà. I “piccoli pesci” probabilmente moriranno, mentre i più grandi riusciranno a fronteggiare, complice le loro risorse ed un’attenta pianificazione e gestione del rischio, il periodo temporaneo di sproporzionata difficoltà di risoluzione nel network.

Bisogna comprendere che i Miners hanno una prospettiva a lungo termine.

Hanno in mente una meta futura. Comprano molta energia a prezzi vantaggiosi perché sanno che devono assicurarsi un consumo ingente di elettricità sul lungo termine. Alcuni si hedgano con derivati stando long sull’energia elettrica e – al contempo – shortando una percentuale dei loro bitcoin con i derivati sui BTC, vendendoli oggi al prezzo di novembre 2017.

Inoltre non pagano l’energia su base settimanale, e neanche al mensile. Probabilmente la pagano all’anno.

Pertanto, molti miners sono “equipaggiati finanziariamente” e hanno sviluppato una strategia di risk management idonea a poter continuare le operazioni in perdita per vari mesi. Devono solo aspettare il momento in cui si arriverà al prossimo 2016mo blocco per ritornare profittevoli. Probabilmente chiudere tutta “la baracca” sarebbe ben più costoso e necessiterebbe di più tempo.

Inoltre, se nel periodo di difficoltà esorbitante gli altri piccoli miners chiudono le operazioni, dopo l’aggiustamento del prezzo quelli che rimangono avranno ancora più fette di mercato.

Una bella selezione pseudo-Darwiniana dei miners e – al contempo – un gran bell’incentivo per continuare a minare durante la tempesta. Un po’ come nella vita…

E se la tempesta durasse per anni? Beh, allora il consensus potrebbe portare a una variazione del protocollo tale per cui l’aggiustamento avvenga in un intervallo tra blocchi minore.

Gioacchino Rinaldi