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. Niente spam, promesso!

Se ti iscrivi c'è un regalo per te: una guida completa per i prossimi airdrop!

bitcoin
Bitcoin (BTC) $ 27,613.40
ethereum
Ethereum (ETH) $ 1,666.78
tether
Tether (USDT) $ 1.00
bnb
BNB (BNB) $ 215.30
xrp
XRP (XRP) $ 0.508650
usd-coin
USDC (USDC) $ 0.998850
staked-ether
Lido Staked Ether (STETH) $ 1,668.22
solana
Solana (SOL) $ 24.18
cardano
Cardano (ADA) $ 0.263096
dogecoin
Dogecoin (DOGE) $ 0.062185
tron
TRON (TRX) $ 0.087929
the-open-network
Toncoin (TON) $ 2.05
polkadot
Polkadot (DOT) $ 4.14
matic-network
Polygon (MATIC) $ 0.560358
litecoin
Litecoin (LTC) $ 66.64
bitcoin-cash
Bitcoin Cash (BCH) $ 242.57
wrapped-bitcoin
Wrapped Bitcoin (WBTC) $ 27,661.41
shiba-inu
Shiba Inu (SHIB) $ 0.000007
chainlink
Chainlink (LINK) $ 7.71
dai
Dai (DAI) $ 0.999617
leo-token
LEO Token (LEO) $ 3.71
true-usd
TrueUSD (TUSD) $ 0.997783
uniswap
Uniswap (UNI) $ 4.51
avalanche-2
Avalanche (AVAX) $ 9.35
stellar
Stellar (XLM) $ 0.111267
monero
Monero (XMR) $ 147.60
okb
OKB (OKB) $ 43.15
ethereum-classic
Ethereum Classic (ETC) $ 16.48
binance-usd
BUSD (BUSD) $ 0.999707
cosmos
Cosmos Hub (ATOM) $ 7.22
hedera-hashgraph
Hedera (HBAR) $ 0.050231
filecoin
Filecoin (FIL) $ 3.35
lido-dao
Lido DAO (LDO) $ 1.58
internet-computer
Internet Computer (ICP) $ 3.13
mantle
Mantle (MNT) $ 0.411888
crypto-com-chain
Cronos (CRO) $ 0.050565
maker
Maker (MKR) $ 1,467.67
quant-network
Quant (QNT) $ 89.35
aptos
Aptos (APT) $ 5.42
vechain
VeChain (VET) $ 0.017236
arbitrum
Arbitrum (ARB) $ 0.929288
optimism
Optimism (OP) $ 1.37
near
NEAR Protocol (NEAR) $ 1.12
kaspa
Kaspa (KAS) $ 0.050873
aave
Aave (AAVE) $ 69.70
rocket-pool-eth
Rocket Pool ETH (RETH) $ 1,813.20
the-graph
The Graph (GRT) $ 0.089184
algorand
Algorand (ALGO) $ 0.102978
bitcoin-sv
Bitcoin SV (BSV) $ 41.03
whitebit
WhiteBIT Coin (WBT) $ 5.16