Fonte: www.pixabay.com
I sistemi di consenso
Il 18 Aprile Vitalik Buterin ha pubblicato un documento su Bitmex nel quale esamina le differenze nei sistemi di consenso Proof-of-Work (PoW) e Proof-of-Stake (PoS).
In accordo con la pubblicazione del fondatore di Ethereum analizzeremo la struttura dei sistemi di consenso con un riguardo verso i i loro vantaggi e debolezze e l’effettiva realizzabilità ed implementazione di questo tipo di sistemi. In particolare, la dovuta attenzione sarà rivolta verso Ethereum, che ha più volte discusso dell’introduzione di PoS nel futuro prossimo.
Prima di addentrarci nell’argomento, è importante chiarire cosa si vuole ottenere mediante questi sistemi di consenso: una struttura dati che abbia le seguenti proprietà:
Nessuno controlla il contenuto delle informazioni;
Il database può continuare a funzionare ed andare avanti;
I partecipanti raggiungono il consenso su quale sia il contenuto esatto della blockchain e quale sia l’alternativa corretta;
In un sistema PoW, questo viene deciso in base alla quantità di lavoro (come dice la parola Proof-of-Work) effettuata sulla catena, mentre in un sistema PoS la validità di una catena piuttosto che di un’altra è assicurata dalla quantità di valore utilizzato per votarla. Tuttavia, entrambi i sistemi presentano alcune debolezze che richiedono l’implementazione di meccanismi alternativi.
La Proof-of-Work (PoW)
La principale ragione per l’introduzione di un consenso basato su PoS deriva dagli svantaggi del sistema attuale, usato in Ethereum e Bitcoin: la PoW.
Le Basi
Questo tipo di sistema, inizialmente sviluppato come algoritmo anti-spam, raggiunge il consenso quando i partecipanti sono d’accordo su quale sia la blockchain valida. Questo è determinato dalla quantità di lavoro (work) che viene svolta su essa, quantificata in termini di energia elettrica consumata per mettere al sicuro la blockchain. Infatti, PoW significa proprio Prova-di-Lavoro; quindi la blockchain che verrà scelta è quella dove è stata spesa la maggioranza del potere computazionale per metterla al sicuro. La PoW risolve anche il problema della produzione dei blocchi e della tempistica dei blocchi. Tuttavia, questo sistema è spesso criticato in quanto presenta alcuni criticità. In un sistema distribuito che utilizza PoW, i miners (coloro che svolgono questi calcoli computazionali) consumano tantissima energia, come è possibile vedere in questo grafico. Il consumo di energia in questione svolge una doppia funzione: produce nuovi Bitcoin (o Ether) e mette il network in sicurezza.
I problemi
Ma come mai le blockchain basata su PoW consumano tanta energia? Per inserire un blocco nella blockchain i miners devono risolvere un puzzle computazionale. Dobbiamo pensare a questo processo come una gara dove tutti i miners utilizzano dei computer predisposti per effettuare questo tipo di calcoli. Chi dispone delle apparecchiature più performanti ha un grande vantaggio rispetto agli altri - questo può tendenzialmente essere un’influenza centralizzante sul network, spingendo la maggior parte del potere computazionale nelle mani dei miner più influenti. Solamente il miner che riuscirà a risolvere questo puzzle prima degli altri sarà in grado di registrare il blocco nella blockchain e di ottenere la conseguente ricompensa: tutta l’energia degli altri miners verrà quindi effettivamente “sprecata”. E se questo non bastasse, la difficoltà del puzzle aumenta in conseguenza all’aumentare del numero di miner. Tuttavia, è bene menzionare che questo consumo di energia scoraggia possibili attacchi al network, in quanto portarli avanti sarebbe incredibilmente costoso. Attualmente, come riferito da questo articolo di CoinTelegraph, il network Bitcoin consuma lo 0.14% dell’energia globale. Ricerche stimano che nel 2020 la blockchain Bitcoin consumerà tanta energia quanto una piccola nazione come la Danimarca. Questo tipo di consenso è quindi non sostenibile, in quanto alla lunga avrà un impatto ambientale deleterio. Inoltre, i miners non sono effettivamente incentivati a conservare le criptovalute in questione, visto che i “premi” ricevuti sono solamente proporzionali alla quantità di energia consumata.
La Proof-of-Stake (PoS)
Questo metodo di consenso è basato sul principio di mettere qualcosa “at stake” e cioè in gioco.
Le basi
Per diventare un validatore e partecipare al processo di consenso, è quindi chiesto agli utenti di dimostrare il possesso di un certo ammontare di criptovaluta, definito arbitrariamente. Questo ammontare verrà quindi “congelato” e il validatore potrà quindi partecipare al processo di consenso. In caso di comportamento errato o tentativi maliziosi di validare blocchi incorretti, il validatore in questione verrà punito a seconda della gravità delle proprie azioni, sino a rischiare la perdita di tutto il proprio ammontare congelato.
A differenza dell’algoritmo PoW, nella versione PoS un nuovo blocco viene scelto in maniera deterministica, a seconda della quantità di criptovaluta che lo sostiene. Questo implica l’assenza del cosiddetto block reward, il premio per chi inserisce il blocco giusto nella blockchain, e del mining, in quanto non vengono create nuove unità di criptovaluta con la creazione di ogni blocco. I validatori sono quindi ricompensati in maniera differente, guadagnando una commissione per le transazioni validate. È bene specificare la presenza di diversi sistemi di PoS basati su:
- concetto di anzianità, l' ammontare ottenuto tramite il prodotto della quantità di monete per il numero di giorni in cui tali monete sono state congelate,
- sulla velocità di circolazione delle monete come per ReddCoin
- in base ad un voto, dove i creatori di blocchi possono essere selezionati tramite votazione DPoS (Delegates Proof-of-Stake) come per Lisk.
I principali vantaggi di questo algoritmo riguardano il fatto che sia meno inquinante e che riduca la centralizzazione del mining. Un’altra importante considerazione quando si discute di PoS è quella dell’allineamento degli incentivi fornito. Mentre in un sistema PoW i miners hanno incentivi diversi rispetto a coloro che hanno token, in un sistema PoS il consenso è collegato all’investimento sulle criptovalute, allineando quindi gli interessi degli investitori e dei validatori. Bene per uno, bene per tutti. Nonostante questo sistema sia più efficiente sotto alcuni punti punto di vista, presenta altri problemi. Mentre con il PoW il sistema è messo in sicurezza dal consumo di una risorsa scarsa nel mondo reale (energia elettrica), il protocollo PoS è solamente basato sulla blockchain.
I problemi
In primis, mentre il sistema PoW avvantaggia i miners che hanno investito maggiormente in hardware in tempi non sospetti, questo sistema dà un potere sproporzionato a coloro che posseggono un numero importante di criptovalute, con il rischio di un accentramento di ricchezza nelle mani di pochi, seguendo il dogma secondo cui
Rich people get richer
Un altro problema presente è quello del cosiddetto “nothing at stake” per il quale nel caso di una fork del network i validatori saranno incentivati ad operare su entrambe le catene, questo potrebbe eventualmente risultare in problemi di double-spending – questo problema è meno evidente in un sistema di DPOS. Altri possibili attacchi includono:
- la possibilità di un attacco dove chi opera ha abbastanza potere computazionale da costruire una catena alternativa sin dall’inizio, grazie alla grande quantità di criptovalute possedute,
- la possibilità di effettuare double-spending corrompendo gli altri validatori, offrendo un premio per coloro che minano una catena senza la transazione precedentemente effettuata da chi sta attaccando il network
- la possibilità di accumulare anzianità per creare una catena alternativa ed effettuare double-spending.
Ethereum e PoS
L’introduzione di un algoritmo PoS per sostituire la PoW correntemente usata è sempre stato un punto fisso nella roadmap di Ethereum. Tuttavia, Vitalik in primis e tutti gli sviluppatori sono perfettamente a conoscenza delle limitazioni di questo tipo di sistemi; questo è riflesso nelle diverse alternative proposte.
L'implementazione di Casper
Come è possibile osservare, Casper (così verrà chiamato l’algoritmo PoS introdotto in Ethereum), ha subito importanti cambiamenti lungo il processo. Di fatti, i problemi menzionati nel paragrafo precedente possono essere risolti solamente con un equilibrio di premi e punizioni per attori malevoli. La proposta è basata sul teorema di Lamport, alla base della quale è stato sviluppato il concetto di algoritmi resistenti al problema dei Generali Bizantini, un problema di coordinazione tipico dei sistemi distribuiti, dove un network può continuare a funzionare anche in caso di attori malevoli solamente nel caso in cui 2/3 dei nodi operino secondo le corrette regole. Mentre la versione iniziale di Casper era basata su un sistema di scommesse, la versione aggiornata (2018) è meno ambiziosa, basandosi su un ibrido PoW/PoS. La produzione e la tempistica di nuovi blocchi verranno sempre definiti usando la PoW, mentre il sistema PoS fungerà prevalentemente per la creazione di checkpoints – ogni 100 blocchi – in modo tale da fornire un extra livello di sicurezza al network. Coloro che vogliono far parte dei validatori possono depositare il loro Ether in una validator pool e verranno chiamati a votare ogni 100 blocchi. Le conferme degli stakers PoS saranno solamente valide dopo 12 conferme del blocco. Una volta che un blocco è giustificato, esso può essere usato come referenza per voti futuri. Nel caso in cui i validatori si comportassero in modo deleterio, essi saranno soggetti ad una punizione monetaria, sino alla perdita totale dei loro depositi. Questo può risultare da:
- voti multipli a blocchi in conflitto
- voti multipli a blocchi in conflitto, usando diverse referenze per i blocchi.
La struttura dei premi di Ethereum sarà conseguentemente aggiornata in modo tale da compensare i validatori PoS per il servizio offerto. Nonostante questa iterazione sia una versione nettamente migliore rispetto alle precedenti, è ancora soggetta a tre problemi principali nel caso in cui:
- Un terzo dei validatori si rifiuta di partecipare (si torna ad un sistema PoW)
- I validatori cambiano idea una volta finalizzato un blocco e cambiano catena
- I validatori raggiungono una maggioranza superiore ai 2/3 per una catena che ha meno PoW
La caratteristica principale di questa nuova proposta di Casper è il fatto che la PoW sia comunque alla base del sistema e che solamente successivamente si sfrutta il sistema PoS per aggiungere un extra livello di sicurezza al sistema.
Conclusione
Attualmente ci sono già diverse criptovalute che hanno implementato forme di consenso basate su algoritmi PoS, come Peercoin, BitShares, Nxt etc.
Ciò nonostante, l’implementazione di sistemi 100% PoS introduce numerosi rischi di sicurezza per il network, rischi che non si manifestano in un sistema PoW. Questo è il risultato principale del fatto che il consenso in un sistema PoS non sia ancorato al mondo reale. Di fatto, molte delle criptovalute che correntemente utilizzano PoS hanno implementato meccanismi di sicurezza addizionali per assicurare la sicurezza del proprio sistema – meccanismi che tuttavia sono ancora incompleti o a loro volta espongono il sistema ad altre falle di sicurezza e potenziali rischi. PoS presenta inoltre problemi per coloro che entrano per la prima volta nel network, in quanto non è possibile determinare l’ultimo stato del sistema basandosi solamente sulle regole del protocollo e le informazioni fornite dagli altri validatori. Questo accentra il potere nelle mani dei membri che sono stati parte del sistema sin dal blocco di genesi. Quindi, nonostante la PoS risolva alcuni dei problemi derivanti dalla più comune PoW, essi introducono altre fragilità di sistema e a tutti gli effetti non sono in grado di fornire maggiore sicurezza ai network dove vengono implementati. Per ottemperare a questi problemi sono quindi stati sviluppati numerose alternative a questi sistemi di consenso, come la Proof-of-Authority, Proof-of-Existence, Proof-of-Burn e così via. Il dibattito su quale algoritmo sia più adatto e l’assenza di tale risposta ci ricorda di quanto la blockchain sia una tecnologia nuova ed acerba, che ha bisogno di molto tempo per maturare. Quello che è certo è che i sistemi si evolveranno e riusciranno eventualmente a superare gli attuali ostacoli.