Hash di destinazione
Che cos’è un hash di destinazione?
Nel mining di criptovaluta, un hash di destinazione è un valore numerico a cui un’intestazione di blocco con hash deve essere minore o uguale affinché un nuovo blocco venga assegnato a un miner. Le intestazioni dei blocchi identificano i singoli blocchi in una blockchain.
Il mining di criptovaluta si riferisce al processo di raccolta di criptovaluta come ricompensa per il lavoro che completi. La natura di questo lavoro è verificare la legittimità delle transazioni di una determinata criptovaluta. In questo modo, i minatori di criptovaluta sono essenzialmente revisori. Quando estraggono, puoi guadagnare criptovaluta senza dover spendere soldi per questo.
L’hash di destinazione viene utilizzato per determinare la difficoltà dell’input e può essere regolato per garantire che i blocchi vengano elaborati in modo efficiente. Ad esempio, gli hash di destinazione vengono utilizzati nelle criptovalute che utilizzano un sistema PoW (proof-of-work) per impostare l’attuale difficoltà di mining (incluso Bitcoin). Se una criptovaluta utilizza un sistema diverso per il mining, potrebbe non richiedere un hash di destinazione.
Punti chiave
- Nell’estrazione di criptovaluta, un hash di destinazione è un valore numerico che un’intestazione di blocco con hash (utilizzata per identificare i singoli blocchi in una blockchain) deve essere inferiore o uguale a affinché un nuovo blocco venga assegnato a un miner.
- Gli hash di destinazione vengono utilizzati nelle criptovalute che utilizzano un sistema PoW (proof-of-work) per impostare l’attuale difficoltà di mining (incluso Bitcoin); se una criptovaluta utilizza un sistema diverso per il mining, potrebbe non richiedere un hash di destinazione.
- La rete Bitcoin regola la difficoltà del mining aumentando o abbassando l’hash target al fine di preservare un intervallo medio di 10 minuti tra i nuovi blocchi.
Come funziona un hash target
Le criptovalute si basano sull’uso di blockchain che contengono la cronologia di tutte le transazioni di quella criptovaluta. Queste transazioni sono sottoposte ad hashing, o codificate crittograficamente, in una serie di caratteri alfanumerici. L’hashing implica il prendere una stringa di dati di qualsiasi lunghezza e eseguirla attraverso un algoritmo per produrre un output con una lunghezza fissa. L’output avrà sempre la stessa lunghezza, indipendentemente da quanto grande o piccolo sia l’input (sebbene il numero di permutazioni di un hash sia astronomicamente grande). Ogni blocco conterrà l’hash dell’intestazione del blocco precedente.
La convalida e la codifica della blockchain viene definita mining. Il mining prevede l’uso di computer per eseguire algoritmi di hashing per elaborare il blocco più recente; le informazioni che un utente deve estrarre si trovano nell’intestazione del blocco. La rete di criptovaluta imposta un valore target per questo hash, chiamato hash target, ei minatori cercano di determinare quale sia questo valore testando tutti i valori possibili.
L’intestazione del blocco contiene il numero di versione del blocco, un timestamp, l’hash utilizzato nel blocco precedente, l’hash di Merkle Root, il nonce e l’hash di destinazione. Il blocco viene generato prendendo l’hash del contenuto del blocco, aggiungendo una stringa casuale di numeri (il nonce) e eseguendo nuovamente l’hashing del blocco.
Se l’hash soddisfa i requisiti del target, il blocco viene aggiunto alla blockchain. Il ciclo tra le soluzioni per indovinare il nonce viene indicato come proof of work (PoW) e il miner che è in grado di trovare il valore riceve il blocco e pagato in criptovaluta.
considerazioni speciali
Hash target per Bitcoin
Bitcoin utilizza l’algoritmo hash SHA-256. Questo algoritmo genera numeri casuali verificabili in un modo che richiede una quantità prevedibile di potenza di elaborazione del computer.
Il mining di un blocco richiede al miner di produrre un valore (un nonce) che, dopo essere stato hash (codificato crittograficamente), è minore o uguale a quello utilizzato nel blocco più recente accettato dalla rete bitcoin. Questo numero è compreso tra 0 (l’opzione più piccola) e 256 bit (l’opzione più grande) ma è improbabile che sia mai il numero massimo.
Poiché l’hash di destinazione potrebbe essere un numero enorme, il miner potrebbe dover testare un gran numero di valori prima di avere successo. Un minatore senza successo deve attendere il blocco successivo (motivo per cui i minatori che trovano una soluzione hash sono paragonati ai vincitori di una gara o della lotteria).
L’hash target viene regolato periodicamente. Le funzioni hash utilizzate per generare il nuovo target hanno proprietà specifiche progettate per rendere sicura la blockchain (e la sua criptovaluta). Questo processo è deterministico, il che significa che produrrà lo stesso risultato ogni volta che viene utilizzato lo stesso input. È abbastanza veloce da non impiegare troppo tempo per restituire un hash per l’input. Inoltre, rende molto difficile determinare l’input, specialmente per grandi numeri, e apporta piccole modifiche al risultato dell’input in un output hash molto diverso.