Difficulty

Difficoltà

Difficoltà: base

Argomento: tecnologia


DEFINIZIONE

La Difficulty o difficoltà indica quanto sia difficile per i miner creare un nuovo blocco. Questa difficoltà è stabilità per i miner impostando un target hash, è un numero condiviso da tutti i client Bitcoin che i miner dovranno utizzare per la creazione dei nuovi blocchi e la loro aggiunta alla block chain.

Bitcoin è progettato per avere un nuovo blocco aggiunto approssimativamente ogni 10 minuti. Tuttavia, come previsto nel white paper Bitcoin, la velocità con cui vengono risolti i calcoli per validare il blocco posso variare, ad esempio a causa dei progressi nell'hardware utilizzato i miner saranno in grado di effettuare un maggior numero di calcoli

La difficulty viene regolata in modo programmatico ogni 2.016 blocchi in modo che i blocchi Bitcoin vengano convalidati, ovvero aggiunti alla block chain, il più possibile in media ogni 10 minuti.

La rete Bitcoin ha una Difficulty globale.

Poiché un nuovo blocco viene aggiunto alla catena Bitcoin in media ogni 10 minuti circa, ciò significa che questa regolazione dovrebbe avvenire approssimativamente ogni due settimane (2016 blocchi * 10 minuti/blocco = 20.160 minuti, che sono circa 14 giorni).

La difficulty con cui è stato minato un blocco viene memorizzata attraverso un apposito metadato nel Block header.

La difficulty iniziale dei Bitcoin era 1, ed è rimasta tale per circa un anno.

Come viene calcolata la Difficulty di mining di Bitcoin?

La difficoltà di mining di Bitcoin viene calcolata con varie formule. Tuttavia, la più comune è:

Difficulty Level = Difficulty Target/Current Target

Nota che il Difficulty Target è una notazione esadecimale del target hash la cui difficoltà di mining è 1.

Al contrario, il Current Target, o target corrente, è il target hash del blocco di transazioni più recente. Quando i due valori vengono divisi, si ottiene un numero intero che è il livello di difficoltà di mining di Bitcoin.

Ad esempio, se il risultato è di 24 trilioni, allora ci si aspetta che un miner generi circa 24 trilioni di hash prima di poter trovare l'hash vincente. Naturalmente, a volte i miner possono avere fortuna e trovarlo con un numero significativamente inferiore di tentativi.

Come viene regolata la Difficulty di mining di Bitcoin

Gli adeguamenti della difficoltà di mining vengono effettuati confrontando il tempo standard necessario per trovare 2.016 blocchi di transazioni sulla rete Bitcoin con il tempo impiegato per trovare gli ultimi 2.016 blocchi.

La rete calcola il tempo totale necessario per estrarre gli ultimi 2.016 blocchi. Il rapporto tra i 20.160 minuti standard (10 minuti x 2.016 blocchi) e il tempo necessario per scalare l'ultima Difficulty Epoch viene quindi moltiplicato dal livello di difficoltà più recente. Il calcolo produce un risultato che determinerà la percentuale di variazione richiesta nella difficoltà di mining che porterà il tempo di blocco ai desiderati 10 minuti.

Tuttavia, un errore nel protocollo Bitcoin originale rende gli adeguamenti del livello di difficoltà basati sui precedenti 2.015 blocchi invece dei teorizzati 2.016 blocchi.

Sebbene l'obiettivo sia un tempo di blocco di 10 minuti, la difficoltà di mining non può essere modificata al di sopra o al di sotto di quattro volte il livello di difficoltà attuale. Il limite superiore per ogni Difficulty Epoch è una variazione del +300%, mentre il limite inferiore è una variazione del -75%. Questa regola è stata messa in atto per eliminare qualsiasi cambiamento brusco nella difficoltà di mining.


aggiornato il 2022-07-04