Introduzione
Abbiamo visto qui che ogni blockchain ha una propria composizione e delle proprie caratteristiche costruttive, ma è bene ricordare che tutte quante si basano sul concetto di consenso.
Per procedere e validare un blocco e dunque confermare le informazioni al suo interno è necessario avere il consenso di un certo numero o di una certa percentuale di nodi.
A maglie larghe è la stessa cosa che succede nelle forme di governo nel mondo, dove i nodi sono i parlamentari e le persone che hanno diritto di voto. Ogni paese ha trovato un proprio meccanismo di consenso e delle modalità per esprimerlo.
Il consenso si può raggiungere in vari modi e con varie forme differenti; l’importante è avere un algoritmo di consenso, ossia una procedura chiara che permetta ai nodi di parlarsi e prendere una decisione.
Andiamo dunque a conoscere i vari meccanismi di consenso che sono stati pensati nel corso del tempo per le blockchain. Alcuni di questi li tratteremo in maniera più approfondita, altri invece li riporteremo solo per informazione generale.

Cos’è e come funziona la Proof of Work
La Proof of Work è una modalità di consenso che richiede, letteralmente, di dare un prova di aver lavorato.
Sembra molto più complesso di quanto lo sia realmente. Di Proof of Work ne facciamo continuamente nel nostro quotidiano, partiamo da un esempio semplicissimo:
Compito: cucinare la pasta.
Quale è il miglior modo per dimostrare di aver cucinato la pasta? –> Portare la pasta in tavola.
Ora complichiamo di poco la questione:
Compito: dimostrare di essere un umano e non un robot dietro al computer.
Quale è il miglior modo per dimostrare di essere un umano e non un robot? –> Risolvere un rompicapo o riconoscere delle lettere scritte in maniera molto strana (Captcha).
Complichiamo ancora un pochino:
Compito: dimostrare di aver lavorato e di aver cercato il numero che risolva un problema matematico.
Quale è il miglior modo per dimostrare di aver lavorato e di aver cercato il numero che risolva un problema matematico? –> Trovare il numero che risolve il problema matematico.
La Proof of Work è molto banale, basta dare evidenza di aver fatto quel che è stato chiesto.
Se per cuocere la pasta o fare il Captcha la potenza computazionale viene messa dal cervello umano e dalle nostre mani, per quanto riguarda Bitcoin, la potenza computazionale deve essere messa dal computer.
Arriviamo al dunque: la Proof of Work di Bitcoin richiede di trovare effettivamente la soluzione di un conto matematico (nemmeno troppo complicato); il problema è che l’unica strategia risolutiva è quella di provare, provare, provare, provare, finché non si azzecca la soluzione giusta.
Questo tipo di approccio si chiama “risoluzione per forza bruta” e a chi trova la soluzione viene dato un premio per aver lavorato.
Chi può mettere più potenza di calcolo avrà più probabilità di trovare la soluzione, perché avrà più risorse computazionali che vengono spese per risolvere il problema.
Questo tipo di consenso è ritenuto fra i migliori possibili, se non il migliore. Ha un unico problema: costa tanto.
Costa tanto in termini di tempo e costa tanto in termini di energia spesa. È per questo che una delle migliori soluzioni alternative alla Proof of Work è stata la Proof of Stake.
Cos’è e come funziona la Proof of Stake
La Proof of Stake ha il medesimo obiettivo della Proof of Work, ossia permettere ai nodi di una rete di essere d’accordo, ma in questo caso il consenso si raggiunge in modo differente.
Infatti nella Proof of Stake non bisogna trovare un numero che risolva un’equazione particolare, bensì validare i blocchi che vengono assegnati in proporzione alla quantità di stake detenuti dai nodi.
La validazione dei blocchi, in questo caso, viene fatta dai validatori, che sono nodi che hanno vincolato un determinato ammontare di monete mettendole in stake, letteralmente “posta in gioco” (at Stake) e sono stati quindi eletti a questa funzione.
Facciamo un esempio reale: ipotizziamo una blockchain con 3 validatori. La chain si chiama Berchain e la sua coin BER.
Validatore 1: 200 BER in stake.
Validatore 2: 500 BER in stake.
Validatore 3: 300 BER in stake.
Nel momento in cui bisogna validare un nuovo blocco la chain sceglie un validatore che farà effettivamente la validazione. Abbiamo detto che la scelta è proporzionale al quantitativo in stake, per cui il validatore 2 avrà il 50% di possibilità di essere scelto, il 3 avrà il 30%, mentre il validatore 1 avrà il 20%.
La validazione consiste nel controllare che ogni transazione fatta e inserita nel blocco sia giusta e non ci siano casi di double-spending (ovvero che sia impossibile spendere più volte lo stesso token); una volta completata la validazione con la firma da parte di un nodo, gli altri nodi della rete la controllano e la approvano e il blocco viene effettivamente attaccato al resto della blockchain.
I nodi validatori vengono successivamente ricompensati con l’emissione di un premio e con le commissioni di validazione (ambedue le ricompense vengono date nella coin nativa della blockchain, secondo l’esempio quindi sarebbero in BER).
Nella Proof of Work solamente alcuni trovano effettivamente il numero magico per risolvere il blocco, male che vada un nodo non lo trova mai. Nella Proof of Stake bisogna stare più attenti, infatti tutti i validatori prima o poi ricevono un blocco da validare.
Per questo, se un validatore, che sia grande o piccolo, sbaglia la validazione e cerca di emettere un blocco sbagliato viene punito con una severa multa (slashing).
Cos’è e come funziona la Delegate Proof of Stake
La Delegate Proof of Stake è una particolare variante del Proof of Stake classico e, come intuibile dal nome, prevede di delegare qualcuno perché faccia il lavoro di validazione.
Nel Proof of Stake classico chiunque abbia in stake della moneta può essere validatore e questo può portare a problemi di scalabilità o sicurezza, poiché non tutti hanno configurazione hardware o software o connessione ad internet o capacità informatiche adeguate.
La Delegate Proof of Stake risolve il problema prevedendo di delegare un numero ristretto di validatori. La scelta ricade su quelli che hanno più monete in stake, a patto che rispettino i requisiti fondamentali di uptime del server (sostanzialmente che i server siano sempre raggiungibili e operativi) e che non facciano errori di validazione. In caso di errori oltre allo slashing il validatore potrebbe anche essere espulso dal set di delegati, a favore di qualcun altro che si dimostra maggiormente meritevole.
Con la Delegate Proof of Stake la scalabilità della rete aumenta, a discapito della decentralizzazione. Infatti per avere una rete maggiormente performante si riduce drasticamente il numero di nodi che sono delegati a validare (solitamente qualche centinaio).
Cos’è e come funziona la Proof of Authority
Sebbene la Proof of Authority abbia un funzionamento differente dalla Proof of Stake, si ritiene che a livello logico sia stata pensata e introdotta a partire dalla seconda.
Infatti l’idea della Proof of Authority è avere dei validatori che non vengano scelti per il loro stake di monete, ma per la loro autorità; astraendo il concetto potremmo dire che questi validatori mettono in stake la propria autorità.
Tutto questo a livello pratico si traduce imponendo delle regole molto più restrittive per i validatori in termini di prestazioni e la richiesta di rendere pubblica l’identità di chi gestisce i singoli server.
Anche in questo caso quelli migliori diventano i validatori effettivi della rete.
Le conseguenze sono che:
- Si possono diminuire i validatori, fino ad arrivare a poche unità (qualche decina).
- Diminuendo i validatori si può aumentare la velocità e la scalabilità della rete.
- Le commissioni di rete si abbassano.
- Il sistema si centralizza ancor di più della Delegate Proof of Stake.
Un esempio illustre di tutto questo è la BNB Chain di Binance (composta da Binance Chain e Binance Smart Chain).
Cos’è e come funziona la Proof of Avalanche
Avalanche è una blockchain che ha introdotto un metodo differente per la convalida dei blocchi, grazie al quale riesce e chiudere transazioni in pochi istanti.
Il processo è il seguente:
- Non appena viene eseguita, la transazione viene sottoposta a un validatore che vota se è accettabile o meno. Se non la accetta il processo finisce, se la accetta si va oltre.
- Aggiunge la transazione a una lista con molte altre transazioni.
- Sceglie randomicamente un set di altri validatori e manda loro la lista con le altre transazioni.
- Gli altri validatori scelti ricevono la lista e valutano se sono accettabili tutte le transazioni.
- Nel caso lo siano vengono confermate definitivamente.
Altri tipi di Proof
Nel corso del tempo sono stati ideati tanti meccanismi per la regolamentazione del consenso, che potessero aiutare la minimizzazione del trilemma della blockchain.
Eccone alcuni sui quali non ci soffermiamo più di tanto, perché per ora non sembrano dare particolare svolte positive:
- Proof of Capacity: questo meccanismo determina il consenso sulla base di quanto spazio è presente su ogni nodo.
- Proof of Burn: questo meccanismo determina il consenso sulla base del burn di un po’ di moneta ogni volta che viene convalidato un blocco.
- Proof of Activity: questo meccanismo determina il consenso sulla base di Proof of Work e Proof of Stake usate contemporaneamente.