Qual è la difficoltà di criptovaluta?
La difficoltà è un parametro che bitcoin e altre criptovalute usano per mantenere costante il tempo medio tra i blocchi quando cambia la potenza di hash della rete.
Spiegazione della difficoltà di criptovaluta
Bitcoin e altre criptovalute che utilizzano blockchain di prova del lavoro vengono mantenute attraverso un processo chiamato mining. In questo sistema, i minatori - i computer che eseguono il client software della criptovaluta - competono per trovare un nuovo blocco, aggiungendo alla catena il più recente batch di dati sulle transazioni. Ricevono commissioni e (in alcuni casi) una ricompensa di nuovi token in cambio.
Il tempo necessario per trovare un nuovo blocco è soggetto a due fattori: probabilità casuale e difficoltà. Inizia con una casualità. I minatori raccolgono un batch di dati di transazione e lo eseguono attraverso un algoritmo di hash, una funzione unidirezionale che, dato un determinato set di dati, produrrà sempre lo stesso output, ma il cui output non può essere invertito per mostrare i dati originali. Non c'è modo di prevedere quale sarà un hash. Viene trovato un nuovo blocco quando l'hash soddisfa un determinato requisito. Poiché ogni set di dati ha un solo output per una data funzione hash, i minatori devono aggiungere un nonce - un "numero usato una volta" - ai dati per ottenere un nuovo hash. Se il risultato non soddisfa ancora i requisiti, il minatore riprova con un nuovo nonce.
Il requisito che un hash deve soddisfare corrisponde alla difficoltà: un hash valido deve essere al di sotto di un determinato valore target impostato automaticamente (e periodicamente corretto) dal protocollo della criptovaluta. Più basso è il valore target, più ripetizioni della funzione hash deve attraversare un minatore per ottenere un risultato accettabile - in altre parole, maggiore è la difficoltà. Un minatore può, in teoria, essere fortunato e ottenere un hash valido per un determinato blocco al primo tentativo: col passare del tempo, tuttavia, una maggiore difficoltà significa che i minatori devono collegare in media più noncie per blocco.
Quale scopo serve la difficoltà?
Perché impostare una maggiore difficoltà, se l'unico risultato pratico è che i minatori devono ripetere di più la stessa funzione? Il white paper sui bitcoin spiega:
"Per compensare l'aumento della velocità dell'hardware e l'interesse variabile nell'esecuzione dei nodi nel tempo, la difficoltà della prova di lavoro è determinata da una media mobile che prende di mira un numero medio di blocchi all'ora. Se generati troppo velocemente, la difficoltà aumenta. "
Bitcoin è progettato per aggiungere un nuovo blocco alla blockchain ogni 10 minuti in media. (Altre criptovalute mirano a blocchi più frequenti; litecoin, ad esempio, mira a 2, 5 minuti.) Il problema è che la quantità di potenza di calcolo che i minatori della rete controllano collettivamente può variare enormemente. Quando Satoshi Nakamoto ha estratto il primo blocco, c'era solo una macchina in rete, probabilmente un semplice laptop o desktop. Oggi ci sono una serie di fattorie ASIC tentacolari di dimensioni di magazzino (gli ASIC sono macchine progettate specificamente per arare le funzioni di hash il più velocemente possibile).
Al fine di garantire che la rete produca un nuovo blocco a una velocità media costante, il software è impostato per regolare automaticamente l'hash di destinazione su o giù, il che comporta rispettivamente una difficoltà inferiore o superiore. Quando Nakamoto ha estratto il blocco della genesi, la difficoltà del bitcoin era 1.
Per verificare la difficoltà dei bitcoin in tempo reale, puoi consultare questo grafico.
Alla fine di luglio 2019, la difficoltà è di 9.013 trilioni. La tabella seguente mostra il cambiamento di bitcoin in difficoltà nel tempo:
