Se nella fase iniziale le criptovalute erano solite adottare come meccanismo di consenso il Proof-of-Work di Bitcoin, con il passare del tempo le esigenze di decentralizzazione che lo stesso non era in grado di assicurare si sono andate sempre più affermando. La conseguenza si è tradotta nell’arrivo di nuovi protocolli, a partire dal Proof-of-Stake, in cui alle attività di calcolo si è sostituito lo staking.
In un caso e nell’altro, però, la decentralizzazione che, pure, è un mantra per i criptofans, non è mai riuscita a farsi realmente largo. Tanto da spingere molti a cercare nuovi algoritmi in grado di dare risposte effettive in tal senso. Tra quelle che hanno riscosso maggiori consensi c’è il Pure Proof-of-Stake su cui si regge la blockchain di Algorand.
Pure Proof-of-Stake: cos’è e a cosa serve
Il Pure Proof-of-Stake è un meccanismo di consenso senza autorizzazione specifica il quale è in grado di assicurare buone risposte in termini di scalabilità e sicurezza, senza però sacrificare in maniera significativa le esigenze di decentralizzazione.
A spingere per il suo varo è stata proprio la constatazione che il protocollo Proof-of-Work, coi suoi complessi calcoli, tali da comportare l’impiego di macchinari costosi, aveva concentrato il mining di BTC in poche mani. Un difetto che non era stato risolto neanche dal Proof-of-Stake, che esigeva comunque uno staking costoso.
Per ovviare a tali difetti si è quindi pensato ad un meccanismo in cui il necessario consenso non dipende solo dalla quantità di token messi in deposito, ma anche da una selezione del tutto casuale. Ne risulta che, se per il calcolo delle probabilità chi ha molti coin è comunque favorito rispetto a chi ne possiede quantità limitate, quest’ultimo può comunque essere premiato dalla sorte ed essere scelto in qualità di validatore.
A renderlo possibile è la Verifiable Random Function (funzione casuale verificabile), il cui comportamento è simile a quello di una vera e propria lotteria. Ad ogni token corrisponde quindi un premio che, come ben sa chi è solito partecipare a quelle della vita reale, non è detto che vada a premiare chi ne possiede molti.
Come avviene la scelta dei validatori?
Da quanto detto sinora, è facile comprendere come ogni possessore di token, in una blockchain impostata sul Pure Proof-of-Stake ha l’opportunità di diventare validatore. Per partecipare non è però necessario utilizzare le loro chiavi di spesa (ovvero le chiavi private utilizzate per la spesa dei token in staking) per il consenso.
È invece necessaria la generazione e registrazione di una chiave di partecipazione, che rende possibile la partecipazione alla votazione dei blocchi. Proprio queste chiavi garantiscono la sicurezza delle criptovalute di un utente, anche nel caso in cui il nodo partecipante sia compromesso.
Ogni blocco, nel caso di Algorand, va poi ad includere un selection seed, casuale e imprevedibile, il quale determina e decide gli utenti chiamati a partecipare in veste di validatori al successivo round del protocollo di consenso.
Una volta che il nuovo blocco sarà aggiunto alla blockchain, tutti gli utenti potranno vedere la selection seed. Ognuno degli utenti che si sono candidati a rivestire il ruolo di validatore avrà facoltà di controllare in assoluta segretezza se è stato selezionato per partecipare valutando una VRF grazie alla la chiave di partecipazione posseduta.
Va anche sottolineato come la potenza di calcolo necessaria sia minima. Ne consegue la possibilità di usare anche dispositivi non molto potenti. A questo punto, il calcolo VRF produce una prova crittografica utilizzabile da tutti per la verifica del risultato. Chi è stato scelto deve a sua volta conservare o inviare la prova, in modo da poter dimostrare la sua effettiva scelta in qualità di partecipante al meccanismo di consenso.
La procedura di voto nel Pure Proof-of-Stake
Per quanto riguarda la fase destinata alla proposta, conferma e scrittura di un blocco sulla catena, il processo è imperniato su tre fasi distinte:
- proposta di blocco, in cui sono selezionati i candidati alla funzione di validatore;
- soft vote, con ogni nodo chiamato ad eseguire eseguirà la Verifiable Random Function, verificando se un account è stato effettivamente selezionato per partecipare al gruppo
- certificazione del voto, con l’indicazione di un nuovo gruppo cui spetta il compito di verificare la proposta di blocco risultante dal soft vote. In mancanza di comportamenti inappropriati, ad esempio doppia spesa o overspending, il blocco viene considerato valido e certificato come tale da un comitato. Per raggiungere la certificazione finale, i voti sono raccolti e convalidati da ciascun nodo fino al conseguimento del quorum, che pone fine ad un round. Subito dopo avviene la richiesta al nodo di generare un certificato per il nuovo blocco da inserire nel registro.