Practical Byzantine Fault Tolerance (PBFT)


Cos’è la Practical Byzantine Fault Tolerance (PBFT)?

Practical Byzantine Fault Tolerance (PBFT) è un algoritmo di consenso progettato per funzionare in modo efficiente in un sistema asincrono (senza dipendere dalle tempistiche delle azioni dei nodi) e ottimizzato per ridurre al minimo la latenza.

Introdotto per la prima volta da Miguel Castro e Barbara Liskov con uno studio del 1999, l’algoritmo PBFT è una forma di replicazione dello stato di un sistema, in cui le informazioni e le condizioni attuali del sistema vengono duplicate e distribuite su più server. Questo rende il sistema più robusto poichè i guasti come Byzantine faults possono verificarsi in modo isolato, anziché causare il fallimento dell’intera rete.

Come funziona l’algoritmo PBFT

Fondamentalmente, i nodi di un sistema PBFT sono organizzati in una sequenza, in cui uno dei nodi è designato come nodo primario (o leader) e gli altri nodi sono definiti backup. Tuttavia, tutti i nodi all’interno di una rete mantengono costantemente la comunicazione. L’obiettivo è che tutti i nodi onesti raggiungano un accordo sullo stato del sistema utilizzando la regola della maggioranza.

Perché il modello PBFT funzioni correttamente, il numero massimo di nodi difettosi non deve superare un terzo del totale dei nodi nel sistema. Ogni round di consenso PBFT (comunemente detto ‘views’) è riassunto in quattro semplici fasi:

  1. Un partecipante invia una richiesta per un’operazione di servizio al nodo primario (leader).

  1. Il nodo primario distribuisce questa richiesta a tutte le repliche di backup contemporaneamente.

  1. Le repliche eseguono la richiesta e inviano una risposta al partecipante.

  1. Il partecipante attende risposte da diverse repliche con risultati simili.

Il nodo primario cambia ogni view, che può essere sostituito in ‘view change’ se la richiesta non viene trasmessa dopo un certo periodo. Inoltre, se viene riscontrato che un nodo primario è difettoso, può essere rimosso con il consenso di una grande maggioranza di nodi onesti.

Esempi di piattaforme che utilizzano varianti della PBFT sono Zilliqa, Hyperledger, e Tendermint.

Punti chiave

Practical Byzantine Fault Tolerance (PBFT) è un algoritmo che previene i guasti in ambienti asincroni e ottimizza la bassa latenza.

Parole correlate