introduzione

Da quando Bitcoin è stato introdotto per la prima volta come sistema di cassa elettronico nel 2008; in seguito furono create molte altre valute, ciascuna con i propri meccanismi unici. Tuttavia, una cosa che quasi tutte le valute digitali hanno in comune è il loro elemento architettonico di base, ovvero la tecnologia Blockchain.

Con poche eccezioni, la blockchain è progettata per essere decentralizzata, funzionando come un registro digitale gestito da una rete decentralizzata di nodi informatici. Per questo motivo, la tecnologia blockchain consente la creazione di un sistema economico senza fiducia, in cui la trasparenza e l’affidabilità delle transazioni finanziarie possono avvenire senza la necessità di un intermediario. Le valute digitali saranno adottate come alternativa di pagamento in sostituzione delle banche e dei sistemi di pagamento tradizionali, che fanno molto affidamento sulla fiducia.

Come con la maggior parte dei sistemi informatici distribuiti, i partecipanti a una rete di valuta digitale devono periodicamente accordarsi sullo stato attuale della blockchain, e questo è ciò che chiamiamo raggiungimento del consenso. Tuttavia, è molto difficile raggiungere il consenso in una rete distribuita, in modo onesto e sicuro.

Pertanto, come fa una rete di nodi informatici distribuiti a concordare una decisione? Se alcuni nodi possono fallire o comportarsi in modo disonesto? Questa è una questione fondamentale conosciuta come il problema bizantino generale, che ha dato origine a un concetto chiamato tolleranza agli errori bizantini.


È questo un problema bizantino comune?

In breve, il problema generale bizantino nacque nel 1982 come un dilemma logico che illustrava come un gruppo di generali bizantini potesse avere problemi di comunicazione per concordare la mossa successiva.

Questo dilemma presuppone che ogni generale abbia il proprio esercito e che ogni gruppo sia posizionato in un luogo diverso della città che vuole attaccare. I generali dovevano concordare se avrebbero attaccato o ritirato. La questione non era se avrebbero attaccato o ritirato, purché i generali raggiungessero un consenso, ad esempio: concordando una decisione che sarebbe stata eseguita secondo gli ordini.


Pertanto, ci sono diverse cose che devono essere determinate:

  • Ogni generale deve decidere; se attaccare o ritirarsi (sì o no);

  • Una volta presa ogni decisione, non può essere modificata;

  • Ogni generale deve essere d'accordo con la stessa decisione ed eseguirla simultaneamente entro le regole stabilite.

I problemi di comunicazione sopra descritti sono legati al fatto che un generale può comunicare con un altro solo tramite messaggi inviati tramite corrieri. La stessa cosa mette in discussione il problema bizantino generale, per cui la consegna del messaggio è leggermente ostacolata, può essere distrutta o perduta.

Inoltre, anche se il messaggio viene inviato con successo, uno o più generali possono scegliere (per qualsiasi motivo) di agire in modo malevolo e inviare una risposta intesa a confondere gli altri generali, il che potrebbe portare al fallimento dell'attacco.

Se applichiamo questo dilemma al contesto blockchain, ogni generale rappresenta un nodo della rete e quel nodo deve raggiungere il consenso sullo stato attuale del sistema. In altre parole, la maggioranza dei partecipanti ad una rete distribuita deve concordare ed eseguire la stessa azione per evitare il fallimento totale.

Pertanto, l’unico modo per ottenere il consenso per questo tipo di sistema distribuito è avere ⅔ o più nodi della rete onesti e affidabili. Ciò può anche significare che se la maggioranza dei partecipanti alla rete decide di agire in modo dannoso, il sistema sarà altamente vulnerabile a guasti e attacchi (come un attacco del 51%).


Tolleranza ai guasti bizantini (BFT)

In altre parole, la tolleranza agli errori bizantini è la proprietà di un sistema in grado di scongiurare i fallimenti causati dal dilemma bizantino del problema comune. Ciò può anche significare che il sistema BFT può continuare a funzionare anche se alcuni nodi falliscono o si comportano in modo errato.

Esistono diverse soluzioni al problema bizantino generale e ci sono anche diversi modi per costruire un sistema BFT. Inoltre, esistono diversi approcci alla blockchain che possono raggiungere il BFT e questo ci porterà ad algoritmi di consenso.


Algoritmo di consenso Blockchain

Possiamo definire un algoritmo di consenso come un meccanismo attraverso il quale una rete blockchain raggiunge il consenso. le implementazioni più comuni sono Proof of Work (PoW) e Proof of Stake (PoS). ma prendiamo come esempio Bitcoin.

Il protocollo Bitcoin definisce le regole principali per il sistema Bitcoin ed è l'algoritmo di consenso PoW che determina come tali regole vengono seguite per ottenere il consenso (ad esempio, durante la verifica e la convalida delle transazioni).

Sebbene il concetto di Proof of Work sia più antico di altre valute digitali, Satoshi Nakamoto ha sviluppato una versione modificata come algoritmo che consente di utilizzare il processo di creazione di Bitcoin come sistema BFT.

Va notato che l’algoritmo PoW non è tollerante al 100% di Byzantine Fault, ma a causa di un processo di mining molto costoso e delle tecniche di crittografia sottostanti, PoW ha dimostrato di essere l’implementazione di rete blockchain più sicura e affidabile. In questo caso, l’algoritmo di consenso Proof of Work progettato da Satoshi Nakamoto è considerato da molte persone una soluzione geniale alla colpa bizantina.


Conclusione

Il problema generale bizantino è un dilemma interessante che alla fine ha dato origine al sistema BFT, ampiamente applicato in molti scenari. Oltre al settore blockchain, i sistemi BFT vengono utilizzati anche in molti altri settori, come l’aviazione, lo spazio e l’industria dell’energia nucleare.

Nel contesto delle valute digitali, avere una comunicazione di rete efficiente, insieme a un buon meccanismo di consenso, è molto importante per qualsiasi ecosistema blockchain. Mettere in sicurezza questi sistemi è un’impresa senza fine e gli attuali algoritmi di consenso devono ancora superare alcune delle limitazioni che ancora devono affrontare (come la scalabilità). Anche così, PoW e PoS rappresentano un approccio non meno interessante dei sistemi BFT e le sue potenziali applicazioni ispirano un’innovazione diffusa.