Il meccanismo di consenso di una blockchain serve a garantire che i partecipanti concordino sullo stato attuale della blockchain. Il meccanismo di
consenso determina chi può aggiungere nuovi blocchi di transazioni, e uno dei suoi obiettivi principali è assicurare che la catena non venga riscritta.
Consenso Proof of Work
Nelle blockchain con un consenso
Proof of Work puro (come
Bitcoin), solo i miner possono aggiungere blocchi alla catena, impiegando hardware in grado di indovinare efficientemente la risposta a un dato problema matematico. Ogni volta che un miner trova una risposta valida, può creare un blocco che verrà accettato dal network. Mentre i miner possono scegliere di partecipare al mining di qualsiasi catena, il network accetterà come legittima soltanto quella con la maggior Proof of Work accumulata (cioè il maggior numero di hash, o tentativi). Questo significa che i miner sono incentivati a lavorare sulla catena più lunga, e quando vedono un nuovo blocco valido, cercheranno di trovare la soluzione che permette loro di costruire su quel nuovo blocco.
La difficoltà nel riscrivere la blockchain è ciò che le consente di agire da registro per transazioni finanziarie. Quando una transazione risulta in un blocco che invia monete a uno wallet, e diversi blocchi sono stati costruiti su quel blocco (conferme), diventa molto poco probabile che quel blocco (e transazione) venga riscritto.
Se un’entità controlla sufficiente hashing power per superare la “catena onesta,” può riscrivere (o riorganizzare) la blockchain utilizzando un blocco “vecchio” come punto di partenza per il mining invece del più recente. Di seguito descriviamo un esempio semplificato di questo tipo di attacco, conosciuto anche come
51% attack:
L’attaccante spende nel blocco X inviando a un exchange, quindi inizia il mining su una catena parallela in privato (i blocchi non vengono trasmessi al network). Una volta che il numero di conferme richiesto è passato, l’attaccante scambia le monete con qualcos’altro e lo preleva dall’exchange. Quando il prelievo è terminato, l’attaccante rilascia la catena parallela, e se ha più PoW (blocchi) della catena originale, il network la accetta come legittima e la versione di storia rappresentata dalla catena originale (incluso il deposito dell’attaccante) scompare. A questo punto l’attaccante è libero di spendere di nuovo quelle monete.
Dato che i miner sono le uniche entità che possono aggiungere direttamente blocchi alla catena nelle criptovalute a PoW pura, sono in una posizione di forza dal punto di vista della governance. Per adottare una qualsiasi modifica alle regole di consenso del network è necessario il supporto della maggioranza di hash power. I “soft fork” richiedono che un numero sufficiente di miner riconosca un nuovo set di regole per fare in modo che gli utenti possano effettuare transazioni e che queste vengano elaborate correttamente e incluse in blocchi. Gli “
hard fork” dividono il network in due componenti, e i miner decidono quale accettare come legittima secondo la regola comunemente riconosciuta secondo cui “la catena con più PoW è quella da seguire”.
Consenso Proof of Stake
Il meccanismo di consenso
Proof of Stake è un metodo alternativo per decidere chi può aggiungere nuovi blocchi e verificare l’attuale stato della blockchain. Invece di miner che competono per risolvere un problema, con la proof of stake, il produttore del blocco successivo, o forger, viene determinato attraverso un processo basato sul numero di monete conservate in wallet (letteralmente “stake”, posta in gioco). Questo processo confida nel fatto che chi ha più da perdere prenderà decisioni responsabili per se stesso e quindi la totalità del network.
Il consenso Proof of Stake elimina la necessità di un processo di mining dispendioso in termini di energia, ma la mancanza di un investimento energetico significativo crea un altro problema, a volte indicato come “nothing at stake” (niente in gioco). Nel caso di un fork, i forger PoS (il termine “forging” viene in genere usato al posto di “
mining”) sono incentivati a lavorare su entrambe le catene perché il forging su una catena extra costa molto poco e possono ricevere le ricompense su entrambe le catene. Questo scenario rappresenta un problema per il network in quanto dovrebbe esistere soltanto una catena, e concordare sullo stato di quella singola catena è l’obiettivo del meccanismo di consenso.
La Proof of Stake ha un ulteriore problema per quanto riguarda la distribuzione di token. I miner PoW sostengono costi significativi (hardware, elettricità) e devono in genere vendere una notevole porzione delle monete ricevute per coprire queste spese. Di conseguenza, molte di queste monete possono essere acquistate sul mercato, invece di essere accumulate dai miner. I forger Proof of Stake hanno costi operativi molto bassi, quindi non hanno la stessa pressione a vendere le monete ricevute per il mantenimento del network. Le entità in possesso di grandi somme che partecipano alla Proof of Stake tendono ad aumentare la propria quota di monete in circolazione attraverso le ricompense per i blocchi e le commissioni di transazione dagli utenti del network. Questa struttura è stata paragonata al feudalesimo, il network è effettivamente posseduto e operato dai possessori di monete, e gli utenti pagano loro affitti per poterlo usare. Esiste in genere un limite minimo al di sotto del quale non è possibile partecipare direttamente al processo della Proof of Stake.
Ibrido PoW/PoS
L’obiettivo dei sistemi ibridi Proof of Work e Proof of Stake è quello di sfruttare i benefici dei rispettivi approcci e usarli per bilanciarne le debolezze. Decred è tra le poche
criptovalute a utilizzare sia la PoW che la PoS in forme riconoscibili e fonderle per produrre un meccanismo di consenso multi-fattore o ibrido.
Anche le “masternode coin” sono per certi aspetti ibridi, in quanto hanno una componente Proof of Work riconoscibile che svolge un ruolo simile a quello in
Bitcoin, e un ruolo aggiuntivo per i nodi speciali. Generalmente viene imposto l’obbligo per questi nodi speciali di possedere una certa somma della valuta come garanzia, per dimostrare che agiranno nei migliori interessi del network, schema simile alla logica della Proof of Stake. Dash è la masternode coin originale e fa riferimento a questo modello come
Proof of Service. Questo articolo si concentra su ibridi con una componente Proof of Stake, quindi non considera la
serie di monete che imitano i masternode o la Proof of Service.
La componente PoW di Decred funziona in modo simile ad altri progetti basati sulla PoW e utilizza la funzione hash Blake-256. La componente PoS di Decred, e il modo in cui viene
intrecciata nella catena, è piuttosto singolare e degna di un’ulteriore spiegazione.
Per partecipare alla Proof of Stake di Decred, i possessori devono bloccare DCR per un certo tempo per comprare “tickets.” Il prezzo di un ticket individuale è fissato da un meccanismo di mercato in cui il sistema punta a un numero fisso di ticket in circolazione (40,960) - se i ticket superano l’obiettivo il prezzo aumenta, se ce ne sono di meno diminuisce. Quando qualcuno compra un ticket, i DCR usati vengono bloccati (ovvero non possono spenderli) fino a quando il ticket non viene chiamato a votare secondo un processo pseudocasuale, oppure fino a quando scade dopo circa 142 giorni. Questo introduce il costo-opportunità per la PoS, inteso a garantire che i votanti PoS abbiano interessi in gioco e agiscano quindi nei migliori interessi del network.
I partecipanti alla PoS (indicati anche come voter o stakeholder) hanno tre ruoli distinti da svolgere: votare sui blocchi, votare sulle modifiche delle regole di consenso e votare sulla gestione del progetto usando il Politeia Proposal System. Il primo dei tre ruoli, la votazione sui blocchi, è il processo attraverso cui i voter PoS partecipano più direttamente nel mantenimento del consenso.
Votare sui blocchi
Quando un miner PoW trova un blocco valido, lo trasmette al network, ma perché questo possa essere considerato valido deve includere voti da almeno 3 di 5 ticket selezionati casualmente. I voter PoS tengono aperto il proprio wallet, pronti a rispondere con voti quando i loro ticket vengono chiamati (oppure coinvolgono
Voting Service Providers per farlo al posto loro). Quando un ticket PoS viene chiamato a votare e risponde, il suo proprietario riceve una ricompensa.
Quando i ticket vengono chiamati, votano per accettare o respingere le transazioni regolari del blocco precedente. I
Nodi del network non riconosceranno un nuovo blocco come valido fino a quando non include almeno 3 voti. Se la maggioranza dei ticket chiamati a votare respinge le transazioni del blocco precedente, queste tornano alla mempool. Queste transazioni regolari includono la ricompensa per i miner PoW, ma non la ricompensa per i voter PoS.
Di conseguenza, i voter PoS hanno il potere di privare le ricompense ai miner senza colpire anche le loro. Questa misura permette di limitare la capacità dei miner PoW di porre il veto a modifiche alle regole di consenso del network, le quali vengono votate e approvate dagli stakeholder. Infatti, i voter PoS possono respingere qualsiasi tipo di comportamento da parte dei miner che non sia di loro piacimento, votando “no” quando viene individuato un comportamento malevolo o inefficiente - prevenendo che miner PoW disonesti inseriscano transazioni e ricevano ricompense.
Questo livello di verifica PoS rafforza notevolmente la sicurezza del network e la resistenza agli attacchi di maggioranza. Il metodo comune con cui viene eseguito un attacco a doppia spesa è la riscrizione della blockchain tramite il mining in segreto di una catena alternativa che viene poi rilasciata dopo un certo periodo di tempo, approfittando dell’annullamento delle transazioni contenute nella catena “vecchia” (ovvero spendendo due volte gli input). Dato che i blocchi Decred richiedono input da ticket selezionati casualmente per essere considerati validi e non possono essere costruiti da miner PoW fino a quando non hanno ricevuto questo input, non è possibile per i miner PoW creare una catena in segreto a meno che non controllino anche una proporzione significativa dei ticket in circolazione (vedi
questi articoli).
Il design ibrido PoW/PoS aumenta notevolmente i costi di un attacco al network in quanto ci sono due sistemi distinti che devono essere aggirati dall’attaccante. La componente PoS, in particolare, è configurata per fare in modo che i ticket possono essere ottenuti piuttosto lentamente. Solo un numero limitato di ticket può essere acquistato in ciascun blocco/intervallo, e acquistare il numero massimo causa un brusco aumento del prezzo. Inoltre, una volta che questi ticket sono stati comprati, i fondi utilizzati vengono bloccati per un certo tempo, lasciando un potenziale attaccante esposto a qualsiasi svalutazione delle monete bloccate verificata in seguito a un attacco.
La condizione per cui ciascun blocco viene votato da stakeholder selezionati casualmente implica che la
blockchain deve essere condivisa con tutti i partecipanti durante il mining, migliorando la sicurezza del network. Il sistema ibrido di Decred è stato progettato per conferire anche agli stakeholder potere sui miner PoW.
Votare per cambiare il consenso
Decred ha deciso sin dall’inizio di rendere gli stakeholder PoS la forza decisionale dominante nella governance della blockchain. Le regole di consenso contengono una procedura di ratificazione degli aggiornamenti, secondo cui qualsiasi modifica alle regole di consenso del network può essere impiegata solo dopo essere stata sottoposta a un processo di votazione. Le modifiche possono essere applicate solo se approvate da almeno il 75% dei ticket votanti. Questo processo ha inizio quando una certa proporzione di miner (95%) e voter (75%) utilizza software aggiornato con modifiche latenti alle regole. La proposta viene accettata se ha un supporto del 75% dopo un periodo di voto della durata di 4 settimane, in caso contrario viene respinta, e se non ottiene una super maggioranza in una o l’altra direzione, ha inizio una nuova votazione. Se una proposta viene accettata, la modifica alle regole si attiva un mese più tardi.
Gestione del progetto: Politeia
Le ricompense per i blocchi di Decred vengono divise tra miner PoW (60%), voter PoS (30%), e una Tesoreria (10%) per finanziare lo sviluppo di software open source che promuova gli obiettivi del progetto. I possessori di ticket hanno la possibilità di votare sul modo in cui questo fondo viene utilizzato, su quali funzionalità aggiungere e per determinare le politiche attraverso la
piattaforma Politeia.
In chiusura
Dato che i voter PoS ricevono il 30% della ricompensa per i blocchi, non possono mantenere la propria quota relativa dei DCR in circolazione semplicemente attraverso lo staking. La maggior parte dei DCR emessi va ai miner PoW in cambio del ruolo che svolgono nel proteggere il network e mitigare il problema “nothing at stake” proprio dei sistemi PoS puri. I miner dovranno in genere vendere una parte considerevole delle ricompense ricevute per sostenere i costi operativi, garantendo che un’offerta equa di DCR sia disponibile nel mercato.
La blockchain di Decred presenta un’architettura unica ed è uno degli esempi più notevoli di sistema ibrido PoW/PoS. Così come i progetti con consenso PoS sono un gruppo generale con variazioni significative al suo interno, anche progetti futuri che utilizzeranno approcci ibridi PoW/PoS saranno unici e non seguiranno necessariamente la struttura di Decred.