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.
Indice
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!