7 min read

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

Di Gabriele Brambilla

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.

Principali algoritmi di consenso

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

Quale algoritmo di consenso utilizza Bitcoin? 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: Ethereum, Solana e Avalanche.

Pro: Scalabilità, efficienza e adattabilità.

Contro: Minore 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!


X

Vuoi essere sempre sul pezzo?

Iscriviti alla newsletter per ricevere approfondimenti esclusivi e analisi ogni settimana.

Se ti iscrivi c’è un regalo per te!

bitcoin
Bitcoin (BTC) $ 67,502.09
ethereum
Ethereum (ETH) $ 3,252.02
tether
Tether (USDT) $ 1.00
bnb
BNB (BNB) $ 577.74
solana
Solana (SOL) $ 180.99
usd-coin
USDC (USDC) $ 0.999548
xrp
XRP (XRP) $ 0.590284
staked-ether
Lido Staked Ether (STETH) $ 3,250.97
dogecoin
Dogecoin (DOGE) $ 0.130191
the-open-network
Toncoin (TON) $ 6.77
cardano
Cardano (ADA) $ 0.414388
tron
TRON (TRX) $ 0.137513
avalanche-2
Avalanche (AVAX) $ 28.52
wrapped-bitcoin
Wrapped Bitcoin (WBTC) $ 67,456.07
shiba-inu
Shiba Inu (SHIB) $ 0.000017
chainlink
Chainlink (LINK) $ 13.53
polkadot
Polkadot (DOT) $ 5.81
bitcoin-cash
Bitcoin Cash (BCH) $ 376.32
near
NEAR Protocol (NEAR) $ 5.75
uniswap
Uniswap (UNI) $ 7.62
leo-token
LEO Token (LEO) $ 5.79
litecoin
Litecoin (LTC) $ 71.45
dai
Dai (DAI) $ 1.00
pepe
Pepe (PEPE) $ 0.000012
wrapped-eeth
Wrapped eETH (WEETH) $ 3,391.01
matic-network
Polygon (MATIC) $ 0.510209
internet-computer
Internet Computer (ICP) $ 9.64
kaspa
Kaspa (KAS) $ 0.181416
ethereum-classic
Ethereum Classic (ETC) $ 22.61
ethena-usde
Ethena USDe (USDE) $ 0.998241
aptos
Aptos (APT) $ 6.91
fetch-ai
Artificial Superintelligence Alliance (FET) $ 1.27
monero
Monero (XMR) $ 163.61
stellar
Stellar (XLM) $ 0.101888
mantle
Mantle (MNT) $ 0.852259
blockstack
Stacks (STX) $ 1.85
render-token
Render (RENDER) $ 6.80
dogwifcoin
dogwifhat (WIF) $ 2.61
bittensor
Bittensor (TAO) $ 365.40
filecoin
Filecoin (FIL) $ 4.52
maker
Maker (MKR) $ 2,739.75
injective-protocol
Injective (INJ) $ 25.39
okb
OKB (OKB) $ 40.77
crypto-com-chain
Cronos (CRO) $ 0.090932
hedera-hashgraph
Hedera (HBAR) $ 0.067516
arbitrum
Arbitrum (ARB) $ 0.720062
cosmos
Cosmos Hub (ATOM) $ 6.13
immutable-x
Immutable (IMX) $ 1.50
vechain
VeChain (VET) $ 0.027875
arweave
Arweave (AR) $ 31.04