7 min read

Che cos'è l'algoritmo di consenso di una blockchain

L'algoritmo di consenso è un meccanismo fondamentale per il corretto funzionamento di una blockchain: scopriamo di che cosa si tratta

Che cos'è l'algoritmo di consenso di una blockchain

Blockchain e algoritmo di consenso

L’algoritmo di consenso è un elemento basilare di ciascun network.

La blockchain è un particolare database crittografato, decentralizzato e distribuito su diversi nodi.
Il nome richiama la suddivisione in blocchi che, uniti assieme, creano una vera e propria catena. Quest’ultima è destinata ad allungarsi perché nuovi pezzi vengono aggiunti in continuazione.

Ciascun blocco contiene delle informazioni. Nello specifico, si tratta di tutte le transazioni avvenute sul network in un determinato lasso di tempo.

Da quanto appena detto si evince un aspetto fondamentale: ogni operazione deve essere corretta e conforme a quanto avvenuto in passato. Ad esempio, non è accettabile che una persona possa spendere due volte la stessa somma in criptovaluta.

Inoltre, essendo distribuito, questo speciale database “vive” su svariati computer e apparecchi informatici.  Diventa quindi altrettanto importante che ogni parte del network sia in possesso delle stesse informazioni. La mia copia non potrà sostenere qualcosa di diverso rispetto a quella di un’altra persona.

Perciò, occorre un sistema che gestisca l’aggiunta di nuovi blocchi, verificando e garantendo l’armonia tra le varie copie distribuite. Perciò, diamo il benvenuto a questo meccanismo: l’algoritmo di consenso.

Cos'è e come funziona un algoritmo di consenso

Come suggerisce il nome, l’algoritmo di consenso è appunto un insieme di istruzioni che mira a risolvere un problema.
Nel nostro caso, l’obiettivo è assicurare un ambiente (la blockchain) al riparo da errori, dove tutte le copie del database concordano sulle informazioni contenute. Conflitti e dati discordanti non sono tollerabili e renderebbero la chain pressoché inutile.

Esistono diversi algoritmi di consenso. Il capostipite è il Proof-of-Work, proposto dal creatore di Bitcoin Satoshi Nakamoto nell’ormai lontano 2008. L’idea era quella di riuscire a coordinare le parti di un innovativo network decentralizzato.

Per aggiungere nuovi blocchi alla chain, l’algoritmo PoW richiede una prova del lavoro compiuto in questo senso. Nello specifico, coloro che svolgono questa attività sono tenuti a risolvere un complesso calcolo probabilistico, sfruttando appositi macchinari denominati ASIC.
Non sempre è stato così: in passato, la difficoltà dei problemi era inferiore e i computer di casa riuscivano tranquillamente a chiuderli.

Il primo che riesce a risolvere il calcolo può produrre il blocco. Come ricompensa, si riceve una certa quantità di criptovaluta fresca di creazione. Da qui, il processo prende il nome di mining, perché di fatto “si estraggono” nuovi esemplari di coin.

Ovviamente, i dati del blocco vengono distribuiti agli altri partecipanti, incaricati di fare gli opportuni confronti.

Investendo così tanta energia elettrica, un miner non ha alcun interesse nel cercare di manipolare le transazioni: a meno di poter disporre del 51% della potenza computazionale dell’intera blockchain, la sua malefatta non verrebbe approvata dalla rete.
Stiamo parlando di un numero enorme e praticamente impossibile da raggiungere, aspetto che mette al sicuro le realtà Proof-of-Work.

Altri algoritmi di consenso prevedono invece il blocco di una certa quantità di criptovalute. Oppure, ancora, a essere in gioco è la propria reputazione.
Il “mettere in gioco” è l’elemento centrale di un algoritmo di consenso: a prescindere dalla tipologia, qualcosa viene “scommesso” (stake). Il diretto interessato deve quindi comportarsi bene, pena una perdita, sia essa economica, reputazionale, combinata o altro.

Quindi, ricapitolando: l’algoritmo di consenso prevede una serie di istruzioni atte a garantire che i blocchi di una chain siano tutti corretti.
Coloro che contribuiscono attivamente all’aggiunta e creazione di nuovi blocchi si mettono in gioco e non possono compiere passi falsi. L’obiettivo finale è aggiudicarsi più lavoro possibile e ottenere le ricompense previste.

Generali bizantini e blockchain: cioè?

Deviamo dai nostri soliti discorsi e dedichiamoci a un po’ di logica.

Nello specifico, parliamo del dilemma dei generali bizantini.

Innanzitutto, immaginiamo un campo di battaglia. Poniamo che ci sia un certo numero di generali dello stesso schieramento. Essi devono decidere se attaccare il nemico o ritirarsi.

Ognuno potrà ragionare su come muoversi. Dopodiché, l’idea non verrà più cambiata.

Per avere successo, tutti quanti dovrebbero concordare sull’azione da intraprendere, avviandola nello stesso preciso istante.

A questo punto subentrano i problemi di comunicazione. Infatti, i generali possono interagire tra loro solo mediante dei messaggeri. Questi possono essere uccisi, feriti o catturati. Oppure, potrebbe esserci semplicemente un ritardo nella consegna.

Inoltre, uno o più generali potrebbero fare il doppio gioco e diffondere informazioni false, confondendo gli altri.

Insomma, ci sono delle criticità che mettono seriamente a rischio il successo.

Questo dilemma viene applicato a tanti settori, compreso quello della blockchain. Trattandosi di un ambiente decentralizzato, potrebbero esserci dei generali (nodi) malevoli che tentano di manipolare i dati e diffondere informazioni false.

In questo contesto, se i nodi cattivi riescono a controllare il 51% del network, la blockchain è compromessa.

Da queste osservazioni prende vita la definizione di Byzantine Fault Tolerance, ovvero la resistenza di una chain in presenza di nodi malevoli.

Pur essendoci svariati algoritmi di consenso, tutti mirano ad assicurare il corretto funzionamento del network anche in queste condizioni.

Generali bizantini e blockchain: cioè?

Principali algoritmi di consenso

Esploriamo rapidamente alcuni degli algoritmi di consenso blockchain più diffusi. Rimandiamo agli approfondimenti dedicati per saperne di più.

Proof-of-Work

L’algoritmo di consenso per definizione, ideato da Satoshi Nakamoto nel 2008.
Si basa sulla soluzione di calcoli molto complessi e che necessitano di computer costruiti appositamente. La creazione di nuove coin prende il nome di mining.

Blockchain: Bitcoin, Litecoin, Dogecoin.

Pro: Sicurezza e affidabilità.

Contro: Non efficiente e penalizzante in termini di scalabilità.

Proof-of-Stake

Soluzione moderna e diffusissima, il Proof-of-Stake richiede una determinata quantità di coin bloccate per essere un validatore della chain. Dopodiché, proporzionalmente a quanto depositato, si ha una certa probabilità di validare un blocco.

Blockchain: Solana e Avalanche.

Pro: Scalabilità, efficienza e adattabilità.

Contro: Minor sicurezza rispetto al PoW, necessità di una coin per consentirne il funzionamento.

Delegated Proof-of-Stake

Declinazione del PoS, introduce alcune accortezze che ne migliorano efficienza e partecipazione della community. È previsto un meccanismo di voto che elegge i produttori di ciascun blocco.

Blockchain: EOS, Cardano.

Pro: Più efficiente e democratico del Proof-of-Stake.

Contro: Identici al PoS classico, con l’aggiunta che un 51% attack potrebbe risultare più semplice da organizzare.

Proof-of-Authority

Questo algoritmo di consenso fa leva sulla reputazione dei validatori. Non è prevista alcuna somma in stake: è l’identità degli addetti ai lavori a essere in gioco.

Blockchain: POA (confluita in Gnosis Chain).

Pro: Efficienza energetica, buoni standard di sicurezza, velocità.

Contro: Centralizzazione, non ideale per le blockchain pubbliche.

"Diversi algoritmi per svariate esigenze: ogni progetto adotta la soluzione più adatta alle proprie caratteristiche"

Considerazioni finali sull'algoritmo di consenso

In questo approfondimento abbiamo avuto modo di capire meglio che cos’è un algoritmo di consenso.

Sebbene siano molto diversi tra loro, tutti i membri di questa categoria hanno il medesimo obiettivo: garantire la correttezza delle transazioni.

Nella comunità crypto, alcuni utenti preferiscono il caro e vecchio Proof-of-Work, nonostante alcune limitazioni.

Altri prediligono invece progetti basati sul Proof-of-Stake, fiduciosi del fatto che sia il futuro dell’intero comparto.

Infine, diversi investitori rivolgono l’attenzione a chain che adottano altre soluzioni, magari prendendosi qualche rischio in più.

Qualunque sia il proprio punto di vista, analizzando un network si deve sempre considerare anche l’algoritmo di consenso. Solo così potremo investire in piena consapevolezza.

Sei appena entrato in questo mondo? Ti consiglio di iniziare il tuo percorso con questo video sulla blockchain, per poi approfondire i vari argomenti.

A presto!


bitcoin
Bitcoin (BTC) $ 17,008.06
ethereum
Ethereum (ETH) $ 1,257.66
tether
Tether (USDT) $ 1.00
bnb
BNB (BNB) $ 288.78
usd-coin
USD Coin (USDC) $ 1.00
binance-usd
Binance USD (BUSD) $ 1.00
xrp
XRP (XRP) $ 0.388948
dogecoin
Dogecoin (DOGE) $ 0.100404
cardano
Cardano (ADA) $ 0.317394
matic-network
Polygon (MATIC) $ 0.910937
polkadot
Polkadot (DOT) $ 5.48
staked-ether
Lido Staked Ether (STETH) $ 1,242.12
litecoin
Litecoin (LTC) $ 79.54
shiba-inu
Shiba Inu (SHIB) $ 0.000009
okb
OKB (OKB) $ 21.23
dai
Dai (DAI) $ 1.00
solana
Solana (SOL) $ 14.07
tron
TRON (TRX) $ 0.053236
uniswap
Uniswap (UNI) $ 6.23
avalanche-2
Avalanche (AVAX) $ 13.61
leo-token
LEO Token (LEO) $ 3.89
chainlink
Chainlink (LINK) $ 7.28
wrapped-bitcoin
Wrapped Bitcoin (WBTC) $ 17,011.40
cosmos
Cosmos Hub (ATOM) $ 10.10
ethereum-classic
Ethereum Classic (ETC) $ 19.45
the-open-network
The Open Network (TON) $ 1.79
monero
Monero (XMR) $ 143.14
stellar
Stellar (XLM) $ 0.086041
bitcoin-cash
Bitcoin Cash (BCH) $ 111.24
quant-network
Quant (QNT) $ 123.52
crypto-com-chain
Cronos (CRO) $ 0.066333
algorand
Algorand (ALGO) $ 0.234229
filecoin
Filecoin (FIL) $ 4.58
apecoin
ApeCoin (APE) $ 4.15
near
NEAR Protocol (NEAR) $ 1.76
vechain
VeChain (VET) $ 0.019140
internet-computer
Internet Computer (ICP) $ 4.44
hedera-hashgraph
Hedera (HBAR) $ 0.048376
flow
Flow (FLOW) $ 1.11
elrond-erd-2
MultiversX (Elrond) (EGLD) $ 43.88
eos
EOS (EOS) $ 0.962109
axie-infinity
Axie Infinity (AXS) $ 9.08
terra-luna
Terra Luna Classic (LUNC) $ 0.000172
frax
Frax (FRAX) $ 0.999229
the-sandbox
The Sandbox (SAND) $ 0.619568
trust-wallet-token
Trust Wallet (TWT) $ 2.32
tezos
Tezos (XTZ) $ 1.02
aave
Aave (AAVE) $ 63.54
theta-token
Theta Network (THETA) $ 0.893304
huobi-token
Huobi (HT) $ 6.66