WEB3DEV

Cover image for Explorando PBFT, IBFT e QBFT: Tipos de Algoritmos de Consenso com Tolerância a Falhas Bizantinas
Banana Labs
Banana Labs

Posted on

Explorando PBFT, IBFT e QBFT: Tipos de Algoritmos de Consenso com Tolerância a Falhas Bizantinas

capa

Os algoritmos de consenso são a espinha dorsal das redes blockchain, garantindo o acordo entre os participantes em um ambiente descentralizado.

Neste artigo, mergulharemos em três proeminentes algoritmos de consenso com tolerância a falhas bizantinas (BFT): PBFT (Tolerância Prática a Falhas Bizantinas), IBFT (Tolerância a Falhas Bizantinas de Istambul) e QBFT (Tolerância a Falhas Bizantinas de Quorum). Examinaremos seus mecanismos, como funcionam e destacaremos as diferenças entre eles.

Parte 1: PBFT – Tolerância Prática a Falhas Bizantinas

PBFT é um algoritmo de consenso introduzido no final dos anos 90 por Castro e Liskov. Ele fornece uma solução robusta para alcançar consenso em sistemas distribuídos, mesmo na presença de falhas bizantinas. O PBFT pressupõe uma rede de N validadores, com um limite de tolerância a falhas de F, o que significa que ele pode tolerar até F nós defeituosos.

Mecanismo de Consenso:

O PBFT emprega um mecanismo de consenso em três fases:

  • Pré-preparação: O processo de consenso começa com um nó primário (propositor) transmitindo um bloco proposto a todos os outros validadores. Os validadores verificam a validade e o número de sequência da proposta antes de entrar no estado pré-preparado.
  • Preparação: Ao receber uma proposta válida, os validadores transmitem mensagens de preparação para indicar seu acordo sobre o bloco proposto. Os validadores aguardam para receber 2F + 1 mensagens de preparação de outros validadores antes de avançar para a próxima fase.
  • Compromisso: Uma vez que um validador recebe mensagens de preparação suficientes, ele transmite uma mensagem de compromisso para sinalizar seu compromisso com o bloco proposto. Os validadores aguardam para receber 2F + 1 mensagens de compromisso para garantir o acordo antes de finalizar o bloco.

diagrama

Tolerância a Falhas e Segurança:

  1. O PBFT garante propriedades de segurança e vivacidade, assegurando que o sistema alcance o acordo sobre a ordem correta dos blocos e progrida mesmo na presença de falhas bizantinas. Tolerando até F nós defeituosos em uma rede de N = 3F + 1 validadores, o PBFT alcança resistência contra comportamentos maliciosos ou defeituosos.

Complexidade da Mensagem:

1.Um dos desafios com o PBFT é sua alta complexidade de mensagem. No caso normal, o PBFT requer N² mensagens para cada rodada de consenso, o que pode impactar a escalabilidade em redes de grande escala.

Parte 2: IBFT - Tolerância a Falhas Bizantinas de Istambul

O IBFT é um algoritmo de consenso inspirado no PBFT, projetado especificamente para redes blockchain. Ele visa abordar alguns dos desafios encontrados ao aplicar o PBFT em um contexto de blockchain.

Mecanismo de Consenso:

  1. O IBFT herda o mecanismo de consenso em três fases do PBFT: pré-preparação, preparação e compromisso. No entanto, há algumas diferenças notáveis:
  • Proposta de Bloco: No IBFT, um propositor é continuamente selecionado em cada rodada para criar uma proposta de bloco para consenso. Isso garante que a blockchain progrida com novos blocos verificáveis em vez de operações individuais de leitura/escrita.
  • Finalidade do Bloco: O IBFT garante a finalidade do bloco, o que significa que não há bifurcações e qualquer bloco válido deve existir na cadeia principal. Isso evita que nós maliciosos criem cadeias alternativas.
  • Prova de Consenso: O IBFT aproveita a prova de consenso, que inclui assinaturas de compromisso dos validadores. Essas assinaturas são anexadas ao campo extraData do bloco, tornando os blocos autoverificáveis e possibilitando o suporte para clientes leves.

Otimização e Eficiência:

1.O IBFT introduz técnicas de otimização para melhorar a eficiência do processo de consenso:

  • Redução da Complexidade da Mensagem: O IBFT otimiza a complexidade da mensagem permitindo que os validadores que recebem 2F + 1 mensagens de compromisso antes de 2F + 1 mensagens de preparação passem diretamente para o estado comprometido. Esta otimização acelera o processo de consenso.
  • No PBFT, a mensagem Nova-Vista (New-View) é usada para iniciar uma nova vista ou época (epoch) quando se suspeita que a réplica primária esteja defeituosa ou quando uma nova réplica primária precisa ser eleita. Esta mensagem permite que as réplicas coordenem e concordem com uma nova réplica primária para a próxima vista. Em contraste, o IBFT simplifica este processo usando um mecanismo de rodízio. Em um esquema de rodízio, o papel da réplica primária é rotacionado ciclicamente entre os nós participantes. Cada nó se reveza sendo a réplica primária para um determinado bloco ou rodada do processo de consenso. A abordagem de rodízio elimina a necessidade de mensagens de Nova-Vista explícitas e a complexidade associada à eleição da réplica primária.

Votação da Lista de Validadores:

1.O IBFT incorpora um mecanismo de votação de validadores semelhante ao Clique. Os validadores podem emitir votos para propor mudanças na lista de validadores, e as propostas que atingem o consenso da maioria entram em vigor.

diagrama

Comparação: PBFT vs. IBFT

  • No IBFT não há cliente submetendo requisições à rede, em vez disso, todos os validadores podem por sua vez propor um bloco à rede de validadores.
  • O IBFT permite dois tipos de nós: validadores que participam do protocolo de consenso e nós padrão que validam blocos, mas não participam do protocolo de consenso.

  • O conjunto de validadores no PBFT é estático, enquanto o IBFT apresenta um conjunto dinâmico de validadores, em que os validadores podem ser adicionados ou removidos do conjunto (os validadores podem ser votados para entrar e sair conforme necessário).

  • O IBFT especifica uma versão simplificada da chamada mensagem de Mudança de Visão do PBFT e não inclui a chamada mensagem de Nova Visão incluída no protocolo PBFT.

  • No IBFT, o conceito de pontos de verificação explícitos não é utilizado. No entanto, cada bloco IBFT pode ser visto como um equivalente a um ponto de verificação do PBFT. Isso significa que, ao completar cada bloco do IBFT, é alcançado um estado global estável, semelhante ao propósito de um ponto de verificação no PBFT.

Parte 3: QBFT — Tolerância a Falhas Bizantinas de Quorum

Um protocolo de consenso empresarial proeminente e recomendado, projetado para redes empresariais privadas, é a Tolerância a Falhas Bizantinas de Quorum (QBFT). O QBFT, desenvolvido pela ConsenSys em parceria com o JP Morgan, é uma extensão do algoritmo de consenso de Tolerância a Falhas Bizantinas de Istambul (IBFT), incorporando modificações e melhorias adaptadas para casos de uso empresariais.

Ele é implementado pela ConsenSys tanto no Quorum quanto no Besu. O Besu, um cliente Ethereum de código aberto desenvolvido sob o guarda-chuva Hyperledger, oferece robusto suporte para QBFT (e agora apoiado pela Web3 Labs por meio do nosso suporte Hyperledger Besu), permitindo que as organizações aproveitem suas características para construir e implantar blockchains privados seguros e escaláveis.

Visão geral das mensagens:

Formas de mensagens

  • Assinaturas - Todas as mensagens são assinadas pelo nó transmissor para prevenir comportamento bizantino
  • Especificidades de cada rodada - Cada mensagem específica a qual rodada se destina

Mensagens são cidadãs de primeira classe

  • Precisam ser ordenadas (anterior, atual, futuro)
  • Validadas
  • Espalhadas (gossipped)

Detalhes do cabeçalho do QBFT

  • Semelhante ao IBFT e ao IBFT2, o campo de dados extras do cabeçalho do bloco contém - dados codificados em RLP contendo selo, conjunto atual de validadores, rodada em que o bloco foi selado e, opcionalmente, um voto
  • O valor do mix hash é um valor fixo igual ao do IBFT
  • Ao contrário do IBFT, os campos de nonce e beneficiário não são usados

Validadores

  • Podem ser adicionados e removidos por votação
  • RPCs para adicionar e remover validadores
  • Cada validador mantém uma contagem de votos e inclui um voto quando propõe a próxima vez
  • Para alterar o conjunto de validadores, é necessário um quórum de votos (n/2) + 1

quorum

Em comparação com o IBFT, o QBFT é otimizado, modificado e aprimorado

  • Especificação Ambígua no IBFT: As especificações do IBFT têm sido ambíguas ou deixadas em aberto para interpretação devido ao uso de linguagem natural e pseudocódigo
  • Redução do número de mensagens trocadas — A complexidade da mensagem de Mudança de Rodada reduzida de n3 para n2
  • Prevenção de Forking de Cadeia: Forking de cadeia era possível no IBFT em diferentes cenários
  • Vivacidade fraca do IBFT: A produção de blocos poderia ficar bloqueada

Para ler mais sobre essas limitações e modificações, por favor, consulte este artigo.

PBFT, IBFT, QBFT são todos algoritmos de consenso tolerantes a falhas bizantinas que fornecem soluções robustas para alcançar o acordo em redes descentralizadas. Enquanto o PBFT serve como a fundação, o IBFT baseia-se nele, adaptando otimizações e melhorias especificamente para sistemas blockchain escaláveis. Construindo em cima do IBFT e resolvendo suas limitações atuais, o QBFT é o protocolo de consenso de nível empresarial recomendado, projetado para redes empresariais privadas, desenvolvido pela ConsenSys e apoiado pela Web3 Labs por meio do nosso suporte Hyperledger Besu.

Entender os mecanismos e diferenças entre PBFT, IBFT e QBFT capacita desenvolvedores e arquitetos de blockchain a tomar decisões informadas ao escolher o algoritmo de consenso apropriado para seus casos de uso específicos. Esses algoritmos de consenso desempenham um papel vital na garantia da integridade e confiabilidade dos sistemas descentralizados.

Na Web3 Labs, oferecemos suporte abrangente para QBFT/IBFT2 através do nosso programa de suporte Hyperledger Besu. Nossa expertise no desenvolvimento e implantação de blockchain nos permite auxiliar organizações na configuração e manutenção de infraestruturas de rede privada baseadas nos protocolos QBFT e IBFT2. Se você precisa de orientação na implementação ou suporte de produção para sua rede blockchain privada, nossa equipe está aqui para ajudar.



Esse artigo é uma tradução feita por @bananlabs. Você pode encontrar o artigo original aqui

Oldest comments (0)