Introduzione

Il Proof-of-Stake (PoW) Γ¨ una tipologia di algoritmo di consenso sviluppato come evoluzione del classico Proof of Work. Analogamente al PoW l’obiettivo Γ¨ validare un nuovo blocco in una Blockchain decentralizzata senza l’ausilio di un ente centrale.

Nel PoW i miner devono risolvere un problema crittografico, il primo che lo risolve β€œvalida” il blocco e questo puΓ² essere immesso nella rete. Un nodo per immettere un nodo malevolo nella rete dovrebbe avere piΓΉ della metΓ  della potenza computazionale della rete, cosa impossibile. Il miner che risolve il problema riceve il block reward, una quantitΓ  definita di Criptovaluta.

Questo approccio ha portato, negli anni, a creare delle vere e proprie mining farm, capannoni giganteschi contenenti calcolatori con il solo scopo di minare e ottenere Bitcoin, portando ad un consumo gigantesco di energia (ad oggi ci stiamo spingendo oltre i 91 TWh). Per avere maggiore hash/rate e quindi essere premiati dalla piattaforma inoltre i minatori si uniscono nelle cosiddette mining pool portando quindi ad un accentramento del potere nella rete, cosa opposta alla decentralizzazione necessaria della rete.

Tutte queste problematiche portano alla necessitΓ  di pensare ad un nuovo algoritmo di consenso.

Funzionamento

L’idea di base Γ¨ quella di permettere a tutti di competere contro l’altro per il mining Γ¨ uno spreco. Quindi sarΓ  la rete che sceglierΓ , secondo dei parametri, il nodo che dovrΓ  validare il blocco. Il nodo in questione si chiamerΓ  validator e il blocco non verrΓ  minato ma coniato (forge).

Il nodo non viene scelto a caso, ma viene scelto tra i nodi che hanno depositato una certa quantitΓ  di valuta nella rete (stake), in particolare maggiore Γ¨ la valuta depositata maggiore sarΓ  la probabilitΓ  di essere scelto, linearmente. Questa azione Γ¨ detta Staking.

Questa quantitΓ  di moneta Γ¨ una sorta di deposito cauzionale bloccato che non puΓ² essere speso.

Selezione

Per selezionare un blocco validatori non ci si puΓ² basare solo sulla quantitΓ  di moneta depositata ma anche:

  • la longevitΓ  dello stake (coin age, cioΓ¨ da quanto tempo Γ¨ stato fatto il deposito). Quando un nodo viene selezionato dall’algoritmo e conia un nuovo blocco, la suaΒ coin ageΒ viene azzerata e dovrΓ  trascorrere un certo periodo di tempo prima che possa essere selezionato nuovamente. Questo sistema impedisce ai nodi con grandi stake di dominare la blockchain.
  • fattore di randomizzazione
  • ImpossibilitΓ  di essere scelto due volte consecutive

PerchΓ© la Proof-of-Stake non favorisce i ricchi

Apparentemente questo approccio potrebbe sembrare che avvantaggi i ricchi che possiedono tanta moneta e che, conseguentemente, accentri il potere analogamente al PoW. E’ da sottolineare perΓ² anche anche il PoW avvantaggia i ricchi che possono permettersi di comprare mining farm in paesi sottosviluppati, la loro potenza non cresce in modo lineare in quanto possono sfruttare le economie di larga scala. Nella Proof-of-Stake invece la relazione Γ¨ lineare tra investimento e guadagno.

Validazione

Se un nodo viene scelto come validatore, dovrΓ  verificare che tutte le transazioni all’interno del blocco siano valide; l’algoritmo di controllo dipenderΓ  dalla rete. Una volta verificato il nodo verrΓ  immesso nella rete e inviato a tutti gli altri nodi (che verificheranno che il nodo non contenga transazioni invalide) in modo che aggiornino la loro copia della blockchain locale e il validatore otterrΓ  le fee presenti sulla transazioni del blocco. Non c’è quindi un block reward fisso fornito dalla rete come nei sistemi PoW.

Come evitare che il nodo scelto per la validazione immetta nella rete un blocco invalido? Semplice: cosΓ¬ facendo il nodo viene β€œmultato” dalla rete e perderΓ  parte del suo stake e inoltre non potrΓ  piΓΉ essere selezionato in futuro. Questa β€œmulta” dovrΓ  essere maggiore del block reward ottenuto dalla fee delle transazioni. In questo modo ogni nodo non avrΓ  alcuna convenienza nel validare blocchi contenenti transazioni invalide.

Vantaggi

Il Proof-of-Stake consuma notevolmente meno energia dato che vi Γ¨ solo un nodo che effettua la validazione e non n in competizione.

Inoltre vi Γ¨ meno accentramento di potere: per la rete bitcoin oggi BTC.com, AntPool e SlushPool insieme fanno piΓΉ del 50% della forza computazionale della rete. Se si alleassero insieme avrebbero la forza di validare blocchi fraudolenti, mettendo in pericolo l’infrastruttura dell’intera rete. Nel Proof-of-Stake avrei lo stesso problema se avessi il 51% della moneta circolante, quindi il 51% della capitalizzazione della moneta in questione: maggiore Γ¨ la capitalizzazione piΓΉ Γ¨ difficile ottenere ciΓ². Anche ammettendo di avere il 51% della capitalizzazione di una moneta il mercato attribuirebbe a questa ultima un valore molto basso portando quindi all’impossibilitΓ  di avere dei margini soddisfacenti con le sole fee delle transazioni.

Un ulteriore vantaggio vi Γ¨ nella velocitΓ  dell’approvazione di un blocco: dato che non vi Γ¨ alcun problema complesso da risolvere non ho tempi di attesa lunghi per l’approvazione delle transazioni (in btc un nuovo blocco viene immesso nella rete ogni 10 minuti) e quindi potrei, potenzialmente, utilizzare questi sistemi per i pagamenti al dettaglio.

Infine configurare un nodo per essere un nodo di una rete Proof-of-Stake è molto più semplice ed economico rispetto a un nodo PoW che necessita di hardware importante, questo incoraggia le persone a diventare dei nodi decentralizzando la rete e rendendola così più sicura.

Problemi

Il principale problema da risolvere Γ¨ l’accentramento di potere di chi possiede tante monete, il quale verrΓ  selezionato piΓΉ spesso e conseguentemente diventerΓ  sempre piΓΉ ricco. Una idea potrebbe essere considerare da quanto tempo le monete sono state messe in stake e non solo la loro quantitΓ .

Utilizzo

Il PoS viene utilizzato in questo momento da BNB, Solana (versione ibrida PoH), Avalanche, Cardano, Polkadot e soprattutto il nuovo Ethereum 2.0 che verrΓ  completato nel 2023.