Dalla nascita di Bitcoin nel 2008, come sistema di denaro 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, lavorando come un libro mastro digitale che viene mantenuto da una rete distribuita di nodi di computer. Per questo motivo, la tecnologia blockchain ha permesso la creazione di sistemi economici senza fiducia, dove transazioni finanziarie trasparenti e affidabili possono essere eseguite senza la necessità di intermediari. Le criptovalute sono state adottate come una valida alternativa ai tradizionali sistemi bancari e di pagamento, che dipendono fortemente dalla fiducia.
Proprio come la maggior parte dei sistemi di calcolo distribuiti, i partecipanti di una rete di criptovalute hanno bisogno di concordare regolarmente lo stato attuale della blockchain, e questo è ciò che chiamiamo raggiungimento del consenso. Tuttavia, raggiungere il consenso sulle reti distribuite, in modo sicuro ed efficiente, è tutt’altro che un compito facile.
Quindi, come può una rete distribuita di nodi informatici accordarsi su una decisione, se alcuni dei nodi possono fallire o agire in modo disonesto? Questa è la domanda fondamentale del cosiddetto problema dei generali bizantini, che ha dato vita al concetto di tolleranza ai guasti bizantini.
Qual è il problema dei generali bizantini?
In poche parole, il Problema dei Generali Bizantini è stato concepito nel 1982 come un dilemma logico che illustra come un gruppo di generali bizantini può avere problemi di comunicazione quando cerca di accordarsi sulla loro prossima mossa.
Il dilemma presuppone che ogni generale abbia il suo esercito e che ogni gruppo sia situato in luoghi diversi intorno alla città che intende attaccare. I generali devono accordarsi 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 modo coordinato.
Pertanto, possiamo considerare i seguenti requisiti:
- Ogni generale deve decidere: attacco o ritirata (sì o no);
- Dopo che la decisione è stata presa, non può essere cambiata;
- Tutti i generali devono accordarsi sulla stessa decisione ed eseguirla in modo sincronizzato.
I suddetti problemi di comunicazione sono legati al fatto che un generale è in grado di comunicare con un altro solo attraverso 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 consegnato con successo, uno o più generali possono scegliere (per qualsiasi ragione) di agire maliziosamente e inviare un messaggio fraudolento per confondere gli altri generali, portando ad 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. Detto in un altro modo, la maggioranza dei partecipanti all’interno di una rete distribuita deve essere d’accordo ed eseguire la stessa azione per evitare il fallimento completo.
Quindi, l’unico modo per raggiungere il consenso in questi tipi di sistemi distribuiti è avere almeno ⅔ o più nodi di rete affidabili e onesti. Questo significa che se la maggioranza della rete decide di agire maliziosamente, il sistema è suscettibile di fallimenti 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 che è capace di resistere alla classe di guasti derivati dal problema dei generali bizantini. Ciò significa che un sistema BFT è in grado di continuare a funzionare anche se alcuni dei nodi falliscono o agiscono maliziosamente.
C’è più di una possibile soluzione al Problema dei Generali Bizantini e, quindi, più modi di costruire un sistema BFT. Allo stesso modo, ci sono diversi approcci per una blockchain per raggiungere la tolleranza ai guasti bizantini e questo ci porta ai cosiddetti algoritmi di consenso.
Algoritmi di consenso della blockchain
Possiamo definire un algoritmo di consenso come il meccanismo attraverso cui una rete blockchain raggiunge il consenso. Le implementazioni più comuni sono Proof of Work (PoW) e Proof of Stake (PoS). Ma prendiamo il caso Bitcoin come esempio.
Mentre il protocollo Bitcoin prescrive le regole principali del sistema, l’algoritmo di consenso PoW è quello che definisce come queste regole saranno seguite per raggiungere il consenso (per esempio, durante la verifica e la convalida delle transazioni).
Anche se il concetto di Proof of Work è più vecchio delle criptovalute, Satoshi Nakamoto ne ha sviluppato una versione modificata come algoritmo che ha permesso la creazione di Bitcoin come sistema BFT.
Nota che l’algoritmo PoW non è tollerante al 100% ai difetti bizantini, ma a causa del processo di mining ad alto costo e le 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 ai difetti bizantini.
Pensieri finali
Il problema dei generali bizantini è un dilemma intrigante che alla fine ha dato origine ai sistemi BFT, che sono stati ampiamente applicati in vari scenari. Oltre all’industria della blockchain, alcuni casi d’uso dei sistemi BFT includono l’aviazione, lo spazio e l’industria 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. Proteggere 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.