Difficoltà

Intermedio

Cos'è la difficoltà?

Nelle criptovalute, il termine difficoltà si riferisce allo sforzo richiesto per il mining di un blocco. Le blockchain Proof of Work (PoW) implementano determinate regole che fanno aumentare o diminuire questo valore in base alla quantità di potenza di hashing sulla rete. Questo serve a garantire che i blocchi non vengano prodotti troppo rapidamente e a mantenere la sicurezza continua della rete.
Bitcoin, ad esempio, imposta il tempo di blocco a circa dieci minuti (il tempo medio necessario per trovare un nuovo blocco). Se i blocchi vengono trovati troppo rapidamente, la rete aumenta la difficoltà, riducendo di fatto la soglia target di mining.

Al contrario, se i blocchi richiedono troppo tempo per essere trovati, la difficoltà diminuisce, aumentando il target. Questo target è un numero che viene reimpostato periodicamente. Per minare con successo un blocco, il miner deve trovare un hash inferiore a questo numero.

Come funziona il mining: un esempio semplificato

Possiamo usare un semplice esempio. Supponiamo di avere il termine “binance” e di voler produrre un hash SHA256 il cui output sia numericamente inferiore a un target specifico che corrisponde approssimativamente a hash che iniziano con un certo numero di zeri nella loro forma esadecimale.

Nel mining reale, i miner cercano di trovare un valore hash inferiore al numero target, che è un numero molto grande rappresentato in formato 256 bit. Possiamo illustrarlo aggiungendo iterativamente numeri a “binance” (ad es.“binance1”, “binance2”, “binance3”) e calcolandone l'hash finché non otteniamo un output che soddisfa un criterio semplificato, come l'inizio con zeri iniziali.

Quando arriviamo a ‘binance10’, ce l’abbiamo fatta. Se vogliamo che i primi due caratteri siano “0”, dobbiamo continuare a calcolare l'hash fino a “binance99”. Per ottenere tre zeri, abbiamo dovuto calcolare l'hash fino a “binance458”. Ma per quattro zeri? Tra i primi venti milioni di numeri, non c’è un input che ci dia un output del genere.

Questo dovrebbe darti un’idea di come funziona il mining, con la differenza che i miner stanno cercando di trovare un numero che rientri sotto un target. Più basso è questo target, più difficile è trovare una soluzione, motivo per cui Bitcoin consuma così tanta potenza di calcolo. I miner calcolano ripetutamente l'hash di variazioni delle stesse informazioni per trovare un hash valido.

Regolazione della difficoltà

Bitcoin regola la propria difficoltà di mining circa ogni 2016 blocchi (circa ogni due settimane) per mantenere un tempo medio di blocco di 10 minuti. Questa regolazione si basa sul tempo impiegato per minare gli ultimi 2016 blocchi. Se i blocchi sono stati minati più velocemente del previsto, la difficoltà aumenta per rendere il mining più difficile; se più lentamente, la difficoltà diminuisce per rendere il mining più facile.

Evoluzione dell'hardware di mining

Poiché minare Bitcoin è così difficile, i partecipanti hanno da tempo abbandonato i normali PC e le schede grafiche a favore di hardware progettato appositamente, noto come ASIC (application-specific integrated circuit). 

Il mining è diventato un’attività a livello industriale, dominata da grandi mining farm con attrezzature specializzate, a testimonianza della natura competitiva della rete e dell’aumento della difficoltà.

Non tutte le criptovalute utilizzano la PoW

Vale la pena notare che non tutte le criptovalute utilizzano la PoW o hanno una difficoltà di mining. Ad esempio, Ethereum è passato a un meccanismo di consenso Proof of Stake (PoS) che non richiede mining né regolazioni della difficoltà.

Conclusione

La difficoltà è un parametro dinamico che mantiene sicure e stabili le blockchain PoW, regolando quanta potenza di calcolo è necessaria per minare nuovi blocchi. Si adatta ai cambiamenti del potenza di hashing della rete per mantenere un ritmo stabile di produzione dei blocchi, garantendo il funzionamento costante della blockchain.