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.
Tolerância a Falhas e Segurança:
- 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:
- 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.
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
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
Top comments (0)