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.