Il protocollo PoW nasce come sistema per limitare azioni fraudolente come invio massivo di spam o attacchi DOS (Denial Of Service). Il sistema che effettua la richiesta deve risolvere dei complessi, ma non impossibili, algoritmi di calcolo. Venne usato in modo massivo per la prima volta dai Bitcoin nel 2008 come meccanismo di protezione della moneta virtuale, è tutt’oggi è alla base dei sistemi di cryptocurrencies.
La transazione che avviene in un contesto di cryptocurrency (come Bitcoin o Ethereum) deve essere validata e registrata in un blocco dai “miners” i quali eseguono complessi problemi (funzioni hash, scomposizione in numeri primi, puzzles) per guadagnare questa responsabilità. La complessità dei problemi non deve essere eccessiva per non rallentare il processo di registrazione delle transazioni e di creazione dei blocchi, ma allo stesso tempo non deve essere troppo semplice, al fine di evitare attacchi esterni. La complessità dei problemi, infatti, viene calibrata in base a:
Il miner riceve il puzzle dal Network Server, quindi elabora la soluzione che invia indietro al Network Server il quale la verifica e invia la ricompensa in criptovaluta al miner. Quest’ultimo registra le transazioni all’interno del blocco. Il Network Server può essere qualsiasi altra macchina, infatti la soluzione del puzzle deve essere facilmente verificabile dalle macchine del network, questo per mantenere il principio di trasparenza.
Bitcoin sfrutta questo protocollo utilizzando un problema chiamato Hashcash, ed Ethereum (che ospita il 75% delle applicazioni blockchain) ne fa altrettanto utilizzo. In Bitcoin la durata della creazione di un blocco è di 10 minuti.
L’Attacco 51% si verifica quando un utente o un gruppo di utenti controllano la maggioranza della potenza di mining di una rete (appunto dal 51% a salire). Questi utenti sarebbero in grado di manipolare la generazione di nuovi blocchi, ostacolare gli altri miniers impedendo l’erogazione della ricompensa o addirittura annullare le transazioni.
Se chi possiede la maggioranza della potenza computazionale, per esempio, non acconsente alla registrazione di una transazione, ecco che avviene la generazione di un blocco della catena parallelo a quello in cui la registrazione è stata effettuata. Questo causa la creazione di una cosidetta fork.
La catena della fork, avendo a supporto una maggiore potenza di calcolo, finirà con diventare più lunga (possiede più blocchi) di quella “originale” in cui la transazione è stata registrata. Questo conduce il network blockchain ad elidere i blocchi dell’altra catena, facendo quindi sparire la registrazione della transazione, come se non fosse mai avvenuta, e quindi il destinatario non riceverà la quota pattuita.
Sebbene questo sia uno dei limiti della tecnologia blockchain e del protocollo PoW, è estremamente difficile che si verifichi, in quanto poco redditizio. Ottenere il 51% o più della potenza di mining significherebbe dover disporre di una potenza di calcolo inverosimile, la notizia si diffonderebbe velocemente, gli utenti abbandonerebbero il network gradualmente, portando alla svalutazione della cryptovaluta ad essa correlata, il che risulterebbe in una perdita di fondi da parte dell’esecutore dell’attacco.