Glossario / Mining e consenso
Difficoltà di mining
Noto anche come difficoltà, difficoltà della rete, Mining difficulty.
- Che cos'è la difficoltà di mining?
- La difficoltà di mining è la manopola che la rete gira ogni 2.016 blocchi per mantenere l'arrivo dei blocchi a circa dieci minuti di distanza, indipendentemente da quanto hashrate si presenti, molto o poco.
La difficoltà è un unico numero che esprime quanto è più difficile trovare un blocco rispetto a quanto lo fosse per Satoshi a gennaio 2009. Viene ricalcolata ogni 2.016 blocchi, circa due settimane, in base a quanto hanno effettivamente impiegato i 2.016 precedenti, e può muoversi al massimo di un fattore quattro in entrambe le direzioni. Ecco perché i blocchi da dieci minuti sono sopravvissuti a un aumento di centomila miliardi di volte della potenza di mining.
Come funziona
La difficoltà è un rapporto, e il protocollo lo calcola solo dalle marche temporali, senza alcun intervento umano in nessun punto del processo.
Alla base c'è il target, un numero di 256 bit sotto il quale deve cadere l'hash dell'intestazione di un blocco, memorizzato nell'intestazione come un campo compatto di quattro byte chiamato nBits. La difficoltà è definita come il target di difficoltà 1 diviso per il target corrente, quindi una difficoltà di 126 mila miliardi significa che un'intestazione valida è 126 mila miliardi di volte più rara che nella prima settimana della rete. I nodi in realtà non verificano mai la difficoltà; verificano l'hash dell'intestazione rispetto al target. La difficoltà esiste perché un rapporto è leggibile e una soglia di 256 bit no.
Il ricalcolo avviene a ogni altezza di blocco multipla di 2.016. Il nodo prende quanto è durata davvero quella finestra, la confronta con i 20.160 minuti previsti e scala il target in base al rapporto, con un limite per cui nessun singolo aggiustamento può rendere il mining più di quattro volte più facile o quattro volte più difficile. C'è un famoso errore di uno nel calcolo: l'intervallo di tempo è misurato tra il primo e l'ultimo blocco della finestra, che copre 2.015 intervalli invece di 2.016, per cui la rete punta in realtà a circa 10,0049 minuti per blocco. Correggerlo sarebbe un hard fork per un errore di arrotondamento, quindi resta così.
La storia mostra il meccanismo in funzione in entrambe le direzioni. La difficoltà è rimasta a 1 per quasi un anno, fino al primo ricalcolo al blocco 32.256 il 30 dicembre 2009, quando è salita a circa 1,18. Da allora è salita oltre 120 mila miliardi. Il calo più grande mai registrato è avvenuto il 3 luglio 2021, quando l'espulsione dell'industria del mining da parte della Cina ha ridotto la difficoltà del 27,94 per cento in un solo passaggio, da circa 19,93 mila miliardi a 14,36 mila miliardi.
Perché questo conta quando compri bitcoin
La difficoltà è il motivo per cui il tuo prelievo si conferma in minuti e non in ore, e una difficoltà non aggiornata è il motivo per cui a volte non succede.
Il meccanismo corregge solo in ritardo. Se una grande quota di hashrate si spegne, i blocchi continuano ad arrivare con la vecchia difficoltà e impiegano più di dieci minuti ciascuno, fino al ricalcolo successivo, anche due settimane dopo. Durante quelle settimane le conferme sono più lente, la mempool si svuota più lentamente di quanto si riempia e le commissioni salgono perché lo stesso spazio di blocco viene messo all'asta meno spesso. Chi prelevava da un exchange a luglio 2021 lo ha sentito direttamente. I blocchi di quella finestra duravano in media quasi quattordici minuti.
Il caso opposto è più silenzioso ma più comune. Quando entrano in linea nuove macchine, i blocchi arrivano più rapidamente di dieci minuti finché la difficoltà non si allinea, quindi le conferme sono per un breve periodo più economiche e più rapide di quanto suggerisca il calendario.
Due cose che la difficoltà non fa meritano di essere dette chiaramente. Non ha alcun effetto sul calendario degli halving, che conta i blocchi e non il tempo, e non è un segnale di prezzo. La difficoltà sale perché i miner hanno comprato macchine che erano redditizie mesi prima. Leggerla come una previsione è guardare nello specchietto retrovisore.
Il ricalcolo del 3 luglio 2021
Il ricalcolo del 3 luglio 2021 è la dimostrazione più chiara del meccanismo, perché lo shock è stato enorme e la correzione è stata automatica.
La stretta della Cina ha messo offline una grande frazione della flotta di mining mondiale nel giro di poche settimane a metà 2021. Le macchine sono finite in container diretti in Texas, Kazakistan e Paraguay, e durante il trasporto non hanno calcolato alcun hash. La rete non si è fermata né ha chiesto aiuto a nessuno. Ha semplicemente prodotto blocchi più lentamente: una riduzione del 27,94 per cento implica che la finestra precedente aveva una media di circa 13,9 minuti per blocco invece di dieci. Al ricalcolo la difficoltà è scesa a 14,36 mila miliardi, il ritmo di dieci minuti è tornato nel giro di ore e i quattro aggiustamenti consecutivi al ribasso di quell'estate hanno insieme tolto circa il 45 per cento al numero. Gli aggiustamenti nella direzione opposta hanno cancellato l'intero calo nei mesi successivi, senza che nessuno decidesse che dovessero farlo.
Difficoltà di mining vs aggiustamento della difficoltà
La difficoltà di mining è il numero; l'aggiustamento della difficoltà è l'evento che lo cambia. La difficoltà è un valore che resta costante per un'intera epoca di 2.016 blocchi, quindi ogni blocco di quell'epoca è esattamente tanto difficile da trovare quanto ogni altro. L'aggiustamento è il ricalcolo che avviene al confine dell'epoca, ed è ciò che i miner osservano, perché è il momento in cui cambia il ricavo per macchina. Dire che la difficoltà è salita un martedì è un modo abbreviato per dire che quel martedì c'è stato un aggiustamento.
Difficoltà di mining vs soglia target
La difficoltà di mining è una comodità per gli esseri umani; il target è ciò che il software fa rispettare. Il target è il tetto reale di 256 bit sotto il quale deve cadere l'hash di un blocco, ed è ciò che compare in ogni intestazione di blocco, compresso nel campo nBits. La difficoltà deriva da esso per divisione e non compare in nessuna parte del blocco. Quando un titolo dice che la difficoltà è salita del 5 per cento, il cambiamento di fondo è che il target diventa circa il 5 per cento più piccolo, e ogni miner del mondo ha bisogno, in silenzio, di circa il 5 per cento di tentativi in più per blocco.