Tolerância a Falhas Bizantinas Explicada
O Problema dos Generais Bizantinos
O problema dos Generais Bizantinos explica as dificuldades das partes descentralizadas em alcançar um consenso quando não há uma autoridade central para fazer cumprir as regulamentações e supervisionar os participantes. Devido a falhas técnicas ou desinformação, os componentes podem falhar em alcançar um acordo. Este é o problema: " Imaginamos várias divisões do exército bizantino acampadas fora de uma cidade inimiga, cada divisão comandada por seu próprio general. Os generais só podem se comunicar entre si por mensageiro. Após observar o inimigo, eles devem decidir sobre um plano de ação comum. No entanto, alguns generais podem ser traidores, tentando impedir que os generais leais cheguem a um acordo. Os generais devem ter um algoritmo para garantir que (A) Todos os generais leais decidam sobre o mesmo plano de ação e (B) Um pequeno número de traidores não possa fazer com que os generais leais adotem um plano ruim " ( O Problema dos Generais Bizantinos, 1982 ). Marshall Pease, Robert Shostak e Leslie Lamport propuseram o Problema dos Generais Bizantinos em 1982, "expresso abstratamente em termos de um conjunto de generais do exército bizantino acampando com seus soldados ao redor de uma cidade inimiga."
:quality(80)/2022-10-20/661795FBE7E7C417B2168C1195FCD136.jpg)
Formação do Problema Bizantino
No cenário abaixo, um dos comandantes ou o Tenente é um traidor, impedindo que o grupo chegue a um consenso. Considere o traidor uma parte maliciosa tentando facilitar transações fraudulentas no contexto de um registro financeiro.
:quality(80)/2022-10-20/7A1C4F862FD9EEF51CF839BC0866CB0E.jpg)
À medida que o número de partes no sistema cresce, também crescem o número de rotas de comunicação e o potencial de desconfiança e desinformação. Considere a dificuldade de chegar a um acordo com milhares ou milhões de tenentes ou generais envolvidos. Esta é a dificuldade enfrentada pelos nós que governam um sistema descentralizado, que surgiu no desenvolvimento de modelos de Tolerância a Falhas Bizantinas para resolver este problema.
Tolerância a Falhas Bizantinas Explicada
Tolerância a Falhas Bizantinas (BFT) é uma característica de sistemas descentralizados e sem permissão que podem detectar e rejeitar com sucesso informações falsas ou imprecisas. Em um sistema de Tolerância a Falhas Bizantinas, qualquer parte pode ingressar na rede de forma peer-to-peer sem uma autoridade central governando e controlando a rede de participantes. Sistemas de Tolerância a Falhas Bizantinas são descentralizados e sem permissão, qualquer um pode fazer parte da rede. Sem a Tolerância a Falhas Bizantinas, qualquer participante da rede poderia enviar informações falsas, comprometendo sua confiabilidade. No contexto da rede blockchain Bitcoin, cada participante é chamado de nó, um nó pode rapidamente se juntar à rede Bitcoin e começar a transmitir blocos e transações. O sistema tolerante a falhas bizantinas aplicável em blockchains é a solução para o Problema dos Generais Bizantinos.
Como a Tolerância a Falhas Bizantinas se relaciona com Blockchain?
A tecnologia blockchain é usada para validar, processar e registrar transações em criptomoedas. Um grupo de nós deve concordar que uma transação é válida antes que ela possa ser concluída. Cada rede blockchain tem um algoritmo de consenso, que é o conjunto de regras que seus nós usam para concordar com as transações. Uma rede blockchain é composta por nós que estão conectados peer-to-peer. Um nó blockchain é qualquer participante da rede que se conecta à rede usando qualquer dispositivo (computador). Os nós blockchain se comunicam entre si de forma descentralizada por meio de um consenso. Em uma blockchain totalmente descentralizada, nenhum nó tem mais poder que outros nós. Os nós na rede blockchain usam um consenso para chegar a um acordo. No contexto dos sistemas de Tolerância a Falhas Bizantinas, o consenso é o "acordo dos Generais". Consenso é a tarefa mais vital e mais desafiadora em um sistema descentralizado sem autoridade central governando a rede. Para que uma transação em uma blockchain descentralizada seja bem-sucedida, a maioria dos nós deve concordar com a validade da transação, garantindo a operação efetiva e a transparência da rede blockchain.
Nós bizantinos são nós maliciosos em uma blockchain que tentam interromper o sistema. Esses nós são comumente referidos como nós traidores porque podem intencionalmente enganar outros nós na rede para roubar do sistema (gasto duplo) ou simplesmente interromper o sistema. Uma rede blockchain adequadamente operacional garantiria que a Tolerância a Falhas Bizantinas da blockchain a ajude a superar falhas.
Tolerância a Falhas Bizantinas Prática e Assíncrona
A Tolerância a Falhas Bizantinas Prática (pBFT) é um modelo que fornece replicação prática de máquina de estado bizantina para superar as limitações dos sistemas de tolerância a falhas bizantinas. Ao fazer a suposição de que existem falhas independentes de nós e mensagens manipuladas perpetuadas por nós independentes específicos, o pBFT resolve falhas bizantinas. O modelo pBFT foi desenvolvido exclusivamente para resolver os problemas e deficiências das soluções de tolerância bizantina que já estavam disponíveis. Blockchains e computação distribuída são a principal aplicação dos modelos de Tolerância a Falhas Bizantinas Prática (pBFT). Os modelos de Tolerância a Falhas Bizantinas Prática reduzem a influência de nós maliciosos, protegendo um sistema descentralizado de falhas e paralisações. O algoritmo é de alto desempenho e é otimizado para trabalhar em sistemas assíncronos com apenas um leve aumento na latência.
Uma característica do modelo de Tolerância a Falhas Bizantinas é chamada de tolerância a falhas bizantinas assíncrona (aBFT). Sistemas de Tolerância a Falhas Bizantinas Assíncrona (aBFT) permitem que nós de rede confiáveis garantam que concordarão com o tempo e sequenciamento de um conjunto de transações de maneira justa e segura. A propriedade 'assíncrona' da tolerância a falhas bizantinas supera os desafios de tempo dos sistemas de tolerância a falhas bizantinas. Nos sistemas tradicionais de tolerância a falhas bizantinas, ao alcançar um consenso, os nós fazem uma suposição de que existe um limite máximo de latência de mensagem. Essa suposição de tempo nos sistemas de tolerância a falhas bizantinas que faz com que algumas mensagens sejam perdidas ou atrasadas indefinidamente é eliminada pela rede de tolerância a falhas bizantinas assíncrona (aBFT).