O que é Byzantine Fault Tolerance?
P√°gina Inicial
Artigos
O que é Byzantine Fault Tolerance?

O que é Byzantine Fault Tolerance?

Avançado
Publicado em Dec 6, 2018Atualizado em Aug 17, 2023
5m
Desde a cria√ß√£o do¬†Bitcoin em 2008, como um sistema peer-to-peer (ponto-a-ponto) de dinheiro eletr√īnico, v√°rias outras criptomoedas foram criadas, cada uma com um mecanismo particular. Mas algo que quase todas elas t√™m em comum √© uma rede Blockchain como elemento central da sua arquitetura.

Com algumas exce√ß√Ķes, as redes Blockchains s√£o intencionalmente desenvolvidas para serem descentralizadas, funcionando como um livro digital que √© mantido por uma rede distribu√≠da de nodes (n√≥s) representados por computadores. Por essa raz√£o, a tecnologia Blockchain permitiu a cria√ß√£o de um sistema econ√īmico onde transa√ß√Ķes financeiras s√£o transparentes e confi√°veis sem a necessidade de intermedi√°rios. As criptomoedas conseguem cada vez mais espa√ßo ao se apresentarem como uma alternativa ao sistema banc√°rio tradicional, que √© muito dependente da confian√ßa depositada em terceiros.

Na maioria dos sistemas distribuídos de computadores, os participantes de uma rede de criptomoedas precisam concordar de forma regular com o estado atual das suas Blockchains, e isso é o que chamamos de atingir um consenso. Entretanto, chegar ao consenso em redes distribuídas, de uma forma segura e confiável, está muito longe de ser uma tarefa fácil.

Portanto, como uma rede distribu√≠da de computadores pode chegar em uma decis√£o, se alguns nodes est√£o fadados √† agir de forma falha ou desonestamente? Essa √© uma quest√£o fundamental do conhecido problema dos Byzantine Generals (Generais Bizantinos), que deu origem ao conceito de Byzantine Fault Tolerance (BFT) - ou Toler√Ęncia a Falhas Bizantinas em Portugu√™s.

 

O que é o problema dos generais bizantinos?

Resumidamente, ele foi concebido em 1982 como um dilema de lógica que ilustrava como um grupo de generais Bizantinos poderiam ter dificuldades de comunicação na tentativa de chegar à um acordo para o próximo movimento de guerra.

O dilema assume que cada general tem seu próprio exército e que cada grupo está situado em locais diferentes ao redor da cidade que desejam atacar. Os generais precisam entrar em acordo para saber quando atacar ou recuar. Não importa se estão atacando ou recuando, é necessário que todos eles entrem em acordo, por exemplo, para chegar ao consenso na execução das táticas em conjunto.

 

Portanto, devemos considerar os seguintes objetivos: 

  • Cada general precisa decidir: atacar ou recuar (sim ou n√£o);

  • Ap√≥s ter tomado a decis√£o, ela n√£o pode ser mudada;

  • Todos os generais precisam concordar com a mesma t√°tica e execut√°-la de forma sincronizada.

 

Os problemas de comunicação já mencionados estão relacionados ao fato de que um general só consegue se comunicar com outro por meio de mensagens, que são entregues por correio. Consequentemente, o desafio central do Byzantine General’s Problem é de que as mensagens podem de alguma forma atrasar, serem destruídas ou perdidas.

Além disso, mesmo que uma mensagem seja entregue com sucesso, um ou mais generais podem escolher (por qualquer motivo) agir de forma maliciosa ou enviar uma mensagem fraudulenta para confundir outros generais, levando a um desastre total.

Se aplicarmos esse dilema ao contexto das redes Blockchain, cada general representa um nó na rede e os nodes precisam chegar num consenso quando se trata do estado atual do sistema. Colocando de outra forma, a maioria dos participantes dentro de uma rede distribuída precisa concordar com um mesmo processo para evitar uma falha generalizada.

Entretanto, a √ļnica forma de atingir um consenso nesses tipos de sistemas distribu√≠dos √© tendo pelo menos ‚ÖĒ ou mais de nodes na rede que sejam confi√°veis e honestos. Isso significa que se a maioria da rede decide agir de forma maliciosa, o sistema ficar√° suscet√≠vel √† falhas e ataques (como o Ataque de 51%).

 

Byzantine Fault Tolerance

Em poucas palavras, o BFT é a propriedade que um sistema tem de resistir a vários tipos de falhas que podem ser causadas pelo dilema dos generais bizantinos. Isso significa que um sistema BFT é capaz de continuar operando mesmo que alguns nodes da rede se comportem de forma falha ou maliciosa.

Existem várias formas de resolver o problema dos generais bizantinos e, portanto, vários métodos de se construir um sistema BFT. De forma parecida, muitas abordagens podem ser exploradas para que um sistema Blockchain possa fazer o BFT funcionar corretamente, levando-nos ao tão desejado algoritmo de consenso.

 

Algoritmo de consenso Blockchain

Podemos definir o algoritmo de consenso como um mecanismo pelo qual cada rede Blockchain atinge um acordo no estado da mesma. As implementa√ß√Ķes mais conhecidas s√£o o¬†Proof of Work(PoW) e¬†Proof of Stake(PoS). Mas vamos usar o caso do Bitcoin como exemplo.

Enquanto o protocolo do Bitcoin prescreve as regras prim√°rias do sistema, o algoritmo de consenso PoW √© quem define como essas regras v√£o ser seguidas na tentativa de chegar ao consenso (por exemplo, durante a verifica√ß√£o e valida√ß√£o de transa√ß√Ķes).

Embora o conceito de PoW seja muito antigo nas criptomoedas, Satoshi Nakamoto desenvolveu uma versão modificada que possibilitou a criação do Bitcoin como um sistema BFT.

Note que o algoritmo PoW n√£o √© 100% tolerante √†s falhas bizantinas, mas diante do custo intensivo do processo de¬†minera√ß√£o e das subjacentes t√©cnicas criptogr√°ficas, o PoW j√° provou que √© uma das mais seguras e confi√°veis implementa√ß√Ķes para redes Blockchain. Nesse aspecto, o algoritmo de consenso PoW, desenvolvido por Satoshi Nakamoto, √© considerado por muitos a solu√ß√£o de um g√™nio para resolu√ß√£o do problema Bizantino.

 

Considera√ß√Ķes finais

O problema dos Bizantinos √© um dilema intrigante que eventualmente deu origem aos sistemas BFT, os quais s√£o aplicados em v√°rios cen√°rios. Al√©m do mundo Blockchain, o sistema BFT √© usado em ind√ļstrias de avia√ß√£o, espa√ßo e usinas nucleares.

No contexto das criptomoedas, ter uma rede de comunica√ß√£o eficiente junto com um bom mecanismo de consenso √© algo vital para qualquer ecossistema Blockchain. Fazer desses sistemas seguros √© um esfor√ßo cont√≠nuo e v√°rios algoritmos de consenso em exist√™ncia ainda n√£o transcenderam algumas limita√ß√Ķes (como a escalabilidade). No entanto, os algoritmos PoW e PoS s√£o abordagens interessantes ao funcionar como sistemas BFT, e as poss√≠veis aplica√ß√Ķes certamente inspiram inova√ß√Ķes de forma generalizada.

Compartilhar publica√ß√Ķes
Registre uma conta
Coloque seus conhecimentos em pr√°tica. Abra uma conta na Binance hoje mesmo.