Blockchain e criptovalute: i principali algoritmi di consenso (Parte 1)
Blockchain

Blockchain e criptovalute: i principali algoritmi di consenso (Parte 1)

By Matteo Gatti - 29 Set 2019

Chevron down

Gli algoritmi di consenso costituiscono un elemento cruciale per ogni network blockchain. Consentono di mantenere l’integrità e la sicurezza di questi sistemi distribuiti. Sono ancora più importanti nell’ambito delle criptovalute.

Un algoritmo di consenso è il meccanismo attraverso cui un network blockchain raggiunge un risultato unanime. Le blockchain pubbliche sono decentralizzate, distribuite e non si basano su un’autorità centrale, pertanto i nodi devono concordare sulla validità delle transazioni. Ecco dove entrano in gioco gli algoritmi di consenso. Essi garantiscono che le regole del protocollo vengano seguite e che tutte le transazioni avvengano correttamente.

Andiamo a capire come funzionano i diversi tipi di algoritmi di consenso.

Algoritmi di consenso: Proof-of-Work (PoW)

L’algoritmo di consenso più noto è sicuramente il Proof of Work (PoW) in quanto muove il network Bitcoin. Si tratta del primo algoritmo di consenso creato. Viene utilizzato anche da Ethereum e da tante altre criptovalute ed è il cuore del processo di mining. Circa 522 criptovalute sulle 3000 esistenti si basano sul PoW (e derivati).

Questo algoritmo viene utilizzato per confermare le transazioni e produrre i nuovi blocchi della catena. L’algoritmo PoW incentiva i miner a competere tra loro nell’elaborazione degli scambi, ricevendo in cambio una ricompensa.

Alla base di questo sistema troviamo complessi problemi matematici e la necessità di dimostrare semplicemente la soluzione.

Il mining PoW implica diversi tentativi di hashing, quindi una maggiore potenza di calcolo risulta in un maggior numero di tentativi al secondo. In altre parole, i miner con un hash rate maggiore hanno più probabilità di trovare una soluzione valida per il blocco successivo (ovvero la block hash).

L’algoritmo di consenso PoW consente ai miner di convalidare un nuovo blocco e aggiungerlo alla blockchain solo se i nodi distribuiti del network raggiungono il consenso e concordano che la block hash fornita dal miner è una proof of work valida.

LaProof of Work (PoW) è certamente un meccanismo collaudato, ma molti ormai pensano che non sia affatto il migliore e negli anni sono emerse diverse alternative.

Algoritmi di consenso: la Proof-of-Stake (PoS)

La PoS è stata sviluppata nel 2011 come alternativa alla PoW. Sebbene PoS e PoW abbiano caratteristiche in comune presentano anche alcune differenze e peculiarità fondamentali.

La Proof of Stake utilizza molta meno energia ed è quindi molto più ecologico e user friendly del Proof of Work.

Più grande è la partecipazione (“stake”), ovvero la quantità di token posseduti da un utente, maggiori sono le probabilità che non si stia violando il sistema. Più un individuo è esposto verso una criptovaluta, più è probabile che questi si comporti in modo corretto perché vuole garantirne il buon andamento sul mercato.

In poche parole, l’algoritmo di consenso Proof of Stake sostituisce il mining PoW con un meccanismo in cui i blocchi vengono convalidati in base alla posta in gioco dei partecipanti. Ciascun sistema PoS può implementare l’algoritmo in modi diversi ma, in generale, la blockchain è protetta da un processo di elezione pseudo-casuale.

Il primo ad usarlo è stato Peercoin. Attualmente la blockchain di Ethereum si basa su un algoritmo PoW, ma il protocollo Casper verrà eventualmente rilasciato per far passare il network dalla PoW alla PoS per cercare di aumentarne la scalabilità.

Ci sono oltre 400 criptovalute che si appoggiano alla PoS, tra le più importanti troviamo Binance Coin, Stellar, Dash, Neo, Cosmos e Ontology. Insieme rappresentano meno del 5% del market cap complessivo (circa 10 miliardi di dollari).

Algoritmi di consenso: Delegated Proof of Stake (D-PoS)

Il sistema D-PoS (Delegated Proof of Stake) può essere ricondotto ad una specie di democrazia tecnologica. Daniel Larimer, CTO di EOS, si è reso conto che l’estrazione di Bitcoin è troppo dispendiosa e per risolvere il problema ha inventato il D-PoS.

Questo sistema rappresenta di fatto un’evoluzione del PoS (Proof of Stake), anch’esso sviluppatosi al fine di ridimensionare i costi e l’inefficienza associata al consumo di elettricità tipica dei sistemi PoW.

Quali sono gli ingredienti per il D-POS? Una criptovaluta, una blockchain, una community, un insieme di computer e alcune regole.

Nel sistema PoS per la conferma di una transazione è previsto il coinvolgimento dell’intero network. Nel sistema D-PoS, invece, questo onere non ricade sull’intera rete, bensì è in carico ad un limitato numero di delegati.

Questi delegati sono eletti dall’intera rete con un sistema di democrazia rappresentativa dei consensi (consensi che a loro volta hanno un peso che è funzionale al numero di token posseduti dai votanti), provvedono alla convalida, in sicurezza, di ogni singola transazione della rete.

Quest’ultimo punto è il più discusso: chi possiede più token ha un voto dal peso superiore rispetto a chi ne possiede meno. Più token, più influenza. Se uno dei delegati per qualche motivo inizia a comportarsi in modo scorretto la community può in ogni momento spostare il proprio voto e quindi detronizzarlo eleggendo un nuovo delegato.

Delegated Proof-of-Stake e Proof-of-Stake sono differenti; in un sistema PoS, ogni portafoglio che contiene monete è in grado di partecipare al processo di convalida delle transazioni e di formazione del consenso. Con il sistema D-PoS ogni portafoglio che contiene monete è in grado di votare per i rappresentanti. Questi rappresentanti convalidano le transazioni e formano il consenso e sono pagati per il loro lavoro.

I principali dubbi su questa soluzione riguardano l’effettiva decentralizzazione. Daniel Larimer, pochi giorni fa ha comunicato una soluzione alla governance di EOS ed alla questione dell’acquisto dei voti da parte dei Block Producer (BP), di fatto ammettendo che ad ora la governance non è decentralizzata.

Ad oggi queste sono le criptovalute più importanti basate sul D-PoS: BitShares, Steem, EOS, Lisk, Tron, Cardano e Ark. Solo 24 criptovalute si basano sul D-PoS che rappresentano il 2.64% del mercato (circa 7 miliardi di dollari).

Algoritmi di consenso: Proof of Activity (PoA)

Il concetto di Proof of Activity (PoA) è stato introdotto inizialmente nel 2012 come alternativa alla PoS ed è di fatto una via di mezzo tra PoW e PoS.

Bitcoin e la sua PoW prevedono un continuo aumento della difficoltà per i miner al crescere dell’hashrate con un conseguente aumento del consumo di corrente.

La PoA cerca di prendere il meglio di PoS e PoW. Il processo di mining è simile alla PoW, ma quando viene trovato un nuovo blocco il sistema passa alla PoS perché il blocco contiene solo un header e il reward address del miner che l’ha trovato e non le transazioni.

Basandosi sull’header viene generato un gruppo casuale di validator. Al crescere del numero di criptovalute possedute crescono le chance di essere scelti. Quando i validator confermano il nuovo blocco esso diventa confermato e viene aggiunto alla blockchain.

Questo meccanismo non è molto utilizzato, le criptovalute più note che lo utilizzano sono Decred (DCR) ed Espers (ESP).

Algoritmi di consenso: Proof of Burn (PoB)

A differenza della PoW, la Proof of Burn (PoB) è un meccanismo di consenso senza spreco di energia.

La vera e propria potenza di calcolo non è importante per evitare la manipolazione. In questo caso i nodi distruggono o bruciano (burn) i propri token se vogliono ottenere il diritto di generare i blocchi successivi e di ricevere una ricompensa.

Un miner invia monete a un indirizzo non spendibile (anche chiamato indirizzo eater), bruciandoli e dunque facendoli sparire dalla circolazione. Quando i token sono stati bruciati non vi si può più accedere e dunque spenderli. Visto che per bruciare i coin è necessario inviare una transazione, quest’ultima sarà registrata sulla blockchain, dando quindi una prova a tutto il network che suddetti token sono stati bruciati e non possono più essere utilizzati.

Iain Stewart, la mente dietro alla Proof of Burn, ha fornito un’interessante analogia: i token bruciati possono essere considerati vere e proprie attrezzature di mining. Ciò significa che l’atto di bruciare i propri token può essere paragonato all’acquisto di attrezzatura per il mining.

Nella PoB quindi ogni volta che si decide di distruggere una parte dei propri token, si acquista una parte di potenza di calcolo virtuale che dà la possibilità di validare i blocchi. Più token si bruciano, più alta sarà la probabilità di ricevere la ricompensa.

Fra le criptovalute più famose che ad oggi utilizzano tale meccanismo con successo troviamo SlimCoin, Counterparty, Third Generation Coin e Factom (FCT).

Algoritmi di consenso: Proof of Elapsed Time (PoET)

Il Proof of Elapsed Time (PoET) appartiene alla cerchia degli algoritmi di consenso meno noti. Funziona nel seguente modo:

  • Ogni partecipante della rete blockchain deve attendere un periodo di tempo casuale;
  • Il primo partecipante che terminare l’attesa diventa leader del nuovo blocco.

Affinché questo funzioni è necessario verificare che i partecipanti attendano effettivamente un lasso di tempo in modo casuale e che questo sia generato in un range uguale per tutti.

Poet proviene da Intel e si basa su un set speciale di istruzioni CPU denominato Intel Software Guard Extensions (SGX). SGX consente alle applicazioni di eseguire codice attendibile in un ambiente protetto.

Sono due i punti chiave gestiti da Intel SGX:

  • Un componente hardware specializzato può creare un attestato che permette al codice di essere considerato attendibile;
  • Il codice attendibile viene eseguito in un ambiente privato. Il resto dell’applicazione non può ispezionare o interferire minimamente nello spazio di memoria privato e riservato.

I dettagli del protocollo sono alquanto complessi, ma si può semplificare in due punti principali.

Unione alla rete
  • Un nuovo partecipante scarica il programma per connettersi alla blockchain;
  • All’inizializzazione, il programma crea una nuova coppia di chiavi;
  • Il partecipante invia un attestato SGX (che include la chiave pubblica del codice attendibile che viene eseguito su SGX) al resto della rete come parte di una richiesta di partecipazione.
Partecipazione alla rete
  • Il partecipante ottiene un oggetto timer firmato dal programma e attende il tempo specificato dal timer;
  • Il partecipante ottiene poi un certificato (sempre firmato con la chiave privata del codice attendibile) che il timer ha terminato e lo inoltra al resto della rete;
  • La rete misura quanto spesso un determinato partecipante diventa leader al fine di rilevare i partecipanti con un eventuale sistema SGX compromesso.

Potenzialmente questo sistema risulta un approccio molto più efficiente dal punto di vista energetico rispetto al PoW.

Matteo Gatti
Matteo Gatti

Ingegnere informatico appassionato di tecnologia e di tutto ciò che vi ruota attorno. Segue con interesse il mondo delle criptovalute e lo sviluppo della tecnologia Blockchain. Scrive anche di Linux su LFFL.

Utilizziamo i cookie per essere sicuri che tu possa avere la migliore esperienza sul nostro sito. Se continui ad utilizzare questo sito noi assumiamo che tu ne sia felice.