WEB3DEV

Cover image for O que é Tolerância a Falhas Bizantinas (BFT) em Blockchain explicado
Diogo Jorge
Diogo Jorge

Posted on

O que é Tolerância a Falhas Bizantinas (BFT) em Blockchain explicado

Aprenda sobre o BFT, problema clássico dos generais e suas soluções: PBFT e FBA

Image description

Crédito —Sam Stoney

A tecnologia Blockchain está rapidamente se tornando uma solução popular para criar sistemas seguros e descentralizados que permitem interações ponto a ponto sem precisar de confiança. Esses sistemas normalmente dependem de redes distribuídas de nós para validar transações e manter a integridade da blockchain. No entanto, em um sistema distribuído, é possível que alguns nós sejam defeituosos ou maliciosos, o que pode levar à transmissão de informações incorretas ou conflitantes pela rede.

Isso pode causar problemas significativos para alcançar o consenso, o que é essencial para manter a integridade da blockchain. Os algoritmos de tolerância a falhas bizantinas (BFT) são projetados para permitir que sistemas distribuídos tolerem nós defeituosos ou maliciosos, mantendo o consenso entre os nós restantes.

TLDR; Não tem tempo para ler? Aqui está um vídeo para ajudá-lo a entender o que é tolerância a falhas bizantinas em blockchain, problema clássico de generais e suas soluções: PBFT e FBA em detalhes.

video

O que é tolerância a falhas bizantinas?

Tolerância a falhas bizantinas é uma propriedade de um sistema distribuído que permite que ele funcione corretamente mesmo se alguns dos nós da rede estiverem com defeito ou maliciosos. Uma falha bizantina é uma falha na qual um nó em um sistema distribuído fornece informações incorretas ou enganosas para outros nós.

Em uma falha bizantina, não é possível distinguir entre nós defeituosos e nós que estão fornecendo informações corretas. Os algoritmos BFT são projetados para tolerar falhas bizantinas, garantindo que o sistema possa chegar a um consenso, mesmo que alguns nós forneçam informações incorretas.

Os algoritmos BFT funcionam dividindo os nós da rede em grupos e exigindo que eles troquem mensagens entre si. Ao trocar mensagens, os nós podem validar as informações fornecidas por outros nós e garantir que todos os nós concordem com o estado atual do sistema. Existem vários algoritmos BFT que são comumente usados ​​na tecnologia blockchain, incluindo Tolerância Prática a Falhas Bizantinas (PBFT), Acordo Federado Bizantino (FBA), e outros.

O Clássico Problema dos Generais Bizantinos

O clássico Problema dos Generais Bizantinos é um problema bem conhecido em sistemas distribuídos que ilustra os desafios de alcançar consenso em uma rede com nós defeituosos ou maliciosos. O problema é o seguinte: um grupo de generais bizantinos está cercando uma cidade e deve coordenar seu ataque. Os generais só podem se comunicar por meio de mensageiros, e alguns dos mensageiros podem ser traidores que enviarão informações falsas aos outros generais.

Image description

Nesse cenário, os generais devem concordar com um plano de ataque, mas não podem confiar nas informações fornecidas por seus mensageiros. Se muitos mensageiros forem traidores, os generais podem não ser capazes de coordenar seu ataque de forma eficaz e o ataque pode falhar.

Esse problema é semelhante aos desafios enfrentados pelas redes blockchain, onde os nós devem concordar com o estado atual da rede, mas alguns nós podem ser defeituosos ou maliciosos.

Tolerância Prática a Falhas Bizantinas (PBFT)

A tolerância prática a falhas bizantinas (PBFT) é um dos algoritmos BFT mais conhecidos usados ​​na tecnologia blockchain. O PBFT foi projetado para ser rápido e eficiente, ao mesmo tempo em que oferece forte tolerância a falhas bizantinas. No PBFT, os nós são divididos em três grupos: um nó líder, um conjunto de nós réplica e um conjunto de nós clientes.

O nó líder é responsável por propor novas transações ou blocos à rede. Os nós de réplica são responsáveis ​​por validar a proposta trocando mensagens entre si. Se dois terços dos nós de réplica concordarem com a proposta, ela é considerada validada e o nó líder a adiciona à blockchain.

O PBFT garante que todos os nós da rede tenham uma cópia da blockchain e possam validar novas transações e blocos antes de serem adicionados à blockchain.

Uma das principais vantagens do PBFT é que ele fornece forte tolerância a falhas bizantinas, o que significa que pode tolerar um grande número de nós defeituosos ou maliciosos. Além disso, o PBFT é relativamente rápido em comparação com outros algoritmos de consenso, pois requer apenas algumas rodadas de comunicação entre os nós antes que o consenso possa ser alcançado.

Desvantagens do PBFT

Apesar de suas muitas vantagens, o PBFT tem várias limitações. Uma das principais desvantagens do PBFT é que ele requer um alto nível de conectividade de rede entre os nós. Se os nós não conseguirem se comunicar uns com os outros de forma rápida e confiável, o consenso pode não ser alcançado e a rede pode se tornar fragmentada.

Além disso, o PBFT não é adequado para redes com um grande número de nós, pois o número de mensagens necessárias para alcançar o consenso aumenta exponencialmente à medida que o número de nós na rede cresce.

Acordo Bizantino Federado (FBA)

Federated Byzantine Agreement (FBA) é um algoritmo BFT projetado para ser mais flexível e escalável do que o PBFT. O FBA é baseado na ideia de federar grupos de nós em sub-redes menores, cada uma com seu próprio mecanismo de consenso. Os nós em uma sub-rede se comunicam entre si para chegar a um consenso sobre o estado da rede e, em seguida, as sub-redes se comunicam entre si para chegar a um acordo sobre um estado global.

O FBA foi projetado para ser mais flexível do que o PBFT porque permite que os nós escolham em quais sub-redes desejam ingressar.

Os nós podem optar por ingressar em várias sub-redes ou apenas uma, dependendo de suas necessidades e recursos.

Além disso, o FBA foi projetado para ser mais escalável do que o PBFT porque não exige que todos os nós se comuniquem diretamente entre si. Em vez disso, os nós se comunicam com um subconjunto de outros nós, reduzindo a quantidade de comunicação necessária para chegar a um consenso.

Limitações do FBA

Embora o FBA tenha muitas vantagens sobre o PBFT, ele também apresenta algumas limitações. Uma das principais limitações do FBA é que ele é mais complexo que o PBFT, pois requer nós para gerenciar várias sub-redes e mecanismos de consenso. Isso pode dificultar a implementação e manutenção, especialmente para redes menores com recursos limitados.

Além disso, o FBA ainda é uma tecnologia relativamente nova e há uma experiência limitada no mundo real com seu uso em redes blockchain de larga escala. Como resultado, ainda não está claro o desempenho do FBA na prática, particularmente em redes com um grande número de nós ou em redes com altos níveis de congestionamento de rede.

PBFT vs FBA: uma comparação tabular

Para resumir as diferenças entre PBFT e FBA, compilamos uma tabela de comparação abaixo:

Image description

Conclusão

A tolerância a falhas bizantinas é uma propriedade essencial para criar redes blockchain seguras e descentralizadas. PBFT e FBA são dois algoritmos BFT populares que oferecem diferentes vantagens e limitações.

O PBFT é adequado para redes com um número menor de nós e alta conectividade de rede, enquanto o FBA é mais escalável e flexível, mas mais complexo de implementar e manter.

Por fim, a escolha de qual algoritmo BFT usar dependerá das necessidades e recursos específicos da rede blockchain.

Você também pode gostar destesdesses artigos:

4 principais certificações Blockchain para iniciantes

Web3 Tech Stack para iniciantes explicado

O que é Blockchain Layer 0, 1, 2, 3 explicado

Este artigo foi escrito por Learn With Whiteboard e traduzido por Diogo Jorge. O artigo original pode ser encontrado aqui.

Top comments (0)