Cos’è la Byzantine Fault Tolerance (BFT) e perchè è fondamentale per la blockchain

La Byzantine Fault Tolerance, o BTF, nasce come dilemma logico negli anni ’80 del novecento ed oggi rappresenta uno degli aspetti fondanti della blockchain che non si può certo non conoscere per capirne la natura e il funzionamento.

Dalla nascita del Bitcoin nel 2008, come sistema di moneta elettronica peer to peer, sono state create molte altre criptovalute, ognuna con un meccanismo di consenso particolare. La tecnologia blockchain, tuttavia, è al centro di quasi tutte le criptovalute e funge da componente fondamentale del loro design di base.

Byzantine Fault Tolerance (BFT)
Adobe Stock

Con poche eccezioni, le blockchain sono intenzionalmente progettate per essere decentralizzate, funzionando come un libro mastro digitale gestito da una rete distribuita di nodi informatici. Per questo motivo, la tecnologia blockchain ha permesso la costruzione di sistemi economici privi di fiducia, in cui transazioni finanziarie trasparenti e affidabili possono essere completate senza la necessità di intermediari.

in che modo la Byzantine Fault Tolerance (BFT) ha dato i natali alla blockchain

Un numero crescente di persone si rivolge alle criptovalute come sostituto praticabile dei sistemi bancari e di pagamento convenzionali, che dipendono fortemente dal mantenimento della fiducia del pubblico.

I partecipanti a una rete di criptovalute devono concordare regolarmente lo stato in cui si trova la blockchain, e questo è il cosiddetto raggiungimento del consenso. Si tratta di un requisito condiviso dalla maggior parte dei sistemi di calcolo distribuito. Tuttavia, ottenere il consenso su reti disperse, in modo sicuro ed efficiente, è tutt’altro che un compito semplice.

Come può una rete dispersa di nodi di computer accordarsi su una conclusione, se alcuni dei nodi possono fallire o agire in modo disonesto? Questa è la domanda centrale del cosiddetto problema dei generali bizantini, che ha dato origine al concetto di Byzantine Fault Tolerance (BFT).

Che cos’è il problema dei generali bizantini (Byzantine Generals’ Problem)?

In poche parole, il problema dei generali bizantini è stato concepito nel 1982 come un dilemma logico che illustra come un gruppo di generali bizantini possa avere problemi di comunicazione quando cerca di accordarsi sulla mossa successiva.

Il dilemma si basa sulla supposizione che ogni generale comandi il proprio esercito e che questi eserciti siano sparsi nel paesaggio che circonda la città che intendono assaltare. I generali devono trovare un accordo per decidere se attaccare o ritirarsi. Non importa se attaccheranno o si ritireranno, purché tutti i generali raggiungano il consenso, cioè concordino su una decisione comune per eseguirla in modo coordinato.

Pertanto, possiamo considerare i seguenti requisiti:

  • Ogni generale è responsabile di una scelta: avanzare o ritirarsi (sì o no)
  • Dopo che la decisione è stata presa, non può essere cambiata
  • Tutti i generali devono essere d’accordo sulla stessa decisione ed eseguirla in modo sincronizzato.
  • Le suddette sfide di comunicazione sono dovute al fatto che un generale può interagire con un altro solo attraverso le comunicazioni, che vengono inoltrate 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 consegnato con successo, uno o più generali possono scegliere (per qualsiasi motivo) di agire con malizia 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 il consenso sullo stato attuale del sistema. In altre parole, per evitare un fallimento totale, la grande maggioranza dei partecipanti a una rete distribuita deve raggiungere il consenso e compiere la stessa azione simultaneamente.

Pertanto, l’unico metodo per ottenere il consenso in questi tipi di sistemi distribuiti è avere almeno i due terzi o più nodi di rete affidabili e onesti. Ciò significa che se la maggioranza della rete decide di agire in modo malevolo, il sistema è soggetto a guasti e attacchi (come l’attacco del 51%).

Cos’è la Byzantine Fault Tolerance (BFT)

La Byzantine Fault Tolerance (BFT) è una qualità di un sistema in grado di resistere alla classe di guasti generati dal problema dei generali bizantini. In altre parole, la BFT è la capacità di un sistema di “bizantineggiare” i guasti. Ciò significa che un sistema BFT è in grado di continuare a funzionare anche se alcuni dei nodi si guastano o agiscono in modo malevolo.

Esiste più di un modo per risolvere il Problema dei Generali Bizantini e, di conseguenza, esistono diversi modi per costruire un sistema BFT. Allo stesso modo, esistono più modi per una blockchain di ottenere la Byzantine Fault Tolerance (BFT), il che ci porta al tema dei cosiddetti algoritmi di consenso.

Quali sono gli algoritmi di consenso della blockchain

Possiamo pensare a un algoritmo di consenso come al meccanismo attraverso il quale una rete blockchain arriva a una decisione accettata da tutti i partecipanti. Proof of Work (PoW) e Proof of Stake (PoS) sono le due implementazioni più utilizzate. Ma prendiamo il caso di Bitcoin come esempio.

Mentre il protocollo Bitcoin specifica le regole di base del sistema, il metodo di consenso PoW determina il modo in cui queste regole saranno seguite per stabilire il consenso (ad esempio, durante la verifica e la convalida delle transazioni).

Satoshi Nakamoto ha sviluppato una versione modificata di Proof of Work come algoritmo che ha permesso la creazione di Bitcoin come sistema BFT. Nonostante il concetto di Proof of Work sia precedente alle criptovalute, Proof of Work è stato alla base dello sviluppo di Bitcoin.

È stato dimostrato che PoW è una delle implementazioni più sicure e affidabili per le reti blockchain, nonostante l’algoritmo Proof of Work (PoW) non sia tollerante al 100% agli errori bizantini. Ciò è dovuto al fatto che l’estrazione mineraria richiede un notevole investimento di tempo e denaro, così come gli approcci crittografici sottostanti. In questo senso, l’algoritmo di consenso Proof of Work (PoW), progettato da Satoshi Nakamoto, è considerato da molti come una delle soluzioni più geniali agli errori bizantini.

Riflessioni finali

Il problema dei generali bizantini è un enigma affascinante che ha dato origine ai sistemi BFT, che sono stati ampiamente utilizzati in numerosi scenari. I casi d’uso dei sistemi BFT possono essere trovati in una varietà di aree diverse dalla blockchain, tra cui l’aviazione, lo spazio e l’energia nucleare, solo per citarne alcune.

Nel contesto delle criptovalute, la presenza di una comunicazione di rete efficiente e di un buon meccanismo di consenso è fondamentale per qualsiasi ecosistema blockchain. Il processo di sicurezza di questi sistemi è in corso e gli algoritmi di consenso attualmente in uso non hanno ancora superato alcuni limiti (come la scalabilità). Ciononostante, Proof of Work (PoW) e Proof of Stake (PoS) sono approcci molto interessanti come sistemi BFT, e le potenziali applicazioni stanno certamente ispirando un’innovazione diffusa.

Impostazioni privacy