Target hash

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Il Target hash è un numero a 256 bit condiviso da tutti i client Bitcoin.

Questo numero viene utilizzato dall'algoritmo della Proof of work per fare in modo che i miner debbano fare dei calcoli di una certa complessità, o difficulty.

I miner devono provare il nonce fino a quando non riescono ad ottenere il target hash.

Ogni hash è fondamentalmente un numero compreso tra 0 e il valore massimo di un numero a 256 bit (che è enorme). Se l'hash calcolato dal miner è al di sotto del target, allora ha generato un blocco valido che può essere aggiunto alla blockchain, in caso contrario incrementa il nonce per generare un nuovo hash, e continua così fino a quando non ottiene un hash valido.

Il target è codificato come parte del block header di ciascun blocco ed è chiamato 'bits' di un blocco. Ciò consente ai nodi di verificare direttamente se la prova di lavoro fornita per un blocco è inferiore all'obiettivo.

L'hash SHA-256 dell'header di un blocco deve essere inferiore o uguale al target hash corrente affinché il blocco venga accettato dalla rete. Più basso è il target, più difficile è generare un blocco.

Il Target hash si modifica con le stesse regole della difficulty (sono infatti sono due elementi della stessa equazione): ogni 2016 blocchi minati (che dovrebbero richiedere due settimane se si mantiene la media di un blocco minato ogni 10 minuti), ogni client Bitcoin confronta il tempo effettivo impiegato per generare questi blocchi con l'obiettivo di due settimane e modifica l'obiettivo della differenza percentuale. Questo rende il problema del proof-of-work più o meno difficile. Un singolo retarget non cambia mai il target oltre un fattore 4 per evitare grandi cambiamenti di difficoltà.


aggiornato il 2022-07-04