Come molti sanno, nella tecnologia blockchain – così come in tutte le DLT – sistemi decentralizzati e distribuiti, la validazione delle operazioni contenute in un nuovo blocco avviene per opera del consenso distribuito, vale a dire il consenso della rete e non da parte di un ente centrale.
Il meccanismo di consenso utilizzato determina le modalità con cui la rete può aggiornare e modificare le informazioni contenute nel registro.
Gli algoritmi di consenso costituiscono, quindi, un elemento cruciale per ogni DLT, compresa la blockchain, in quanto hanno il compito di garantire l’integrità e la sicurezza delle informazioni conservate sui registri, attraverso il rispetto delle regole del protocollo.
Esistono diversi tipi di algoritmi di consenso, i più comuni sono senza dubbio il Proof of Work (PoW) e il Proof of Stake (PoS).
Sebbene PoW e PoS condividano scopi simili, presentano alcune differenze e peculiarità fondamentali. Vediamole nel dettaglio.
Cos’è un algoritmo di consenso nella blockchain
Le tecnologie DLT (Distributed Ledger Technology) sono sistemi basati su un registro distribuito, che può essere letto e modificato da tutti i partecipanti della rete, i cosiddetti nodi.
In particolare, si definisce nodo ciascun computer partecipante alla rete che gestisce una copia del registro distribuito.
La famiglia delle tecnologie distribuite è composta di diversi sistemi che si distinguono in base al tipo di rete (che può essere pubblica o privata), ai poteri di validazione attribuiti ai nodi (permissionless o permissioned), alla struttura del registro (tradizionale o a catena di blocchi) e al meccanismo di consenso in uso.
Nell’ambito delle DLT rientrano anche le tecnologie blockchain, caratterizzate appunto da una struttura di registro a catena di blocchi.
Ogni blocco contiene un insieme di operazioni (generalmente transazioni economiche, ma non solo) ed è collegato al blocco successivo attraverso un hash.
Ogni hash del blocco successivo contiene al suo interno anche l’hash del blocco precedente, rendendo il legame tra un blocco e l’altro immutabile.
Il protocollo è l’insieme delle regole primarie di una blockchain, mentre l’algoritmo di consenso è il meccanismo attraverso il quale queste regole vengono fatte rispettare dall’intera rete.
Il protocollo definisce il modo in cui i nodi interagiscono, come i dati devono essere trasmessi e quali sono i requisiti per convalidare le nuove operazioni o per modificare un’operazione già approvata.
L’algoritmo di consenso, invece, ha il compito di verificare la corretta interazione tra i nodi e confermare le operazioni eseguite attraverso il consenso del network (ad esempio, verificando le firme o il bilancio degli address, in modo da evitare che una stessa operazione venga duplicata).
Il Proof of Work (PoW) di una blockchain
Il primo algoritmo di consenso per criptovalute creato è stato il Proof of Work (PoW), progettato da Satoshi Nakamoto e implementato su Bitcoin, nel 2009, per garantire la Byzantine Fault Tolerance (la c.d. “Tolleranza degli errori bizantini”), vale a dire la capacità di un sistema informatico distribuito di resistere ai difetti bizantini (come, fallimenti del consenso, fallimenti di validazione, mancata verifica dei dati o errori nel protocollo di risposta).
Il PoW si basa sulla risoluzione di problemi matematici particolarmente complessi da parte della rete, da cui il termine, letteralmente, “prova di lavoro”.
Questo meccanismo di consenso sfrutta ciò che in gergo viene definito come mining: dei calcolatori molto potenti (detti anche miners) cercano di risolvere un problema matematico complesso al fine di poterne trovare una soluzione (l’hash di collegamento tra un blocco e l’altro) e ad esempio, ricevere in ricompensa un Bitcoin per il lavoro svolto.
Maggiore sarà la potenza di calcolo impiegata, maggiori saranno le possibilità di risolvere il problema matematico in quanto sarà maggiore il numero di tentativi al secondo effettuati.
Il problema matematico proposto, infatti, può essere risolto solo per tentativi e il primo miner che trova la soluzione si aggiudica la ricompensa.
Tuttavia, l’algoritmo di consenso PoW Proof of Work consente ai miners di convalidare un nuovo blocco e aggiungerlo alla blockchain solo se gli altri nodi del network concordano con la soluzione fornita dal miner, ripetendo l’operazione risolta.
Il Proof of Stake (PoS) nelle blockchain
Il Proof of Stake (PoS) è un algoritmo di consenso alternativo al PoW o Proof of Work, proposto nel 2011 da un utente del forum Bitcointalk, come soluzione ai problemi inevitabilmente connessi alla ingente richiesta di elettricità ed energia necessaria per l’utilizzo del PoW.
Nel PoS il procedimento fisico attraverso il quale i supercomputer competono tra loro per risolvere problemi matematici complessi, cioè il mining, viene sostituito da un sistema in cui i c.d. (consenso distribuito) validators garantiscono la validità delle operazioni effettuate impegnando una quota delle proprie criptovalute (c.d. “stake”).
L’idea di base risiede nella necessità di evitare ingenti sprechi di energia e la competizione tra i nodi in merito alle capacità di calcolo.
Il principale pregio dei sistemi di PoW risiede proprio nella necessità di impiegare innumerevoli risorse di elettricità ed energia per poter aumentare la potenza di calcolo e risolvere sempre più velocemente i problemi matematici proposti.
Questo è ciò che rende il PoW un sistema ad alta affidabilità, in quanto i costi elevati associati al processo di mining rendono, se non impossibile, quantomeno improbabile che i miners investano le proprie risorse per ostacolare il network. Tuttavia, questa caratteristica costituisce anche il principale difetto del PoW.
Nel 2009, quando Bitcoin è stato lanciato, chiunque con un normale computer poteva competere con altri miners per risolvere il problema matematico e validare il blocco successivo, in quanto la difficoltà iniziale dei problemi era bassa e di conseguenza non era necessario possedere una grande potenza di calcolo.
La competizione era equa, paritaria e decentralizzata. Nel corso degli anni, tuttavia, i miners hanno cercato di aumentare sempre di più le proprie risorse di calcolo per aggiudicarsi sempre più criptovalute a titolo di ricompensa, con la conseguenza che la difficoltà dei problemi proposti è aumentata esponenzialmente.
Così, sono state create le mining farm e le mining pool, strutture molto costose equipaggiate per mettere a disposizione competenze computazionali ineguagliabili, grazie a sistemi connessi di calcolo e aggregati.
PoW e PoS a confronto: pro e contro
Oggi il PoW non vede più competere computer diversi appartenenti a nodi diversi, ma supercomputer organizzati in sistemi aggregati, appartenenti a pochi nodi dotati di ingenti risorse finanziarie, che consumano enormi quantità di energia elettrica (studi dimostrano che il consumo di energia elettrica per minare Bitcoin è equiparabile a quello impiegato per illuminare un intero Stato).
Il rischio di un sistema simile è quello di andare incontro a una sempre maggiore centralizzazione del consenso, sovvertendo la caratteristica fondamentale della blockchain e delle DLT in generale: la decentralizzazione.
Il PoS prova a risolvere i problemi connessi all’uso di sistemi di PoW attraverso l’impiego di un sistema di selezione randomizzata dei validators:
- I blocchi nei sistemi PoS, a differenza dei blocchi PoW, non vengono estratti (mining), ma coniati (forge).
- I nodi per poter diventare dei validators devono depositare una quota delle proprie criptovalute all’interno del network, impegnandola come una sorta di garanzia o deposito cauzionale. La quota depositata non può essere utilizzata o spesa.
Come si selezionano i validators nei sistemi PoS
Il processo di selezione automatico dei miners tiene in considerazione una serie di fattori diversi, al fine di garantire che siano selezionati non solo i nodi con le quote maggiori, ma anche i nodi con quote inferiori ma ugualmente affidabili.
I fattori presi in considerazione nella fase di selezione possono essere diversi a seconda del sistema considerato; tuttavia, generalmente, vengono presi in considerazione:
- l’ammontare della quota depositata,
- la longevità dello stake (c.d. coin age, cioè da quanto tempo è stato fatto il deposito)
- un fattore di randomizzazione.
Naturalmente, quanto più è alta la quota depositata a titolo di cauzione e quanto più sono longeve le criptovalute depositate, tanto più sarà alta la probabilità di essere selezionati come validators.
Questo in quanto cauzioni più elevate e storicamente solide hanno un maggior grado di affidabilità e integrità.
Inoltre, quando un nodo viene selezionato dall’algoritmo e conia un nuovo blocco, la sua coin age viene azzerata e dovrà trascorrere un certo periodo di tempo prima che possa essere ri-selezionato. Questo sistema impedisce ai nodi con grandi stake di dominare la blockchain.
Una volta che un nodo viene selezionato come validator del blocco successivo, dovrà controllare se le transazioni in esso contenute sono valide, firmare il blocco e aggiungerlo alla blockchain.
A differenza dei sistemi PoW, in cui il lavoro dei miners viene premiato con la creazione di una nuova moneta, nei sistemi Proof of Stake la ricompensa per i validators consiste in una fee trattenuta sulla transazione validata.
Prima di poter ritirare la propria quota depositata e riscuotere la propria ricompensa, il network verifica l’operato del validator, controllando che non siano stati aggiunti blocchi fraudolenti.
Mentre nei sistemi PoW, come anticipato, la sicurezza delle operazioni risiede nelle ingenti risorse – economiche ed energetiche – necessarie per completare la validazione di un blocco, nei sistemi PoS è lo stake che disincentiva i validators dal convalidare operazioni fraudolente.
Infatti, se il network individua una transazione fraudolenta, il nodo validator perde parte della sua stake, oltre al diritto di essere selezionato come validator in futuro.
L’unico modo per poter raggirare i controlli del network e approvare transazioni fraudolente, sarebbe quello di possedere il 51% delle criptovalute in circolazione, un’ipotesi quasi del tutto irrealizzabile, in quanto in un simile contesto i costi sostenuti per ottenere la quota di maggioranza assoluta non troverebbero nelle fee un margine di profitto soddisfacente poiché il mercato, in corrispondenza di un simile attacco, attribuirebbe alla criptovaluta acquistata un valore economicamente molto più basso di quello del prezzo d’acquisto.
Altri pregi dei sistemi di Proof of Stake
Apparentemente, anche i sistemi di Proof of Stake sembrerebbero favorire i nodi con maggiori risorse economiche, rendendo ricchi i più ricchi della rete.
Tuttavia, questa affermazione non è del tutto vera. Pur essendo vero, come già detto, che maggiore è lo stake depositato e maggiori sono le possibilità di essere selezionato come validator, questo parametro non è il solo a essere preso in considerazione dall’algoritmo che, in ogni caso, è costituito da una componente randomica.
Per riuscire a rendere figurativamente l’immagine di come potrebbe funzionare un processo di selezione in un sistema di PoS, immaginiamo la logica dell’algoritmo come un ago della ruota della fortuna.
Nel momento in cui l’ago viene attivato non si può sapere con certezza in quale area della ruota si fermerà. Tuttavia, è evidente che maggiore sarà l’area (stake) posseduta da un nodo, maggiore sarà la possibilità che l’ago si fermi in quella zona, ma questa potenziale diseguaglianza viene controbilanciata dalla presenza di criteri preferenziali, una sorta di pesi apposti sull’ago, che ne orientano la direzione.
Inoltre, la presenza di regole di protocollo volte a garantire una turnazione dei validators (come l’impossibilità che lo stesso nodo venga selezionato per due volte consecutive) incentivano l’acquisto di criptovalute e la partecipazione al sistema da parte di tutti i nodi della rete, garantendo un reale sistema decentralizzato.
I pregi dei sistemi di PoS non risiedono soltanto in una maggiore democraticità e decentralizzazione, ma anche nella loro maggiore scalabilità rispetto ai sistemi di PoW.
Spesso, infatti, nonostante la potenza di calcolo messa a disposizione dalle mining pool, i problemi matematici proposti sono così complessi che per essere risolti richiedono tempo.
Questo significa che dal momento in cui viene effettuata una certa transazione al momento in cui questa viene validata e confermata, può intercorrere una certa latenza, talvolta anche piuttosto lunga, impedendo l’impiego delle criptovalute che si fondano sul PoW (come Bitcoin) per acquisti al dettaglio o pagamenti in tempo reale.
Nei sistemi di PoS questo problema di latenza non si pone. Il processo di selezione dell’algoritmo avviene in pochi secondi e così anche la validazione da parte del validator che, nel momento in cui conferma l’operazione, si espone economicamente garantendola con la propria quota di criptovalute depositata all’interno del network.
Questa peculiarità rende le blockchain che utilizzano sistemi di PoS idonee a supportare pagamenti elettronici in tempo reale.
Il PoS, inoltre, è una tecnologia più rispettosa dell’ambiente, in quanto non ha bisogno di alimentare macchine potenti per le attività di mining, riducendo significativamente il consumo di energia.
Conclusioni: meglio Proof of Stake o Proof of Work?
Anche se il Proof of Stake ad oggi non è ancora particolarmente diffuso e non viene impiegato dalle principali blockchain esistenti, grazie alle sue potenzialità e ai vantaggi che comporta, si sta imponendo come metodo di consenso preferenziale, mettendo in luce gli abusi e le carenze dell’ormai superabile metodo PoW.
La blockchain Ethereum, che, ad oggi, esattamente come Bitcoin funziona solo attraverso l’utilizzo di un sistema di consenso PoW, sta lavorando a pieno regime allo sviluppo di un nuovo aggiornamento, denominato Casper, che convertirà Ethereum in una blockchain PoS.
Al termine della transizione, il mining non farà più parte del network di Ethereum.
Il passaggio da una blockchain PoW a una PoS potrebbe dare a Ethereum un notevole vantaggio competitivo rispetto a Bitcoin, da un lato, permettendole di godere di maggiore apprezzamento a livello nazionale e sovranazionale, in quanto tecnologia green, e dall’altro, consentendole di introdurre l’utilizzo degli smart contract (prodotto esclusivo di Ethereum) nella quotidianità dei cittadini, per l’esecuzione di operazioni in tempo reale.