Il problema dei generali bizantini è una soluzione ai nodi errati o maligni che passano informazioni sbagliate. Questo permette alla blockchain di continuare a funzionare correttamente nonostante gli errori. Oggi facciamo un breve viaggio nell'antichità. L'Impero Bizantino faceva parte dell'Impero Romano, dopo la sua divisione in due parti. Bisanzio (poi Costantinopoli e Istanbul) era la capitale.
✔️ La tolleranza di errore bizantina è utilizzata nella tecnologia blockchain per garantire che tutti i nodi/minatori raggiungano lo stesso accordo sui blocchi da aggiungere alla catena.
✔️ Il 51% dei minatori deve essere d'accordo su un blocco per poterlo aggiungere.
✔️ Il sistema non richiede fiducia tra i minatori ed è quindi chiamato "trustless" (senza fiducia).
✔️ Bitcoin funziona con successo da oltre 10 anni grazie alla tolleranza ai guasti bizantina.
I generali bizantini erano dunque i generali dell’Impero Bizantino.
Qual era il classico problema? Diciamo di voler assediare una grande città. Ci sono diverse unità militari guidate da generali. A un certo punto, tutti i generali devono eseguire la stessa azione, per esempio attaccare o ritirarsi. Se non fanno la stessa cosa, li aspetta la sconfitta.
Come bisognerebbe comportarsi? Innanzitutto, parliamo del difetto bizantino. Ci sono messaggeri che vanno da un esercito all'altro che informano i generali su cosa gli altri generali abbiano deciso. Se la maggioranza decide una particolare strategia, tutti i generali devono obbedire.
Il difetto bizantino si riferisce al momento in cui un generale traditore decide di comunicare una decisione (attacco) a un gruppo di generali e un’altra (ritirata) al resto.
La Byzantine Fault Tolerance (Tolleranza del Difetto Bizantino) funziona in modo che i generali non fedeli non possano “abbattere il sistema” a meno che non abbiamo la maggioranza. Supponiamo di avere 9 generali, 5 dei quali sono fedeli e 4 no, e che la maggioranza decida la strategia. Dato che la maggior parte dei generali sono generalmente fedeli, questo sistema funzionerà quasi sempre.
Ok, ma cosa c'entra tutto questo con la blockchain? La tolleranza del difetto bizantino ha a che fare con il consenso, o l'accordo, su una blockchain.
Le transazioni vengono eseguite di continuo e nuovi blocchi vengono aggiunti alla blockchain. I computer devono tenere traccia di questa blockchain. Questi sono miner o validatori. Dunque, come fanno questi computer a sapere quali blocchi sono quelli giusti? Dopotutto, ci potrebbero essere validatori che vogliono aggiungere un blocco errato o fraudolento.
Lo fanno raggiungendo un accordo o il consenso su quale blocco sia corretto. Nella maggior parte dei protocolli di consenso Proof-of-Work, il 51% dei miner deve concordare che un blocco sia corretto. Nel momento in cui lo fanno, il blocco viene aggiunto alla blockchain e registrato senza possibilità di cancellarlo.
Perciò, è abbastanza plausibile che ci siano diversi validatori malintenzionati o falsi fra loro e comunque il sistema funzioni. La tolleranza del difetto bizantino funziona così bene che Bitcoin funziona in modo ottimo grazie ad esso da più di un decennio. Ogni anno inoltre diventa più difficile e più costoso attaccare la rete perché la blockchain è più grande e il prezzo maggiore. Se poi si volesse raggruppare il 51% della potenza di calcolo, sarebbero necessari così tanti soldi andrebbe a costare più di quello che si guadagnerebbe. Ecco perché non si sente quasi mai parlare di un attacco a una grande rete.
La bellezza di questo sistema è che i nodi o i miner non devono nemmeno fidarsi l’uno dell’altro, in quanto è un sistema "trustless". La cosa fondamentale è che la maggioranza sia d’accordo, e questo è automatico senza l’input di qualcuno eccetto computer impersonali.
Questa tolleranza dell’errore è estremamente importante per tenere in funzione il sistema senza che il creatore o i programmatori debbano cambiare qualcosa ogni volta. Dunque, possiamo tranquillamente affermare che Satoshi Nakamoto, il creatore di Bitcoin, abbia avuto una trovata davvero brillante.