logo academy

Proof-of-Stake vs Proof-of-Work: i meccanismi di consenso su blockchain

28 ottobre, 2021
9 min
Proof-of-Stake vs Proof-of-Work: i meccanismi di consenso su blockchain
Principiante
Cosa Imparerai

    I meccanismi di consenso come il Proof-of-Work e il Proof-of-Stake regolano i processi di verifica delle transazioni su blockchain. Questi meccanismi sono progettati per risolvere i problemi di sicurezza associati ai sistemi decentralizzati.

    Il consenso nella blockchain

    Un sistema distribuito e decentralizzato è un insieme di attori di pari livello (peer o nodi) che hanno uno scopo in comune. Che sia centralizzato o meno, partiamo con la consapevolezza che è impossibile ottenere un sistema senza difetti. 

    Le blockchain che a noi interessano, ossia quelle pubbliche e decentralizzate, hanno lo scopo di validare transazioni di criptovaluta e aggiungerle alla blockchain in modo corretto e funzionale.

    Se i sistemi di pagamento come Visa gestiscono la convalida delle transazioni in modo centralizzato, ponendosi come principali intermediari, su queste blockchain non esiste un’autorità, ossia un nodo della rete con più controllo degli altri.

    Per questo le blockchain hanno dovuto trovare modi di dare ugual potere a tutti i partecipanti evitando pratiche dannose come la replica di transazioni o il furto di criptovalute.

    Sulla blockchain a controllare le transazioni ci sono una moltitudine di nodi, ossia computer che conservano una copia della cronologia della blockchain.

    Come fanno tutti questi nodi a validare una transazione in modo decentralizzato senza entrare in conflitto, e mantenendo la motivazione a comportarsi correttamente

    In altre parole, come raggiungono il consenso in modo sicuro?

    Il problema dei Generali Bizantini

    È questo il cuore del problema dei generali bizantini, una casistica della Teoria dei giochi.

    È una sorta di metafora che ci permette di capire meglio la sfida posta dal consenso.

    Il problema consiste nel permettere a 4 generali di prendere una decisione e fare la loro mossa in modo coordinato.

    Ecco le condizioni:

    • Attorno a una fortezza ci sono 4 generali bizantini (i nodi), ognuno con il suo esercito
    • Possono decidere o di attaccare (validare) o di ritirarsi (rifiutare)
    • La decisione e l’azione devono essere unanimi
    • Non possono cambiare idea (immutabilità)
    • Possono inviarsi messaggi per comunicare la decisione

    La difficoltà nasce dal fatto che i messaggi possono andare persi, oppure 1 o più generali possono tradire gli altri e mandare un messaggio che mette gli altri in pericolo.

    In particolare, un sistema Byzantine Fault Tolerant, “Tollerante al problema dei generali bizantini” è caratterizzato da un meccanismo di consenso che non viene ostacolato se un partecipante alla rete agisce in modo dannoso o non partecipa.

    Questo è fondamentale per rendere una blockchain scalabile ed efficiente.

    Proof-of-Work: longevità

    Satoshi Nakamoto risolve per primo il problema dei generali bizantini e del consenso distribuito applicando i Proof-of-work alla blockchain Bitcoin. Questo stesso meccanismo è stato adottato poi dalle criptovalute derivate direttamente o indirettamente da Bitcoin, come Litecoin, Bitcoin Cash, Dogecoin e inizialmente Ethereum. 

    Il Proof-of-work è tecnicamente la prova di aver speso più energie di tutti per decodificare un codice crittografico generato dal protocollo. 

    Per raggiungere il consenso tramite il proof-of-work infatti i nodi chiamati miner competono per risolvere un “puzzle” crittografico. Non si tratta di un puzzle che richiede un ragionamento o una particolare logica, ma per risolverlo bisogna semplicemente generare quante più soluzioni possibili. La generazione continua di queste soluzioni richiede potere computazionale (CPU) e quindi energia.

    Più un miner impiega potere computazionale, più probabilità avrà di risolvere il codice, ottenendo quindi il diritto di aggiungere il blocco alla blockchain di Bitcoin e di ricevere le commissioni delle transazioni che contiene, in aggiunta a nuovi bitcoin coniati.

    Questo processo effettuato dai miner è il famoso mining.

    La ricompensa che ricevono i miner è l’incentivo ad agire in modo corretto per tutta la rete e non tentare di derubare gli altri partecipanti.

    Se anche un miner riuscisse a raggiungere tanto potere computazionale da prendere il controllo di una parte sufficiente della rete (51%) per poter influire sul suo funzionamento, dovrebbe scegliere se rubare bitcoin altrui o validare tantissime transazioni per poter ottenere un’alta ricompensa totale.

    In questi casi, bisogna fare in modo che l’opzione lecita sia quella più conveniente.

    proof of work

    Pro e contro del Proof-of-Work 

    • Pro: con Bitcoin il PoW ha passato il test del tempo, mantenendo il network sicuro
    • Contro: il PoW rende Bitcoin lento, con 10 minuti per validare ogni blocco.
    • Contro: nella pratica, l’incentivo inventato da Satoshi ha causato la nascita di mining pool di Bitcoin che di fatto controllano la maggior parte della rete, rendendola così meno distribuita. 
    • Contro: L’elevato consumo energetico, anche se tramite fonti rinnovabili, costituisce una barriera all’entrata e un costo.

    Proof-of-Stake: scalabilità ed efficienza

    Non sta a noi discutere se il Proof-of-Stake sia più o meno sicuro del PoW, ma sappiamo che nasce per essere più veloce, scalabile e meno dispendioso di energie. Polkadot e Cardano utilizzano il PoS.

    Al posto dei miner qui troviamo i validatori, che danno prova della propria affidabilità bloccando in un wallet dei token che fungono da garanzia (stake). 

    Validando le transazioni e aggiungendole alla blockchain, i validatori ricevono ricompense. Il modo in cui vengono selezionati i validatori è leggermente diverso in ogni blockchain, ma di solito è fondamentalmente casuale. In certi casi, influisce anche la quantità di token in staking.

    Pro e contro del Proof-of-Stake

    • Pro: Un vantaggio è che per partecipare a una blockchain di questo tipo basta un normale computer che abbia semplicemente abbastanza memoria da conservare la cronologia della blockchain.
    • Pro: L’incentivo a comportarsi in modo corretto è più forte perché in caso contrario il proprio stake viene rimosso dalla rete tramite il cosiddetto “slashing”.
    • Contro? La barriera all’entrata cambia rispetto al Proof-of-Work perché non è più richiesto l’acquisto di hardware molto potente e alto consumo di energia, ma la sola disponibilità di criptovalute. 
    • Per questo è un modello spesso criticato: non del tutto inclusivo. Come anticipato, ogni sistema richiede un diverso compromesso.

    D’altra parte, l’incentivo del PoS è forse cinico ma efficace: se credo abbastanza in un progetto da comprarne la criptovaluta, non è nel mio interesse recare danno alla sua rete. Al contrario, se non compro la sua criptovaluta, non ho niente da perdere da un comportamento negativo.

    Proof-of-Stake vs Proof-of-Work secondo Vitalik Buterin

    Per tutti questi motivi, Ethereum si sta convertendo gradualmente dal meccanismo PoW al PoS tramite l’aggiornamento alla versione 2.0.

    Di fronte alla scelta del meccanismo di consenso “corretto”, Vitalik Buterin ci ricorda che lo spirito dei cypherpunk, ossia del movimento che ha portato alla nascita di Bitcoin, era idealista, ma anche pratico. 

    I cypherpunk erano fondamentalmente crittografi e informatici che credevano nella decentralizzazione dei sistemi. Vitalik interpreta lo spirito cypherpunk, tra le altre cose, col principio che è meglio creare sistemi “più facili da difendere che da attaccare”.

    Questo non solo per una questione filosofica, ma come principio efficiente dal punto di vista ingegneristico. 

    Il Proof-of-work non rispetta questo principio, in quanto il costo di un attacco è equivalente al costo della difesa: la perdita è solo in energia.

    Il Proof-of-stake invece aumenta le perdite di chi va contro la rete: punisce con lo slashing.

    L’altro grande vantaggio del PoS è la velocità. Vitalik Buterin stesso però mette in guardia dal puntare eccessivamente sulla velocità, perché, dato il trilemma della blockchain, questo significherà sempre sacrificare sicurezza e decentralizzazione.

    proof of stake vs proof of work

    Delegated Proof of Stake: inclusione

    Superando il solito duo Bitcoin-Ethereum, PoW-PoS, cominciamo a pensare alla varietà delle possibili soluzioni di consenso.

    È il DPoS la variazione più nota del PoS, iterata per la prima volta da Dan Larimer, fondatore di Eos e Bitshares.

    In questo sistema, la rete intera vota a chi delegare la validazione dei blocchi. Siccome la validazione non è un’attività accessibile a tutti, la possibilità di delegare estende la partecipazione a più nodi.

    I validatori si chiamano delegati, oppure witness (testimoni), o ancora block producer.

    Per votare è necessario comunque mettere in staking una garanzia, ma è possibile farlo attraverso una staking pool su un servizio solitamente semplice da utilizzare. Nelle staking pool è possibile depositare anche piccoli importi.

    Quando arrivano nuove transazioni, viene scelto casualmente un numero limitato di delegati per registrare il nuovo blocco.

    Quando un delegato valida un blocco riceve commissioni come ricompensa e ne dà una percentuale a coloro che l’hanno eletto.

    delegated proof of stake

    Questo meccanismo di consenso è adottato da Eos, e ha delle somiglianze con il PoS di Cardano, ma ci sono delle differenze.

    Cardano applica il concetto di delega solo alle staking pool. La delega non è utilizzata per scegliere inizialmente i validatori, a modi elezione, ma solo per delegare i propri ADA a staking pool. Qualunque block producer in Cardano può finire per validare un blocco, non un numero limitato eletto all’inizio del processo.

    Correlati