7 min read

Staking e proof-of-stake. Corso Base ep. 4

Continua, nella quarta puntata del nostro corso dedicato alle basi delle Crypto, lo studio degli algoritmi di consenso distribuito. Stavolta parliamo di proof-of-Stake (PoW): ecco cos'è e come funziona

L’algoritmo di consenso PoS

Lo “staking” è uno dei concetti più malinterpretati in assoluto. Soprattutto se accomunato alle possibilità di rendita passiva rese disponibili dai vari CEX. 

Lo stacking è il prendere parte attiva nel mettere in sicurezza una blockchain, ed è in questo senso che in questa sede si parlerà dell’algoritmo di consenso di tipo proof-of-stake (PoS), di come funziona, delle differenze che ci sono con il proof-of-work in termini di vantaggi e svantaggi, e di come funziona la validazione di un blocco. Lo staking, inteso come validatore è un punto cruciale del funzionamento dell’ecosistema crypto, ed è quindi fondamentale conoscerlo. 

Come funziona

Cosa succede quando si mettono delle coin in staking? Come per il proof-of-work, anche per il proof-of-stake vale la stessa problematica da risolvere, facilmente esemplificata dal “problema dei generali bizantini”, che abbiamo approfondito nell’ultima puntata. Tutti i vari “generali”, in questo caso i nodi della blockchain, devono coordinati in maniera distribuita, ovvero senza parlarsi tutti insieme l’uno con l’altro, evitando che i traditori vadano influenzare le funzioni dell’infrastruttura. In un sistema centralizzato il problema non si pone, ma quando i nodi sono decentralizzati e non c’è una gerarchia, allora la questione è più compli cata, ed entra in gioco il consenso distribuito. 

Nel PoW, tutto il sistema si regge sul fatto che chi partecipa attivamente al processo “spende” del “lavoro”, tradotto in termini di potenza di calcolo, energia, e quindi soldi. I miner, in questo senso, hanno tutto l’interesse che che le  cose vadano bene, con l’incentivo offerto in termini di guadagno. Nel caso del PoS, come si può intuire, non si parla di “lavoro”, ma di “stake”, un termine che deriva direttamente dal campo del gioco d’azzardo, inteso come un asset messo “in palio”. 

Al processo decisionale di validazione dei blocchi, quindi, vengono messi in staking alcuni token, con l’assunzione di un rischio dettato dalla natura stessa della blockchain. Gli asset in staking, in questo caso, non sono “al sicuro”, e proprio su questo rischio si basa l’incentivo a tutto il network di far funzionare bene le cose, tenendo lontani attori malevoli che potrebbero compromettere l’infrastruttura. 

Questo non è l’unico incentivo (o deterrente) perché ci sono anche delle “punizioni” dirette a chi  non svolge bene il suo ruolo di validatore. Ma ad ogni modo, ed è questo il passaggio fondamentale, nel PoS un nodo “vincola” i suoi token, ottenendo un potere di voto proporzionale. Ma cosa significa? In sostanza, i vari nodi che partecipano alla blockchain hanno un potere di voto distribuito tra di loro in maniera proporzionale alla quantità dei token in staking. Più se ne hanno, più sarà alta la possibilità di essere scelti come validatori.

L’algoritmo Tendermint BFT

L’algoritmo più famoso, o generalmente più utilizzato, è il Tendermint BFT, sfruttato per esempio da Cardano. Questo è pensato appositamente per essere “Byzantine fault tolerant”, da cui deriva il suo stesso nome, e per risolvere il problema di consenso alla base della blockchain. E per evitare quindi che eventuali generali  bizantini traditori possano compromettere tutta l’infrastruttura. 

Ma come funziona? Innanzitutto si inizia da un “block producer”, che viene scelto, come si accennava, in base alla quantità di token messi in staking. Questo sarà il blocco che propagherà le transazioni impacchettandole all’interno del blocco e “mostrandole” agli altri blocchi validatori, che da cui dipenderà la buona riuscita delle transazioni stesse. È in questo contesto che si esprime il potere di voto, con una transazione che viene effettuata una volta raggiunto un quorum relativo ai voti positivi o negativi dei validatori. 

L’algoritmo si definisce anche di consenso “asincrono”, proprio perché, a differenza del proof-of-work, in questo caso non c’è bisogno che tutti i nodi dicano la loro contemporaneamente. Infine, il block producer riceve la sua ricompensa per aver proposto e impacchettato un blocco valido.

Lo slashing

Questo è il funzionamento generale, ma c’è ancora molto da approfondire. I validatori, infatti, devono avere anche un deterrente, e questo è rappresentato dalla quantità di token che hanno messo in gioco. Tuttavia, nel caso di un partecipante particolarmente esposto, ne serve uno anche di un altro tipo, per evitare che questo possa trarre troppo vantaggio dalla sua posizione. Questo si chiama “slashing”, ovvero la punizione che viene inflitta al validatore che si comporta male, ovvero quando prova a proporre un blocco non valido, uno sbagliato, fa un double signing, oppure semplicemente è sempre off-line.

Ci sono due tipologie di punizione. La prima è appunto lo slashing, che consiste nella messa da parte di un partecipante tramite la perdita di una parte dello staking. La seconda è invece riservata a chi si comporta in modo malevolo, e viene detta “sailing”. In questo modo, il validatore malevolo viene inserito in una blacklist. E il deterrente, in questo caso, è fortissimo.

Validatore e delegatore

Per essere un variatore è richiesta un’enorme quantità di token. In Cosmos, per esempio, ci sono anche slot limitati dedicati ai top staker, quindi è poco verosimile che qualcuno con 10 Atom possa diventare un validatore. I modi sono due: o si è un membro della community con delle deleghe particolari, oppure si è una whale multimilionaria. 

Tuttavia ci sono dei vincoli. Il primo è il fatto che non ci sono poi così tanti vantaggi ad essere validatori rispetto a essere un delegatore (a meno di particolati deleghe), e il secondo è il dover gestire una macchina di validazione, il programma che fa le operazioni di proposta dei blocchi nonché di voto. Questa deve essere sempre online, e avere soprattutto requisiti hardware minimi.

Se non interessa sostenere queste spese, allora si può delegare. E in questo modo si possono ottenere le stesse ricompense da block producer. Il validatore, una volta ricevuta la ricompensa, la distribuirà in maniera proporzionale, trattenendo una piccola commissione. La scelta è quindi semplice, rispetto a cosa fare con i propri fondi, a meno che non si voglia entrare nel business dei validatori, che di fatto è un lavoro effettivo in quanto quest’ultimo deve guadagnarsi anche la credibilità del network. Non si dovrà quindi scegliere il validatore con fee più basse, ma uno affidabile e che non corre il rischio di subire slashing. 

Il validatore acquista potere di voto in base a quante deleghe riceve, e questo non serve solo alla “proposta” relativa al blocco, ma anche al potere politico all’interno della chain. 

La governance

Altra questione è quella che riguarda la governance di un progetto, che comunque è direttamente collegata alla questione del voting power. A seconda degli ecosistemi in cui si partecipa, la governance può essere generalmente considerata come potere decisionale rispetto al suo sviluppo tramite lo sfruttamento del potere di voto. Con delle eccezioni che riguardano elementi particolari delle community, a cui possono essere delegate funzioni particolari, come per esempio il potere di veto su alcune proposte. Il voto ha poi generalmente un quorum da raggiungere per far si che una proposta sia accettata. 

La differenza con il proof-of-work in questo caso è sostanziale, in questo quest’ultimo, perché possa implementare una modifica, dovrebbe usufruire di un “fork”, creando una nuova effettiva blockchain che i miner decideranno se adottare o meno. 

La decentralizzazione, a sua volta, diventa quindi doppiamente importante, poiché potrebbe presentarsi uno scenario in cui pochi validatori abbiano la stragrande maggioranza dei voti. E ciò può accadere fintanto che firmino loro tutti i blocchi, controllando anche gli aggiornamenti della chain. Il che, ovviamente, è controproducente se lo scopo era proprio evitare un sistema centralizzato. Per ottenere la decentralizzazione è quindi necessario evitare il rischio che pochi validatori diventino troppo potenti, e che l’interesse della chain si concentri sulla distribuzione delle deleghe. Il voting power è quindi anche il sintomo di quanto una blockchain possa essere decentralizzata. 


bitcoin
Bitcoin (BTC) $ 19,114.12
ethereum
Ethereum (ETH) $ 1,345.33
tether
Tether (USDT) $ 1.00
usd-coin
USD Coin (USDC) $ 1.00
bnb
BNB (BNB) $ 280.29
xrp
XRP (XRP) $ 0.479813
binance-usd
Binance USD (BUSD) $ 1.00
cardano
Cardano (ADA) $ 0.462343
solana
Solana (SOL) $ 34.01
dogecoin
Dogecoin (DOGE) $ 0.066091
polkadot
Polkadot (DOT) $ 6.45
shiba-inu
Shiba Inu (SHIB) $ 0.000012
dai
Dai (DAI) $ 1.00
staked-ether
Lido Staked Ether (STETH) $ 1,338.14
matic-network
Polygon (MATIC) $ 0.774908
tron
TRON (TRX) $ 0.060362
avalanche-2
Avalanche (AVAX) $ 17.95
wrapped-bitcoin
Wrapped Bitcoin (WBTC) $ 19,114.57
uniswap
Uniswap (UNI) $ 5.87
cosmos
Cosmos Hub (ATOM) $ 13.94
leo-token
LEO Token (LEO) $ 4.25
ethereum-classic
Ethereum Classic (ETC) $ 28.89
litecoin
Litecoin (LTC) $ 55.02
okb
OKB (OKB) $ 15.23
chainlink
Chainlink (LINK) $ 7.66
ftx-token
FTX (FTT) $ 24.04
stellar
Stellar (XLM) $ 0.120619
crypto-com-chain
Cronos (CRO) $ 0.120669
near
NEAR Protocol (NEAR) $ 3.85
algorand
Algorand (ALGO) $ 0.373308
monero
Monero (XMR) $ 142.24
bitcoin-cash
Bitcoin Cash (BCH) $ 120.38
flow
Flow (FLOW) $ 1.71
apecoin
ApeCoin (APE) $ 5.63
terra-luna
Terra Luna Classic (LUNC) $ 0.000248
vechain
VeChain (VET) $ 0.023449
filecoin
Filecoin (FIL) $ 5.77
chain-2
Chain (XCN) $ 0.077586
internet-computer
Internet Computer (ICP) $ 6.15
quant-network
Quant (QNT) $ 118.84
hedera-hashgraph
Hedera (HBAR) $ 0.062537
chiliz
Chiliz (CHZ) $ 0.260227
tezos
Tezos (XTZ) $ 1.53
the-sandbox
The Sandbox (SAND) $ 0.910094
frax
Frax (FRAX) $ 0.997499
decentraland
Decentraland (MANA) $ 0.724243
eos
EOS (EOS) $ 1.24
axie-infinity
Axie Infinity (AXS) $ 13.17
theta-token
Theta Network (THETA) $ 1.13
elrond-erd-2
Elrond (EGLD) $ 48.70