Direttore responsabile: Giovanni Capaccioli

Blockchain: la Proof of Stake (PoS)

Lo stake ed il forger.

Blockchain: la Proof of Stake (PoS)

Nella blockchain, la Proof of Stake ha come scopo il raggiungimento del consenso della rete blockchain, così come la Proof of Work, ma tale obiettivo viene raggiunto in modo diverso dalla PoW.

La PoS, infatti, non prevede i miners, bensì i “Validatori” detti anche “Forgers” i quali vengono ricompensati del loro lavoro grazie alle commissioni sulle transazioni.

Il sistema può sembrare complesso, ma non lo è: si basa sullo stake, cioè sulla quantità di moneta messa in gioco dal validatore. Egli dovrà bloccare, congelare all’interno del sistema una quantità di moneta a sua scelta per venire poi selezionato per forgiare il blocco: maggiore moneta congela, maggiore sarà la probabilità di essere il nodo validatore.

Il validatore, in estrema sintesi, non deve risolvere il complesso lavoro della PoW.

Il problema de “il ricco diventerà sempre il più ricco”: soluzioni usate.

Chiaramente, questa non è l’unica condizione per partecipare alla PoS, altrimenti diverrebbe validatore sempre e solo il più ricco del sistema. A questa regola ne vengono aggiunte altre, a scelta, in base alla blockchain creata, al livello di difficoltà desiderato, alla governance e così via.

Alcune delle altre più comuni regole aggiunte sono: 

  • Randomised Block Selection”: combinazione tra valore hash più basso e stake più grande. 
  • Coin Age Selection”: in base a quanto tempo hanno lasciato i propri token congelati come stake. Essa viene calcolata moltiplicando il numero di giorni per il numero di monete congelate. Quando un nodo forgia un blocco, la sua coin age viene resettata a zero e deve aspettare un certo periodo di tempo prima di poter essere selezionato – questo impedisce ai nodi con grandi stake di dominare la blockchain.
  • Delegated Proof of Stake”: BitShares, per esempio, prevede 101 delegati e ne sceglie sei random tra essi. Il vantaggio è che così si pensa che essi agiranno responsabilmente, ma il “contro” è che possono aver luogo situazioni di sybil attack: un singolo utente potrebbe simulare il voto di altri cinque delegati.

E’ importante ricordare che se un nodo vuole smettere di partecipare al processo di forging, deve attendere un certo periodo di tempo prima di poter accedere alla propria stake e alle ricompense guadagnate, lasciando al network tempo per verificare che non abbia aggiunto blocchi fraudolenti alla blockchain.

Lo stake come incentivo.

Lo stake funge da incentivo economico che dissuade il nodo forger dal convalidare o creare transazioni fraudolenti. Se il network individua una transazione fraudolenta, il nodo forger perde parte della sua stake, oltre al diritto a partecipare come forger in futuro. Quindi, a patto che lo stake sia più grande della ricompensa, il validatore che tenta di raggirare il sistema perderebbe molto di più rispetto a quello che riuscirebbe a guadagnare.

Il caso del controllo del network.

Nel caso in cui un nodo possedesse uno stake maggioritario nel network blockchain, esso lo controllerebbe: “51% attack” . A seconda del valore di una criptovaluta, un attacco del genere è ritenuto progressivamente di difficile realizzazione: per possedere il controllo della blockchain sarebbe necessario acquisire il 51% delle unità in circolazione.

Possibili vantaggi della PoS.

Le pesanti e tendenzialmente centralizzanti mining pool non sono più necessarie in un sistema strutturato a PoS, quindi sarebbe ancor più decentralizzato, tendente alla randomizzazione; crescerebbe quindi la sicurezza, sarebbe facilmente accessibile ed energeticamente efficientato.

Inoltre, dato che qui non vengono più distribuite nuove monete come ricompensa, il prezzo di una particolare moneta tende a rimanere maggiormente stabile, obiettivo spesso perseguito nel mondo blockchain: “stable coin”.

Il caso del “Nothing at stake” e possibili soluzioni.

Alcuni autori sostengono che la Proof of Stake non sia un’opzione ideale per costruire un protocollo di consenso distribuito. Il problema più grande rimane quello del cosiddetto “nothing at stake” (nessuna posta in gioco). 

Significa che nel caso di una ramificazione della blockchain (o qualsiasi altro tipo di disaccordo nel consenso), una persona possa “votare” per entrambe le varianti (i fork), perché ha delle poste in gioco in ciascuna di esse. 

Nella PoS non è computazionalmente dispendioso lavorare in tutti i fork esistenti, quindi potrebbe essere economicamente vantaggioso farlo.

Molti hanno provato a risolvere questi problemi:

  • Peercoin ha messo in atto dei checkpoint firmati dalla chiave privata del programmatore e poi veicolati centralmente dal sistema. Ciascun checkpoint è un punto fermo e non può essere riorganizzato né esso stesso né tantomeno la parte “approvata” da esso. Lo sviluppatore, quindi, è l’autorità centrale che pesa estremamente sulla blockchain.
  • Nxt consente di rilavorare un numero definito di blocchi: 720. Possibile conseguenza: il client potrebbe quindi “seguire” una ramificazione di 721 blocchi non accertandosi che sia la blockchain più lunga, prevenendo il consenso.
  • Ethereum – Slasher: gli utenti possono “punire” un “imbroglione” che forgia sui forks della blockchain. L’utente avrà dovuto firmerare due volte per creare una biforcazione e sarà punito se avrà creato una biforcazione senza avere nessuna posta in gioco.

In definitiva: nella PoS può essere chiaramente possibile e profittevole lavorare simultaneamente su più fork della blockchain. Il sunto di coloro che credono fermamente nella PoS è che “gli scenari di attacco più comuni siano impossibili o talmente difficili da predire che in realtà hanno validità solamente teorica”.