Dalla nascita del Bitcoin nel 2008, come sistema di cassa elettronico peer-to-peer, sono state create molte altre criptovalute, ognuna con un meccanismo particolare. Ma una cosa che quasi tutte le criptovalute hanno in comune è la blockchain, come elemento centrale della loro architettura.
Con poche eccezioni, le blockchain sono intenzionalmente progettate per essere decentralizzate, funzionando come un registro digitale gestito da una rete distribuita di nodi informatici. Per questo motivo, la tecnologia blockchain ha consentito la creazione di sistemi economici trustless, in cui le transazioni finanziarie trasparenti e affidabili potevano essere eseguite senza la necessità di intermediari. Le criptovalute vengono adottate come una valida alternativa ai tradizionali sistemi bancari e di pagamento, che dipendono fortemente dalla fiducia.
Proprio come la maggior parte dei sistemi informatici distribuiti, i partecipanti di una rete di criptovaluta devono concordare regolarmente sullo stato attuale della blockchain, e questo è ciò che chiamiamo raggiungimento del consenso. Tuttavia, raggiungere il consenso sulle reti distribuite, in modo sicuro ed efficiente, è lungi dall’essere un compito facile.
Quindi, come può una rete distribuita di nodi di computer concordare una decisione, se è probabile che alcuni nodi falliscano o agiscano in modo disonesto? Questa è la questione fondamentale del cosiddetto problema dei generali bizantini, che ha dato origine al concetto di tolleranza agli errori bizantina.
Qual è il problema dei generali bizantini?
In poche parole, il Problema dei Generali Bizantini fu concepito nel 1982 come un dilemma logico che illustra come un gruppo di generali bizantini possa avere problemi di comunicazione nel tentativo di accordarsi sulla mossa successiva.
Il dilemma presuppone che ogni generale abbia il proprio esercito e che ogni gruppo sia situato in luoghi diversi intorno alla città che intende attaccare. I generali devono mettersi d'accordo sull'attacco o sulla ritirata. Non importa se attaccano o si ritirano, purché tutti i generali raggiungano il consenso, cioè si accordino su una decisione comune per eseguirla in coordinamento.
Possiamo quindi considerare i seguenti requisiti:
Ogni generale deve decidere: attaccare o ritirarsi (sì o no);
Una volta presa la decisione, non può essere modificata;
Tutti i generali devono concordare la stessa decisione ed eseguirla in modo sincronizzato.
I suddetti problemi di comunicazione sono legati al fatto che un generale può comunicare con un altro solo tramite messaggi, che vengono inoltrati da un corriere. Di conseguenza, la sfida centrale del problema dei generali bizantini è che i messaggi possono essere in qualche modo ritardati, distrutti o persi.
Inoltre, anche se un messaggio viene recapitato con successo, uno o più generali possono scegliere (per qualsiasi motivo) di agire in modo dannoso e inviare un messaggio fraudolento per confondere gli altri generali, portando a un fallimento totale.
Se applichiamo il dilemma al contesto delle blockchain, ogni generale rappresenta un nodo della rete e i nodi devono raggiungere un consenso sullo stato attuale del sistema. In altre parole, la maggior parte dei partecipanti all’interno di una rete distribuita deve concordare ed eseguire la stessa azione per evitare il fallimento completo.
Pertanto, l’unico modo per ottenere il consenso in questi tipi di sistemi distribuiti è avere almeno ⅔ o più nodi di rete affidabili e onesti. Ciò significa che se la maggior parte della rete decide di agire in modo dannoso, il sistema è suscettibile a guasti e attacchi (come l’attacco del 51%).
Tolleranza ai guasti bizantini (BFT)
In poche parole, la tolleranza ai guasti bizantini (BFT) è la proprietà di un sistema in grado di resistere alla classe di fallimenti derivati dal Problema dei Generali Bizantini. Ciò significa che un sistema BFT è in grado di continuare a funzionare anche se alcuni nodi falliscono o agiscono in modo dannoso.
Esiste più di una possibile soluzione al problema dei generali bizantini e, quindi, molteplici modi per costruire un sistema BFT. Allo stesso modo, ci sono diversi approcci affinché una blockchain raggiunga la tolleranza agli errori bizantina e questo ci porta ai cosiddetti algoritmi di consenso.
Algoritmi di consenso blockchain
Possiamo definire un algoritmo di consenso come il meccanismo attraverso il quale una rete blockchain raggiunge il consenso. Le implementazioni più comuni sono Proof of Work (PoW) e Proof of Stake (PoS). Ma prendiamo come esempio il caso Bitcoin.
Mentre il protocollo Bitcoin prescrive le regole primarie del sistema, l’algoritmo di consenso PoW è ciò che definisce come verranno seguite queste regole per raggiungere il consenso (ad esempio, durante la verifica e la validazione delle transazioni).
Sebbene il concetto di Proof of Work sia più antico di quello delle criptovalute, Satoshi Nakamoto ne ha sviluppato una versione modificata come algoritmo che ha consentito la creazione di Bitcoin come sistema BFT.
Si noti che l'algoritmo PoW non è tollerante al 100% agli errori bizantini, ma a causa del costoso processo di mining e delle tecniche crittografiche sottostanti, PoW ha dimostrato di essere una delle implementazioni più sicure e affidabili per le reti blockchain. In questo senso, l’algoritmo di consenso Proof of Work, progettato da Satoshi Nakamoto, è considerato da molti come una delle soluzioni più geniali agli errori bizantini.
Pensieri finali
Il problema dei generali bizantini è un dilemma intrigante che alla fine ha dato origine ai sistemi BFT, che vengono ampiamente applicati in vari scenari. Oltre al settore blockchain, alcuni casi d’uso dei sistemi BFT includono i settori dell’aviazione, dello spazio e dell’energia nucleare.
Nel contesto delle criptovalute, avere una comunicazione di rete efficiente insieme a un buon meccanismo di consenso è vitale per qualsiasi ecosistema blockchain. Mettere in sicurezza questi sistemi è uno sforzo continuo e gli algoritmi di consenso esistenti devono ancora superare alcune limitazioni (come la scalabilità). Tuttavia, PoW e PoS sono approcci molto interessanti come sistemi BFT e le potenziali applicazioni stanno certamente ispirando un’innovazione diffusa.