Una panoramica sui meccanismi di consenso
In un sistema decentralizzato, nessuno dei soggetti partecipanti detiene il controllo su regole, input e output del sistema. Per questo la sicurezza è la sfida maggiore che deve affrontare qualsiasi sistema decentralizzato. Ciò vale in particolar modo quando non c'è fiducia reciproca tra i soggetti partecipanti e il sistema fornisce un record di transazioni che attribuiscono valore, come in una blockchain pubblica.
Senza la verifica da terze parti, i soggetti partecipanti come possono validare le transazioni ed evitare che gli utenti malintenzionati forniscano informazioni false e illecite?
Satoshi Nakamoto ha fornito una soluzione al problema mettendo insieme varie idee per creare un registro crittografico delle transazioni distribuito e immutabile1, incentrato sul meccanismo di consenso proof of work: un metodo per verificare le transazioni dimostrando agli altri che venivano compiuti significativi sforzi computazionali per allegare l'informazione al registro.
Che cos'è un meccanismo di consenso?
Si tratta di un algoritmo che approva transazioni o record in un registro decentralizzato e rifiuta i record falsi o illeciti.
L'algoritmo entra in gioco quando si aggiungono nuovi blocchi alla catena già esistente. Questo è il modo in cui la blockchain si aggiorna con le informazioni come nel registro (append-only).
Secondo tale principio, imponendo il rispetto di alcuni criteri ad alcune attività (o ai rischi assunti), gli utenti malintenzionati eviterebbero di manomettere il registro poiché percepirebbero l'azione come uno sforzo inutile (loss). L'obiettivo principale dell'invenzione del proof of work era filtrare le e-mail di spam.
L'hashcash, un sistema a protocollo proof of work proposto da Adam Back nel 1997, chiede al mittente dell'e-mail di creare e impostare dei valori all'intestazione per dimostrare al destinatario che l'e-mail è stata generata facendo uso dell'unità centrale di elaborazione (CPU). Tali valori sono algoritmi unidirezionali che il destinatario può controllare facilmente, anche se per il mittente è difficile, da un punto di vista informatico, generarli. In tale modello, il mittente dello spam sarebbe meno propenso a inviare grandi quantità di e-mail, in quanto utilizzare una grande quantità di CPU per creare i valori sarebbe poco redditizio. Tuttavia, il prezzo per inviare una sola e-mail è ancora abbordabile per l'utente abituale.
Dal momento che i meccanismi di consenso nel mondo della blockchain sono definiti solitamente come attività di “conio” e “staking”, spesso queste sono utilizzate come metodi per l'emissione di nuove valute. Tuttavia, l'obiettivo principale è garantire un network decentralizzato, mentre la ricompensa sotto forma di valuta è un valore aggiunto per incentivare i soggetti coinvolti a tenere il network.
I meccanismi di consenso più importanti includono il proof of work (PoW), il proof of stake (PoS) e il delegated proof of stake (DPoS).
Il PoW è il protocollo più vecchio, rappresenta oltre il 75% del market cap dei protocolli di blockchain ed è utilizzato da Bitcoin, Ethereum (fino a Serenity), Litecoin, ecc.2
Nel PoW, i minatori allegano il nuovo blocco con le informazioni sulla transazione ai blocchi esistenti (estrazione), con il reperimento di un numero casuale (detto nonce) che può essere trasmesso alla rete per mezzo di una funzione di cifratura universale (hash, o mappatura) e può soddisfare un requisito di difficulty. Si tratta di una procedura di “soluzione” del problema matematico, che richiede una quantità considerevole di energia e impegno.
Il PoS, d'altro canto, non richiede ai partecipanti di utilizzare la potenza di calcolo per mappare i blocchi e soddisfare i requisiti matematici, ma richiede loro di detenere una partecipazione. I partecipanti che diverranno validatori, in base alla loro ricchezza, sono scelti a caso, e i validatori devono finanziare un quantitativo di criptovalute che copra i costi di transazione e la potenziale ricompensa finché l'aggiunta del blocco vada a buon fine. Se vengono rilevati comportamenti incoerenti e anomali (o viene individuata l'assenza di comportamenti), chi partecipa in maniera illecita potrebbe perdere le proprie partecipazioni ed essere espulso dal network.
Il DPoS è una tipologia di PoS. Modifica il processo di selezione nel PoS e dagli algoritmi causali arriva a un approccio più democratico, permettendo agli staker di votare i loro rappresentanti che eseguiranno l'atto di convalida.
Oltre al PoW, al PoS e al DPoS, ci sono vari meccanismi proof of X che tentano di istituire un network decentralizzato e sicuro. Questi includono proof of capacity, proof of elapsed time, proof of importance, ecc.
Un'altra importante famiglia di meccanismi di consenso è la Byzantine Fault Tolerance, caratteristica del network distribuito per raggiungere il consenso (accordo sullo stesso valore) anche qualora alcuni nodi del network non riuscissero a rispondere o lo facessero fornendo informazioni errate. Comprende diverse varianti come la Practical Byzantine Fault Tolerance (pBFT), attualmente impiegata da Hyperledger Fabric, e la cui versione potenziata è utilizzata dalla Banca Popolare Cinese per lo sviluppo delle proprie valute digitali della banca centrale (Central Bank Digital Currency - CBDC). Un'altra tipologia è la Delegated Byzantine Fault Tolerance (dBFT), impiegata da Neo. Il modello di consenso di Stellar fa leva sul modello dell'accordo Byzantine federato (FBA) e cerca di costruire su tali modelli un network aperto per immagazzinare e far girare valute.
Fonte: Zhanga, Shijie e Lee, Jong-Hyouk. Analisi dei principali protocolli di consenso della blockchain. Science Direct Vol. 6, Numero 2. Giugno 2020. Il grafico riassume le differenze tra i meccanismi di consenso discussi. Il tipo di finalità (o irrevocabilità) si riferisce al modello di validazione e irreversibilità dei blocchi impegnati. Finalità probabilistica significa che i blocchi sono sempre più difficili da revocare con l’allungarsi della catena. Finalità assoluta significa che i blocchi vengono finalizzati non appena aggiunti alla catena. La tolleranza ai guasti si riferisce alla tolleranza di un sistema nei confronti di componenti malfunzionanti o dannose che ne impedirebbero il funzionamento. Il consumo di energia si riferisce al fatto che il sistema consuma grandi quantità di energia. La scalabilità si riferisce alla facilità con cui il sistema può crescere ed espandersi. L’applicazione si riferisce alla tipologia ideale di blockchain in cui dovrebbe essere utilizzato il meccanismo di consenso. Pubblico si riferisce alle blockchain a cui tutti possono accedere. Privato si riferisce alle blockchain che richiedono delle autorizzazioni per potervi partecipare.
Conclusioni
Il meccanismo di consenso è una componente fondamentale per una rete decentralizzata; non serve solo a garantire la sicurezza del sistema, ma influisce anche sulla sua efficienza e sulla sua scalabilità.
Numerosi altri meccanismi di consenso si sono diffusi dalla creazione del Bitcoin. Ognuno di questi ha caratteristiche proprie che determinano le qualità del network collegato. Per conoscerli meglio e sapere in cosa si differenziano, potete saperne di più qui.
Fonti
1 https://queue.acm.org/detail.cfm?id=3136559
2 Al 23/7/2021. Calcolato utilizzando i dati di CoinMarketCap.
Blog correlati
+ Perché considerare l’ether come investimento?
+ Tradotto in bitcoin, quanto farebbe?
+ La storia di Ethereum: da zero a 2.0