O que é Practical Byzantine Fault Tolerance (PBFT)


O que é Practical Byzantine Fault Tolerance (PBFT)?

Practical Byzantine Fault Tolerance (PBFT) é um algoritmo de consenso projetado para funcionar eficientemente num sistema assíncrono (sem assumir quaisquer sincronizações) e otimizado para ter baixa latência.

Introduzido pela primeira vez por Miguel Castro e Barbara Liskov num estudo de 1999, o algoritmo PBFT é uma forma de replicação de máquina de estados, o que significa que um estado do sistema é replicado e distribuído por vários servidores. Isso acaba por tornar o sistema mais robusto porque falhas como as bizantinas podem ocorrer isoladamente, ao contrário de causar a falha de uma rede inteira.

Como funciona o algoritmo PBFT

Fundamentalmente, os nós num modelo PBFT são ordenados numa sequência onde um nó é considerado o nó primário (líder) e outros nós são referidos como backups. No entanto, todos os nós dentro de uma rede ainda mantêm comunicação. O objetivo é que todos os nós honestos cheguem a um acordo em relação ao estado do sistema através de uma regra da maioria.

Para que o modelo PBFT funcione, o número máximo de nós maliciosos não deve ser maior ou igual a um terço de todos os nós no sistema. Cada rodada de consenso PBFT (normalmente referida como “vistas”) é resumida em quatro fases simples:

  1. Um cliente envia um pedido de operação de serviço para o nó primário (líder).

  1. O nó primário distribui este pedido a todas as réplicas de backup ao mesmo tempo.

  1. As réplicas executam o pedido e enviam uma resposta ao cliente.

  1. O cliente aguarda respostas de diferentes réplicas com resultados semelhantes.

O nó primário muda a cada visualização, que pode ser substituída por um protocolo de “mudança de visualização” se o pedido não for transmitido após um certo período. Além disso, se um nó primário for considerado defeituoso, pode ser removido com o acordo de uma grande maioria de nós honestos.

Exemplos de plataformas que utilizam variantes de PBFT são Zilliqa, Hyperledger e Tendermint.

Principais tópicos

A Practical Byzantine Fault Tolerance (PBFT) é um algoritmo que previne falhas bizantinas em ambientes assíncronos e otimiza para baixa latência.

Palavras relacionadas