Proof of Work (PoW) è il padre degli “algoritmi di consenso blockchain”. È stato implementato per la prima volta in Bitcoin, ma il concetto attuale esiste da un po’ di tempo. In Proof of Work, i validatori (denominati miners) eseguono l’hashing dei dati che desiderano aggiungere, fino a quando non producono una soluzione specifica.
Un hash è una stringa apparentemente casuale di lettere e numeri che viene creata quando esegui i dati attraverso una funzione hash. Ma, se esegui di nuovo gli stessi dati attraverso di esso, otterrai sempre lo stesso output. Se invece si cambia anche solo un dettaglio, il tuo hash sarà completamente diverso.
Osservandone l’output, non è possibile sapere quali informazioni sono state inserite nella funzione. Sono quindi utili per dimostrare che conoscevi un dato prima di un certo tempo. Infatti è possibile dare a qualcuno l’hash e quando in seguito riveli i dati, quella persona può eseguirlo attraverso la funzione per assicurarti che l’output sia lo stesso.
In Proof of Work, il protocollo stabilisce le condizioni per ciò che rende valido un blocco. Si potrebbe dire, ad esempio, che sarà valido solo un blocco il cui hash inizia con 00. L’unico modo per il minatore di crearne uno in maniera fraudolenta che corrisponda a quella combinazione, è quello di utilizzare un “attacco a forza bruta”. Ossia può provare a modificare un parametro alla volta per produrre un risultato diverso per ogni ipotesi, fino a quando si ottiene l’hash corretto.
Con le principali blockchain, il livello di complessità di calcolo è incredibilmente alto. Per competere con altri miner, un hacker avrebbe bisogno di un magazzino pieno di hardware di hashing speciale (ASIC) per avere la possibilità di produrre un blocco valido.
Ma il costo di queste macchine per minare moneta e l’elettricità necessaria per farle funzionare sono molto alti. Gli ASIC sono progettati per uno scopo, quindi non possono essere utilizzati per applicazioni al di fuori del mining di criptovaluta. L’unico modo per recuperare l’investimento iniziale è quello onesto, che produce una ricompensa significativa se si riesce ad aggiungere con successo un nuovo blocco alla blockchain. Ossia è economicamente più redditizio seguire le regole che tentare di infrangerle in maniera fraudolenta.
È banale per la rete verificare che tu abbia effettivamente creato il blocco giusto. Anche se hai provato trilioni di combinazioni per ottenere l’hash giusto, è sufficiente che i dati vengano eseguiti una volta attraverso una funzione. Se i tuoi dati producono un hash valido, sarà accettato e riceverai una ricompensa. Altrimenti, la rete lo rifiuterà e perderai tempo ed elettricità per niente.
Proof of Stake (PoS)
Proof of Stake, è stato proposto nei primi giorni di Bitcoin come alternativa al Proof of Work. In un sistema PoS, non esiste il concetto di miner, hardware specializzato o enorme consumo di energia. Tutto ciò di cui hai bisogno per partire è un normale PC.
In PoS, non proponi una risorsa esterna (come l’elettricità o l’hardware), ma una interna: la criptovaluta. Le regole differiscono a seconda del protocollo, ma generalmente esiste un importo minimo di fondi che devi detenere per essere idoneo allo staking.
Da lì, blocchi i tuoi fondi in un portafoglio (non possono essere spostati mentre stai puntando). In genere sarai d’accordo con altri validatori su quali transazioni andranno nel blocco successivo. In un certo senso, stai scommettendo sul blocco che verrà selezionato e il protocollo ne sceglierà uno.
Se il tuo blocco è selezionato, riceverai una parte delle commissioni di transazione, a seconda della tua puntata. Più fondi hai bloccato, più puoi guadagnare. Ma se cerchi di imbrogliare proponendo transazioni non valide, perderai una parte (o tutto) della tua puntata. Pertanto, abbiamo un meccanismo simile a PoW: agire in modo onesto è più redditizio che agire in modo disonesto.
In generale, non ci sono monete appena create come parte della ricompensa per i validatori. La valuta nativa della blockchain deve quindi essere emessa in qualche altro modo. Questo può essere fatto tramite una distribuzione iniziale (ad esempio, un ICO o IEO) o avviando il protocollo con PoW prima di passare successivamente a PoS.
Ad oggi, il puro Proof of Stake è stato implementato solo in criptovalute più piccole. Pertanto, non è chiaro se possa servire come valida alternativa al PoW. Sebbene possa sembrare teoricamente valido, sarà molto diverso nella pratica.
Una volta che PoS viene implementato su una rete con un grande valore, il sistema diventa un campo di gioco per la teoria dei giochi e gli incentivi finanziari. Chiunque abbia il know-how per “hackerare” un sistema PoS probabilmente lo farebbe solo se potesse trarne vantaggio, quindi l’unico modo per scoprire se è fattibile è su una rete live.
Presto vedremo PoS testato su larga scala: Casper sarà implementato come parte di una serie di aggiornamenti alla rete Ethereum (noti collettivamente come Ethereum 2.0).