Blockchain - Prova di lavoro

Poiché tutte le transazioni sono contrassegnate dall'orario, è necessario implementare un server di marca temporale distribuito su una rete peer-to-peer. Ciò richiede un'implementazione aggiuntiva e questa è la prova di lavoro che descriverò ora. A ogni blocco, ora aggiungiamo un altro elemento chiamatoNonce come mostrato nella figura sotto -

Nonce è un numero tale che l'hash del blocco soddisfa un certo criterio. Questo criterio potrebbe essere che l'hash generato deve avere le sue quattro cifre iniziali per essere zero.

Pertanto, l'hash generato sarebbe 000010101010xxx. Generalmente, il miner inizia con un valore Nonce di 0 e continua ad incrementarlo fino a quando l'hash generato non soddisfa il criterio specificato.

Nota che la generazione di hash funziona in modo casuale ed è al di fuori del tuo controllo, ovvero non puoi forzare la funzione hash per generare un determinato hash. Pertanto, potrebbero essere necessarie diverse iterazioni prima che venga generato l'hash desiderato con quattro zeri iniziali. Il tempo previsto per la generazione di un blocco nel sistema bitcoin è di 10 minuti. Una volta che il minatore ha estratto con successo il blocco, lo rilascia nel sistema rendendolo ora l'ultimo blocco della catena.

Nota che ci sono più minatori in competizione per generare il blocco legittimo. Il sistema Bitcoin premia il primo minatore di successo dandogli determinati bitcoin. In generale, il miner con più potenza di calcolo potrebbe essere un vincitore iniziale. Ciò può causare attacchi all'intero sistema da parte di coloro che possiedono un'enorme potenza di elaborazione. Descriverò gli attacchi e come questi vengono mitigati verso la fine di questo tutorial.