Principais conclusões
Tolerância a falhas bizantinas (BFT) é uma propriedade que permite que sistemas distribuídos, incluindo blockchains, continuem funcionando mesmo quando alguns nós falham ou agem de forma desonesta.
O conceito vem do Problema dos Generais Bizantinos, uma experiência de pensamento sobre como agentes independentes podem chegar a um acordo quando alguns podem não ser confiáveis.
A maioria das blockchains usa um algoritmo de consenso como prova de trabalho ou prova de participação para alcançar TFB e manter a rede segura.
Em geral, a rede precisa que pelo menos dois terços de seus participantes sejam honestos para que a TFB se sustente.
Introdução
Desde que o Bitcoin foi lançado em 2008 como um sistema de dinheiro eletrônico ponto a ponto, as blockchains dependem de uma propriedade-chave: a capacidade de chegar a um acordo entre muitos participantes independentes sem confiar em nenhum deles individualmente. Isso é mais difícil do que parece, especialmente quando alguns participantes podem se comportar de maneira imprevisível ou desonesta.
O conceito que aborda esse desafio se chama tolerância a falhas bizantinas. Entendê-lo ajuda a explicar por que redes de blockchain podem funcionar com segurança mesmo na presença de agentes maliciosos ou falhas de hardware.
O que é o Problema dos Generais Bizantinos?
O Problema dos Generais Bizantinos foi descrito pela primeira vez em 1982. Ele usa um experimento de pensamento militar para ilustrar a dificuldade de chegar a um acordo em um sistema distribuído quando alguns participantes não podem ser confiados.
Imagine um grupo de generais, cada um comandando um exército separado, cercando uma cidade. Eles precisam concordar em um plano: atacar juntos ou recuar juntos. Se agirem de forma independente, eles perdem. O problema é que eles só podem se comunicar por meio de mensageiros, e alguns generais podem ser traidores que enviam mensagens conflitantes ou falsas.
O desafio central é: como os generais leais podem concordar em um plano quando não conseguem identificar quem está mentindo? No contexto de blockchain, cada general representa um nó da rede, e a decisão de "atacar ou recuar" é substituída por um acordo sobre quais transações são válidas.
A conclusão da pesquisa original é que um sistema TFB requer que pelo menos dois terços dos participantes sejam honestos. Se um terço ou mais forem falhos ou maliciosos, torna-se impossível chegar a um consenso confiável.
Tolerância a Falhas Bizantinas (BFT)
Tolerância a falhas bizantinas é a propriedade de um sistema que pode continuar operando corretamente mesmo quando alguns componentes falham ou se comportam de forma maliciosa. Um sistema TFB consegue tolerar um certo número de nós defeituosos sem comprometer a integridade de toda a rede.
Na prática, isso significa que um blockchain TFB pode lidar com cenários em que nós travam, perdem conectividade, enviam mensagens duplicadas ou tentam deliberadamente manipular a rede. O sistema chega ao resultado correto desde que a proporção de nós defeituosos permaneça abaixo do limite aceitável.
Existem várias maneiras de construir um sistema TFB. A abordagem que uma blockchain adota depende de suas prioridades de design, como velocidade, descentralização e segurança. Isso leva ao desenvolvimento de diferentes algoritmos de consenso.
Algoritmos de Consenso de Blockchain
Um algoritmo de consenso é o mecanismo que uma blockchain usa para concordar com o estado do livro-razão (ledger). As abordagens mais comuns são prova de trabalho (PoW) e prova de participação (PoS).
O Bitcoin usa PoW, que foi adaptado por Satoshi Nakamoto no que ficou conhecido como consenso de Nakamoto. Nesse modelo, os nós competem para resolver um quebra-cabeça computacionalmente caro para adicionar um novo bloco. O custo desse trabalho torna economicamente inviável que um agente mal-intencionado reescreva a cadeia sem controlar mais de metade do poder de computação total. Esse tipo de ataque é chamado de ataque de 51%.
A PoW não é 100% imune a falhas bizantinas, mas o custo da mineração e a segurança criptográfica da cadeia a tornaram altamente confiável na prática.
A PoS alcança objetivos semelhantes de maneiras diferentes. Em vez de trabalho computacional, validadores depositam criptomoeda como garantia. Comportamento desonesto pode resultar em perder essa garantia, o que cria um forte incentivo econômico para a participação honesta.
A Ethereum mudou para PoS em 2022, e seu mecanismo de finalização se baseia em princípios de BFT usados em protocolos como o Tendermint. Esses protocolos permitem que uma rede confirme blocos como finais assim que um número suficiente de validadores tiver assinado, melhorando tanto a velocidade quanto a segurança em comparação com a finalização probabilística em cadeias PoW.
FAQ
O que significa tolerância a falhas bizantinas?
Tolerância a falhas bizantinas significa que um sistema pode continuar funcionando corretamente mesmo que alguns de seus componentes se comportem de maneira imprevisível ou desonesta. Em blockchain, isso significa que a rede consegue chegar a um consenso sobre transações válidas, mesmo que alguns nós enviem informações falsas ou conflitantes.
Por que se chama tolerância a falhas bizantinas?
O nome vem do Problema dos Generais Bizantinos, uma experiência de pensamento de 1982 que usou uma história sobre generais militares para descrever o desafio de chegar a um acordo quando alguns participantes não podem ser confiados. O termo "bizantino" na computação se refere a falhas arbitrárias ou maliciosas, em contraste com falhas simples por travamento (crash).
Quanto de uma rede precisa ser honesta para que a TFB funcione?
Em geral, um sistema TFB exige que pelo menos dois terços dos participantes se comportem honestamente. Se um terço ou mais da rede agir de forma maliciosa ou falhar, a maioria dos protocolos TFB já não consegue garantir um resultado correto. Esse limite varia ligeiramente dependendo do protocolo de consenso específico usado.
A prova de trabalho é tolerante a falhas bizantinas?
A prova de trabalho não é perfeitamente tolerante a falhas bizantinas, mas alcança resiliência prática pelo alto custo de mineração. Um atacante precisaria controlar mais de 50% do poder de computação total da rede para manipular a cadeia de forma consistente, o que torna esse tipo de ataque caro e difícil de sustentar.
Considerações Finais
A tolerância a falhas bizantinas é um conceito fundamental no design de blockchain. Ela explica por que redes como Bitcoin e Ethereum podem funcionar de forma confiável mesmo em um ambiente em que os participantes são anônimos e alguns podem tentar trapacear. Seja por prova de trabalho, prova de participação (proof-of-stake) ou por protocolos TFB mais novos usados em cadeias modernas, o objetivo é o mesmo: permitir que nós independentes concordem sobre a verdade sem precisar confiar um no outro individualmente.
Leitura adicional
O que é um algoritmo de consenso de blockchain?
O que é Prova de Trabalho (PoW)?
O que é Prova de Participação (PoS)?
O que é um ataque de 51%?
Aviso: Este conteúdo é fornecido a você com base em um formato "como está" apenas para informações gerais e fins educacionais, sem qualquer declaração ou garantia de qualquer tipo. Isso não deve ser interpretado como aconselhamento financeiro, jurídico ou de outro tipo profissional, nem como uma recomendação para comprar qualquer produto ou serviço específico. Você deve buscar aconselhamento por conta própria junto a profissionais adequados. Quando o conteúdo for contribuído por um terceiro, observe que as opiniões expressas pertencem ao contribuinte terceiro e não necessariamente refletem as da Binance Academy. Os preços de ativos digitais podem ser voláteis. O valor do seu investimento pode subir ou descer e você pode não conseguir recuperar o valor investido. Você é o único responsável por suas decisões de investimento e a Binance Academy não se responsabiliza por quaisquer perdas que você possa incorrer. Para obter mais informações, consulte nossos Termos de Uso, Aviso de Risco e os Termos da Binance Academy.
