Che cos’è il Proof-Of-Stake?
28 marzo, 2022
8 min
Lo sviluppo tecnologico ha portato nuovi meccanismi di consenso sulle blockchain, il Proof-of-Stake ad oggi è largamente utilizzato come alternativa al Proof-of-Work.
Come funziona il consenso in una blockchain
La tecnologia blockchain è un registro di transazioni distribuito, immutabile, trasparente, sicuro che non richiede fiducia. La sua decentralizzazione deriva dal fatto che qualsiasi persona può diventare parte attiva nello sviluppo, nel mantenimento e nella sicurezza di questo enorme libro mastro.
Tutte queste caratteristiche sono possibili grazie ad un meccanismo di consenso, ossia un algoritmo che permette a tutti i componenti dell’intera rete di mettersi d’accordo sulle informazioni da registrare sulla blockchain stessa. Il meccanismo di consenso è estremamente importante perché anche se i singoli individui non si conoscono direttamente tra di loro, possono fare affidamento sul funzionamento dell’infrastruttura stessa, quando normalmente in un sistema centralizzato avrebbero bisogno o di intermediari o di una garanzia per potersi scambiare valore.
Il meccanismo di consenso di una blockchain è codificato all’interno del protocollo, e determina i processi specifici tramite i quali si raggiunge il consenso sul quel determinato network. I processi e le meccaniche determinano poi la velocità, il livello di decentralizzazione, la sicurezza e la scalabilità della singola soluzione.
Per questo esistono tantissime diverse varianti di Proof-of-Stake, ma noi tratteremo il modello più comune a cui si riferiscono la maggior parte delle blockchain.
La nascita del Proof-of-Stake (POS)
Il Proof-of-Stake (PoS), in italiano traducibile in “prova di interesse”, è nato come alternativa al ben più vecchio Proof-of-Work (PoW) con particolare riguardo all’efficienza energetica, in quanto non è necessario impiegare hardware e potenza computazionale per validare le transazioni e generare dei nuovi blocchi.
Il concetto è stato proposto e immaginato nel Luglio del 2011 sul famoso forum BitcoinTalk, tanto da catturare l’interesse anche di Vitalik Buterin e degli sviluppatori di Ethereum. Inizialmente, sebbene affascinante, l’idea di una Proof-of-Stake sembrava quasi impossibile da realizzare perché estremamente complessa data l’ancora acerba tecnologia. Il lancio di Ethereum infatti avvenne utilizzando il PoW e solo negli anni a seguire invece questo nuovo meccanismo proposto è stato effettivamente sviluppato e implementato con successo (da altre blockchain). Il primo whitepaper tecnico che delineava una reale soluzione Proof-of-Stake fu pubblicato l’anno seguente da Sunny King e Scott Nadal.
La proposta sul forum mirava a risolvere diversi potenziali problemi:
- Velocità – il nuovo meccanismo avrebbe velocizzato la validazione delle transazioni e quindi aumentato la scalabilità della rete
- Fiducia – questo sistema poteva migliorare la questione della fiducia tra i validatori selezionandoli per qualità
- Il punto debole dell’hardware – l’idea era di eliminare l’hardware necessario ad eseguire il mining con il PoW perché, in quanto componente fisica, è esposto a potenziali ban o sequestri da parte delle autorità e governi
- Maggiore democratizzazione – l’obiettivo era che tutti i possessori delle monete potessero partecipare attivamente alle scelte di sviluppo e sull’andamento del progetto, tramite una votazione.
Il fulcro di tutto il protocollo sarebbe stato lo staking delle monete, ossia gli utenti intenzionati a diventare dei validatori avrebbero dovuto depositare e vincolare le proprie monete in appositi smart contract.
Come funziona il Proof-of-Stake
I protagonisti di questo meccanismo non sono i miner, bensì i Validator. Questi non si servono di hardware con alta potenza di calcolo, ma semplicemente di un nodo della rete e di token che bloccano come garanzia.
Quando gli aspiranti validatori bloccano le loro monete in staking, le mandano ad uno specifico indirizzo e, attraverso l’ausilio di uno smart contract, queste vengono “congelate”.
La scelta dei validatori di un blocco si basa su diversi criteri in base al protocollo. Di solito c’è una componente casuale e nella maggior parte dei casi la probabilità di essere scelti dipende dalla quantità di criptovaluta messa in staking. Il funzionamento non è molto diverso dall’estrazione dei biglietti vincenti nelle lotterie, tanti più biglietti si possiedono e maggiori saranno le probabilità di essere estratti; allo stesso modo più monete si hanno in staking e più alte sono le probabilità di essere scelti per la generazione del blocco seguente.
Una volta determinati i validatori avviene la generazione del blocco successivo, e i validatori che non vengono scelti di solito diventano attestatori, ossia gruppi di validatori che mettono un “timbro di validità” al nuovo blocco proposto in precedenza. L’ultimo passaggio è più pratico, infatti finalmente il nuovo blocco può essere correttamente inserito nella blockchain. Il prossimo blocco richiederà lo stesso procedimento, per cui ogni volta il validatore sarà diverso.
Lo stake: l’incentivo al rispetto delle regole
Uno dei problemi che potenzialmente potrebbe affliggere qualsiasi blockchain è l’attacco del 51%.
51% Attack
Quando un gruppo di miner o validatori riesce ad ottenere il controllo della maggioranza del network di una blockchain con lo scopo di controllarne la registrazione delle transazioni e il valore.
Questo è un potenziale problema anche delle blockchain PoS, seppure sia più difficile che si verifichi. Per manipolare la validazione, a differenza del PoW non è necessario avere il 51% della potenza computazionale, ma il 51% di tutte le monete in circolazione.
Per evitare questa situazione vengono forniti degli incentivi affinché tutti si comportino nella maniera più corretta e legittima possibile. Infatti, se qualcuno provasse a generare blocchi non validi perderebbe immediatamente l’intero importo messo in staking tramite il cosiddetto slashing. Nella maggior parte dei casi, le monete verrebbero bruciate ovvero andrebbero a finire in un wallet ad-hoc dove nessuno possiede la chiave privata, in altre parole, sarebbero inutilizzabili per sempre.
L’intero sistema d’incentivi in favore della sicurezza del network è stato ideato e pensato ispirandosi alla teoria dei giochi, in modo tale da rendere più conveniente rispettare le regole che cercare di aggirarle. Questa caratteristica non è specifica delle blockchain basate su PoS, tuttavia lo slashing è efficace solo laddove esiste il concetto di staking.
Varianti del Proof-of-Stake
Nel tempo gli sviluppatori di vari progetti hanno cercato di adattare il meccanismo PoS alle esigenze delle loro blockchain, perlopiù con lo scopo di rendere il consenso più scalabile e più decentralizzato. Si sono create quindi alcune varianti con caratteristiche uniche:
- Delegated Proof-of-Stake (DPoS) – come l’acronimo stesso fa intuire, gli utenti delegano i propri token a validatori “selezionati”, questi verificano le transazioni e si occupano della creazione di nuovi blocchi. Blockchain come Eos.io utilizzano questo meccanismo di consenso
- Liquid Proof-of-Stake (LPoS) – coloro che non hanno abbastanza token o risorse per diventare validatori possono delegare quelli che hanno a dei validatori. La particolarità del LPoS rispetto al DPoS è che chi delega non è costretto a tenere le monete bloccate per ricevere ricompense ma può continuare ad utilizzarle. In caso di frode chi ha delegato non perde le monete mentre i validatori a cui viene delegato lo Stake sì. Questa caratteristica rende il network più democratico perché in questo modo tutti possono partecipare alla rete, non importa se non si raggiunge il numero minimo di monete per effettuare lo staking. Tezos (XTZ) è un progetto che utilizza il LPoS
- Pure Proof-of-Stake (PPoS) – disegnato dal team di sviluppo di Algorand, sulla base della funzione inventata da Silvio Micali (VRF), questa versione del PoS si differenzia per l’anonimato dei validatori e l’alto livello di casualità e decentralizzazione. La validazione di un solo blocco infatti passa per ben 3 gruppi diversi di partecipanti, la cui privacy è completamente tutelata, pur essendo il processo completamente verificabile
- Nominated Proof-of-Stake (NPoS) – i delegatori (qui chiamati Nominator) scelgono dei Validator non in maniera casuale ma secondo un criterio di reputazione. I Nominator tendono a scegliere i Validator che adottano abitualmente tutte le pratiche di sicurezza e che fanno scelte positive per il network. I Nominator per eleggerli devono bloccare le loro monete, questo assicura che la scelta dei Validator sia fatta con criterio. Polkadot (DOT) utilizza questa tipologia di consenso.
Il Proof-of-Stake si propone come una delle soluzioni ai consumi energetici del mining, ma offre ulteriori vantaggi nella gestione del consenso sulle blockchain grazie alla sua maggiore adattabilità alle specifiche esigenze e caratteristiche dei singoli progetti.
–
Articolo di Andrea Macrì