Dall’inizio del Bitcoin nel 2008 come sistema finanziario elettronico peer-to-peer, sono state create molte valute digitali, ciascuna delle quali funziona con un meccanismo speciale. Ma l’unica cosa che tutte le valute digitali hanno in comune è la blockchain come elemento base della loro struttura.

Tutte le blockchain sono intenzionalmente progettate per essere decentralizzate e, con poche eccezioni, agiscono 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 affidabili in cui le transazioni finanziarie possono essere effettuate in modo trasparente e affidabile senza la necessità di intermediari.

L’uso delle valute digitali viene attualmente abbracciato come una valida alternativa ai sistemi bancari tradizionali e ai metodi di pagamento che fanno molto affidamento sulla fiducia.

Come nel caso della maggior parte dei sistemi informatici distribuiti, i partecipanti a una rete di criptovaluta devono concordare regolarmente lo stato attuale in cui opera la blockchain. Questo è ciò che chiamiamo raggiungimento del consenso. Tuttavia, raggiungere il consenso sulle reti distribuite in modo sicuro e protetto è un compito molto difficile.

Quindi, come può una rete distribuita di nodi di computer accordarsi sulla probabilità che alcuni nodi falliscano o agiscano illegalmente? Questa è la questione fondamentale del cosiddetto problema dei generali bizantini da cui è nato il concetto di tolleranza agli errori bizantini.


Qual è il problema dei generali bizantini?

In breve, il Problema dei generali bizantini del 1982 fu concepito come un dilemma logico che illustrava come un gruppo di generali bizantini potesse avere problemi di comunicazione tra loro nel tentativo di concordare il passo successivo nel loro piano.

Il dilemma presuppone che ogni generale abbia il proprio esercito, che ogni gruppo si trovi in ​​luoghi diversi intorno alla città che intende attaccare e che ogni generale debba accettare di attaccare o ritirarsi. Non importa se attaccano o si ritirano, purché tutti i generali raggiungano un consenso, cioè concordino su una decisione congiunta per attuarla in coordinamento.

Possiamo quindi considerare i seguenti obiettivi:

  • Ogni generale deve decidere: attaccare o ritirarsi (sì o no).

  • Una volta presa una decisione, non può essere modificata.

  • Tutti i generali devono concordare la stessa decisione e attuarla in modo sincronizzato.

I problemi di comunicazione sopra menzionati sono legati al fatto che ogni singolo generale è in grado di comunicare con un altro generale solo attraverso messaggi che vengono inviati dal vettore/corriere. Pertanto, la sfida principale del problema per i generali bizantini è che i messaggi possono essere ritardati, danneggiati o persi.

Inoltre, anche se il messaggio viene recapitato con successo, uno o più generali possono (per qualsiasi motivo) scegliere di agire in modo dannoso e inviare un messaggio contraffatto per confondere gli altri generali, portando al completo fallimento della missione.

Se applichiamo questo dilemma nel contesto della blockchain, ogni generazione rappresenta un nodo della rete e i nodi devono raggiungere un consenso sullo stato attuale del sistema. Detto in altro modo, la maggior parte dei partecipanti a una rete distribuita deve accettare ed eseguire la stessa azione per evitare un fallimento completo.

Pertanto, l’unico modo per raggiungere il consenso in questi tipi di sistemi distribuiti è avere ⅔ (due terzi) o più nodi onesti. Ciò significa che se la maggior parte della rete decide di agire in modo dannoso, il sistema sarà vulnerabile a guasti e attacchi (ad esempio attacco del 51%).


Tolleranza ai guasti bizantini - BFT

In breve, la tolleranza ai guasti bizantina (BFT) è la proprietà di un sistema in grado di resistere al tipo di guasto derivato dal Problema dei Generali Bizantini. Ciò significa che il sistema BFT è in grado di continuare a funzionare anche se alcuni nodi falliscono o si comportano in modo dannoso.

Esiste più di una soluzione possibile al problema dei generali bizantini e ciò significa che esistono diversi modi per costruire un sistema BFT. Allo stesso modo, esistono molteplici approcci diversi affinché le blockchain raggiungano 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 applicazioni più comuni sono Proof of Work (PoW) e Proof of Stake (PoS). Ma prendiamo come esempio il caso del Bitcoin.

Mentre il protocollo Bitcoin stabilisce le regole di base del sistema, è l'algoritmo di consenso noto come Proof of Work (PoW) che definisce come queste regole vengono seguite per raggiungere il consenso (ad esempio, durante la verifica 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 Proof of Work (PoW) non è tollerante ai guasti bizantino al 100% ma a causa del costoso processo di mining e delle tecniche crittografiche, PoW ha dimostrato di essere una delle implementazioni più sicure e affidabili delle reti blockchain.

Pertanto, l’algoritmo Proof of Work progettato da Satoshi Nakamoto è utilizzato da molti come una delle soluzioni più ingegnose agli errori bizantini.


Conclusione

Il problema dei generali bizantini è un dilemma interessante che alla fine ha dato origine ai sistemi BFT, ampiamente applicati in diversi scenari. Anche al di fuori del settore blockchain, alcuni casi d’uso di BFT includono i settori dell’aviazione, dello spazio e dell’energia nucleare.

Nel contesto delle valute digitali, disporre di una rete di comunicazione efficiente insieme a un meccanismo di consenso è vitale per qualsiasi sistema blockchain. Mettere in sicurezza questi sistemi è uno sforzo continuo e gli algoritmi di consenso esistenti stanno ancora lavorando per superare alcune limitazioni (come la scalabilità). Tuttavia, Proof of Work (PoW) e Proof of Stake (PoS) sono due approcci molto interessanti ai sistemi BFT e le potenziali applicazioni sono sicuramente fonte di ispirazione diffusa.