Che cos’è il Problema dei Generali Bizantini?

Spiegazione del Problema dei Generali Bizantini
Il Problema dei Generali Bizantini è una questione teorica che descrive le sfide che i sistemi decentralizzati, come le blockchain, affrontano quando cercano di raggiungere il consenso senza un’autorità centrale. È stato introdotto nel 1982 da Robert Shostak, Leslie Lamport e Marshall Pease, ed è descritto come un problema teorico di informatica.
La domanda è: come può una rete in cui nessun partecipante può verificare l’identità e l’integrità di un altro partecipante garantire che tutti raggiungano il consenso su una versione unica?
Una domanda molto attuale, visto che reti decentralizzate come Bitcoin e Ethereum si basano sulla fiducia riposta in molti partecipanti, invece che in un’entità centrale.
In breve
- Il Problema dei Generali Bizantini descrive come i sistemi decentralizzati, come le blockchain, possano raggiungere il consenso senza un’autorità centrale.
- Mostra che, in reti senza una parte centrale, è difficile raggiungere un accordo: ogni nodo deve prendere decisioni senza la garanzia che gli altri siano onesti.
- La Byzantine Fault Tolerance (BFT) assicura che un sistema possa continuare a funzionare anche se alcuni partecipanti sono malevoli. Finché la maggioranza è affidabile, il sistema rimane stabile.
Da dove viene il nome “Problema dei Generali Bizantini”?
C’è una storia interessante dietro l’origine del nome. Dopo la caduta dell’Impero Romano d’Occidente, nacque l’Impero Bizantino, la parte orientale dell’ex impero. La sua capitale era una città ricca e influente, originariamente chiamata Byzantion. Nel 330 d.C. fu rinominata Costantinopoli e oggi è conosciuta come Istanbul.
Il Problema dei Generali Bizantini riguarda lo scenario in cui la città è sotto assedio e i generali che la difendono devono prendere la stessa decisione: ritirarsi o attaccare. Se un generale sceglie diversamente dagli altri, si crea un punto debole nella linea di difesa e quindi un rischio di sconfitta.
Se un generale prende una decisione errata, si parla di “errore bizantino” (Byzantine fault), termine noto anche nel mondo crypto. Come affrontano la situazione i generali? Gli aiutanti dei generali (messaggeri) comunicano le decisioni agli altri generali. Se la maggioranza sceglie una strategia, tutti i generali devono seguirla. Così la linea di difesa rimane intatta. Se alcuni agiscono contro la maggioranza, sono considerati traditori. Poiché decide la maggioranza, il sistema funziona in modo affidabile.
Il Problema dei Generali Bizantini applicato ai sistemi decentralizzati
La storia illustra le problematiche che affrontano i sistemi decentralizzati, come le blockchain. Se nessuna persona (o nodo, nel mondo crypto) decide da sola, come avviene di solito nei sistemi centralizzati, è fondamentale avere un metodo chiaro per prendere decisioni senza ambiguità.
Il problema mette in evidenza la difficoltà di raggiungere il consenso in un sistema decentralizzato, perché non si può dare per scontato che un singolo partecipante trasmetta informazioni corrette.
Le parti centralizzate non affrontano il Problema dei Generali Bizantini, perché le decisioni vengono prese da un’unica entità che gestisce anche la distribuzione delle informazioni riservate. Un esempio perfetto nel settore finanziario sono le banche: sono ritenute affidabili e ci si aspetta che gestiscano i fondi con integrità e conservino i dati delle transazioni in modo sicuro. Se una banca commette frodi, esistono autorità governative pronte a controllare e sanzionare.
In questo caso la fiducia è riposta in un’autorità centrale. Questo offre efficienza, ma introduce anche altri rischi: se il sistema subisce un guasto o un attacco informatico su larga scala, l’intero sistema si blocca. Nei sistemi decentralizzati, invece, un nodo può essere compromesso o malevolo, ma ci sono abbastanza altri nodi per mantenere il controllo.
Che cos’è la Byzantine Fault Tolerance?
La soluzione al problema è la Byzantine Fault Tolerance (BFT). È il principio su cui sono progettati i sistemi decentralizzati. Assicura che la rete continui a funzionare anche in presenza di partecipanti malevoli.
Con la Byzantine Fault Tolerance, è sufficiente che la maggioranza raggiunga un accordo per ottenere il consenso.
Byzantine Fault Tolerance nella tecnologia blockchain
Bitcoin è l’esempio perfetto di applicazione della Byzantine Fault Tolerance (BFT). Bitcoin usa il meccanismo di consenso Proof-of-Work per verificare le transazioni e aggiungere nuovi blocchi alla blockchain. Questo avviene tramite i miner (nodi). Un miner può aggiungere un blocco contenente transazioni, ma il blocco viene poi controllato dagli altri miner. Se più del 51% dei miner approva il blocco e quindi si raggiunge il consenso, il blocco viene aggiunto alla blockchain. In questo modo i miner malevoli possono essere individuati e penalizzati.
In teoria, un miner malevolo avrebbe bisogno del 51% della potenza di calcolo utilizzata nel mining. Questo è noto come attacco al 51%. Nella pratica, è quasi impossibile perché migliaia di miner in tutto il mondo lavorano 24/7 per minare nuovi bitcoin.
In conclusione
Il Problema dei Generali Bizantini mette in evidenza la difficoltà di raggiungere il consenso in una rete decentralizzata dove i partecipanti non possono fidarsi l’uno dell’altro. Con l’aiuto della Byzantine Fault Tolerance, blockchain come Bitcoin possono continuare a funzionare e rimanere sicure finché la maggioranza dei partecipanti agisce onestamente. Questo rende i sistemi decentralizzati più resilienti a guasti e attacchi rispetto a molte alternative centralizzate.