Proof-Of-Work

Da Bitcoin Wiki.

Proof of work (prova di lavoro, seguito POW) è una parte dell´informazione che era difficile (faticoso, costoso) da eseguire per soddisfare determinate condizioni. La verifica delle stesse informazioni deve essere il più semplice possibile. L'obiettivo di prova-di-lavoro è quello di verificare che i calcoli sono stati effettuati in realtà quando si creò un nuovo blocco.

L’obiettivo

Creare la PoW può essere un processo casuale con una piccola possibilità di successo, durante il quale si riscontra la maggior parte degli errori. Bitcoin utilizza una funzione chiamata "Hashcash" per dimostrare la validità del lavoro (POW).

Un’applicazione di questa idea, che prevede l'utilizzo di Hashcash, come metodo per evitare messaggi di spam è controllare la PoW del contenuto di ciascun’e-mail. Le lettere normale email facilmente generano la PoW del contenuto (perché questo processo non richiede grandi risorse), ma spammers si trovano ad affrontare il problema di fornire i milioni degli PoW di sue lettere.

Il principio di funzionamento

La funzione hashcash è utilizzata per creare i blocchi di Bitcoin. La PoW, che è legata al contenuto del blocco, è necessaria per l'adozione del blocco dal sistema. La complessità di questo compito è variata per controllare la frequenza della ricerca dei blocchi. Il sistema è programmato in modo che la frequenza della ricerca dei blocchi è di una media di un blocco ogni 10 minuti.

Il fatto che il processo di ricerca di un blocco è piuttosto laborioso e casuale, rende impossibile prevedere esattamente quello Bitcoin-lavoratore (minatore) risolverà il problema e troverà il blocco. Affinché il sistema riconosca l'autenticità del blocco, è necessario che il suo valore hash sia inferiore rispetto alla catena (target). Così ogni blocco indica che è stato fatto per un lavoro particolare di ricerca.

Ogni blocco contiene un hash del blocco precedente che è creante di una catena. Modificare un blocco è impossibile, si può solo creare un blocco alla stessa altezza, che comporterà un hash del blocco precedente. Per realizzare questo processo è necessario lavorare per trovare tutti i blocchi precedenti. L'elevata complessità di questo processo protegge la catena di blocchi (block chain) da accessi non autorizzati e attacchi come double-spending.