NOTA: per comprendere appieno questo articolo, è richiesta la conoscenza dei fondamentali sulle blockchain e delle differenze principali tra i protocolli di consenso Proof of Work e Proof of Stake.
Nascita Proof of Stake
Nel 2012, a soli 4 anni dall’invenzione di Bitcoin e del suo protocollo rivoluzionario di consenso chiamato Proof of Work (PoW), una nuova criptovaluta chiamata Peercoin lancia per la prima volta il Proof of Stake (PoS).
Dopo quasi un decennio di predominio delle blockchain basate su PoW, grazie anche all’enorme dispendio energetico dovuto ai dispositivi di mining PoW, già dal 2015 in poi, si vede la nascita di importanti blockchain basate su PoS. Lo stesso Ethereum, inizialmente disegnato e lanciato su PoW, migrerà, a fine 2022, al nuovo meccanismo PoS con un evento chiamato “The Merge”.
Tra i progetti PoS più importanti abbiamo Cardano, Polkadot, Solana, Elrond, Tezos e tanti altri. Come inoltre accennato in precedenza, dal Settembre 2022 in poi, lo stesso Ethereum.
Il processo di Staking
Il processo di staking è quel meccanismo fondamentale per le chain basate sul protocollo di consenso Proof of Stake, per mettere in sicurezza la blockchain stessa. Più elevata e distribuita è la percentuale del circolante messa in staking, più è sicura la blockchain.
Per capire meglio cos’è lo staking e come essa contribuisca alla sicurezza della rete, riportiamo di seguito alcuni esempi con diverse distribuzione del totale delegato (staked)
Blockchain PoS con basso totale delegato
In questo esempio vediamo come, dato il circolante di 1m di token, solo il 30% sia delegato. Questa situazione non è ideale poichè, sebbene dal punto di vista economico possa essere difficile, è ancora possibile per una attacker, comprare abbastanza token, lanciare un nodo con il codice modificato ed attaccare la rete della blockchain.
Una situazione del genere può essere sistemata invogliando i possessori del token della blockchain a fare staking con i nodi con lo stake più basso, come il nodo N1, N3 ed N4.
Blockchain PoS centralizzata
In questo caso, invece, la blockchain soffre di una particolare centralizzazione dello stake. Una cosa simila sta accadendo a Ethereum dove pochi, pochissimi validatori attivi controllano circa il 50% del totale delegato. Questo consente loro di controllare la produzione dei blocchi.
Di recente ha fatto infatti scandalo la notizia che la maggior parte dei blocchi prodotti su Ethereum sia OFAC compliant, il che significa che i nodi validatori stanno di fatto controllando cosa viene inserito nel blocco filtrando e quindi censurando transazioni che non rispettano i criteri OFAC (sorgente)
Blockchain PoS ben bilanciata
L’ultimo esempio è quello di una blockchain con un buon totale delegato ed un ottimo grado di decentralizzazione.
In questo esempio il totale delegato è alto, circa il 70% ed esso è inoltre ben distribuito, infatti il 50% dei nodi controlla circa il 50% dello stake. In linea con questi valori anche il MAV (numero di nodi da attaccare per controllare la rete) è alto e quindi del 50%.
Una chain che rispecchia meglio questa situazione è cardano, con più del 70% del circolante in staking, ed un MAV che oscilla tra 21 e 23.
Quali token possono essere messi in staking?
Sebbene sulla maggior parte delle blockchain si possa mettere in staking token diversi, si noti che solo lo staking dei token nativi delle blockchain PoS, contribuisce alla sicurezza della rete. Alcuni esempi sono Eth per la blockchain Ethereum, Ada per Cardano e cosí via.
Prima di procedere con i dettagli di come funzioni lo staking è necessario spiegare brevemente cosa sono i nodi validatori e quali siano i loro compiti.
I nodi validatori
Un nodo validatore è un insieme di dispositivi hardware e software che periodicamente viene selezionato per la produzione di un blocco da aggiungere alla blockchain. Un nodo che crea almeno un blocco in un determinato periodo di tempo viene chiamato attivo. Nodi sia attivi che passivi sono in comunicazione tra di loro per fare in modo che le transazioni utente vengano prontamente processate. Nel tempo nodi passivi possono diventare attivi e viceversa.
Tipicamente i nodi validatori hanno una serie di identificativi, alcuni dei quali sono codici “macchina” e sono alfanumerici complessi, mentre altri sono più corti e semplici da ricordare. In Cardano un esempio è la EASY1 Stake Pool, dove EASY1 è il nome più user friendly mentre 20df8645abddf09403ba2656cda7da2cd163973a5e439c6e43dcbea9 è il codice macchina associata ad essa.
I nodi validatori sono inoltre mantenuti, aggiornati e monitorati dagli operatori. Tali operatori sono di solito esperti nella gestione di hardware e software ed hanno inoltre una buona conoscenza delle migliori pratiche legate alla sicurezza.
In tutte le blockchain di tipo PoS, gli operatori possono, ed in alcuni casi devono, investire una certa quantità di token per fare in modo che il loro nodo diventi attivo, e quindi generi di tanto in tanto un blocco. In ethereum, all’atto della stesura di questo articolo, è necessario avere almeno 32 eth in staking. In altre chain come Cardano non esiste un vero e proprio minimo. Questa quantità investita dall’operatore si chiama di solito pledge (il cosiddetto investimento iniziale) e costituisce una parte dello “stake” associato ad un nodo validatore. Si dice che il pledge rappresenti la “skin in the game” che in italiano potrebbe essere tradotto come “interesse in gioco”. Più alti sono tali interessi, più l’operatore ha capitali a rischio. Di solito la “skin in the game” è un chiaro segnale della professionalità di un operatore: più alto è il pledge, più un operatore si sente sicuro di sé nella gestione del nodo validatore. Si noti che una cattiva gestione del nodo validatore potrebbe comportare la perdita dell’investimento iniziale dell’operatore. Ciò di solito (ma non sempre!) si traduce col fatto che operatori poco esperti non se la sentono di investire tanto nel loro nodo validatore per paura di perdere i fondi e quindi hanno un pledge più basso.
Altri parametri che intervengono e potrebbero influenzare la quantità di pledge è la moneta di scambio: operatori provenienti da nazioni con economia in via di sviluppo potrebbero non avere accesso a grandi capitali ed il potere di acquisto della loro moneta potrebbe essere basso. Se vi interessa una pool particolare ed avete domande sul loro pledge, provate a contattare l’operatore per ricevere delucidazioni.
In cardano, un nodo validatore, viene anche chiamato Stake Pool, cioè un agglomerato di stake ed a breve scopriremo il perchè.
Nelle blockchain di tipo PoS, il numero di volte che un nodo produce un blocco dipende direttamente da quanto è grande la stake associata ad una pool. Più è elevato il numero di token in staking in una pool, più è alta la probabilità di forgiare un nuovo blocco.
Si noti che, ogni volta che un nodo validatore (o una pool), forgia un nuovo blocco, gli vengono riconosciute ricompense per il servizio svolto. Ovviamente più blocchi sono forgiati, più elevate saranno le ricompense.
Il processo di delega
Gestire e manutenere un nodo validatore richiede competenze tecniche non banali. Una cattiva gestione di un nodo potrebbe compromettere la velocità della blockchain, ridurre la sicurezza della stessa e, se la blockchain in questione prevede penalità come lo slashing, anche la perdita o confisca dei token investiti inizialmente dall’operatore.
Per tale motivo tutte le blockchain di tipo PoS, prevedono anche un altro meccanismo, molto più semplice, per partecipare al consenso, e quindi messa in sicurezza delle blockchain di tipo PoS: il processo di delega.
Il “processo di delega”, “delegare” o “fare staking” sono tutti nomi simili che rappresentano il processo di partecipazione al consenso di una blockchain PoS senza dover necessariamente gestire un nodo validatore attivo.
Ricapitolando, partecipare attivamente ad un protocollo di consenso PoS può essere fatto in due modi:
- Gestire un nodo validatore attivo (che in cardano si chiama stake pool). Tale processo rappresenta una partecipazione diretta al protocollo di validazione e di solito richiede specifiche, non banali, competenze tecniche.
- Delegare i propri token ad un nodo attivo. Tale processo rappresenta invece una partecipazione indiretta al protocollo di validazione. Da qui infatti il nome “delega”. Il potere di validazione dei token viene infatti trasferito o “delegato” ad un operatore, che accresce il potere, attraverso l’accumulo della stake. Da qui il nome di stake pool appunto. Questo processo è di solito facile e veloce e non richiede particolari competenze tecniche.
Come accennato in precedenza, il numero di blocchi prodotti da un nodo validatore, dipende dalla quantità di stake associata al nodo. Ovviamente è impensabile che gli operatori abbiano tanto capitale da potersi permettere la stragrande maggioranza del circolante di un token e quindi garantire la massima sicurezza della blockchain. Per tale motivo, un operatore, può accrescere la stake della sua pool attraverso il processo di delega.
Si noti che nella stragrande maggioranza delle blockchain, i token, o meglio i wallet, delegati, restano di proprietà dei delegatori. Quindi se Giovanni è l’operatore e Maria è una delegatrice che delega il proprio wallet a Giovanni, Maria continuerà a possedere il wallet delegato ed i token in esso contenuti, ma il potere di validazione o messa in sicurezza della blockchain, viene trasferito a Giovanni, che ora può godere di una stake più elevata e quindi una maggiore probabilità di forgiare un nuovo blocco.
Al fine di incentivare i possessori dei token delle blockchain PoS a partecipare allo staking, tutte le blockchain forniscono ricompense sia all’operatore sia ai delegatori. Tali ricompense sono direttamente proporzionali al numero di blocchi forgiati e poiché il numero di blocchi forgiati dipende dalla quantità di token in staking, più alta è la quantità di token delegati, più alte sono le ricompense. Per esempio, su Cardano, il cosiddetto APY (Annual Percentage Yield) ricevuto, durante la scrittura di questo articolo, è di circa il 4%.
0 comments
Write a comment