O que é uma falha bizantina

De Área31 Hackerspace

Uma falha bizantina é uma condição de um sistema computacional, especificamente de sistemas de computação distribuída. Essa condição ocorre quando um ou mais componentes falham e não há informações precisas sobre se um componente falhou ou se as informações do sistema estão corretas.

Em uma falha bizantina, um componente como um servidor pode aparecer inconsistentemente, como falhar e trabalhar em sistemas de detecção de falhas. Isso ocorre porque o sistema apresenta sintomas diferentes em comparação com diferentes observadores. Nesse momento, é difícil para os outros componentes tomar a decisão de declarar que houve falha e excluí-la da rede. Bem, para isso, é necessário chegar a um consenso sobre qual componente falhou em primeiro lugar.

O termo leva o nome do nome conhecido "Problema dos generais bizantinos". Isso foi desenvolvido para descrever uma circunstância em que os atores devem concordar com uma estratégia ou consentimento para evitar falhas catastróficas do sistema. E eles também devem atingir esse objetivo, sabendo que, entre eles, pode haver atores não confiáveis.

O problema dos generais bizantinos foi descrito por Robert Shostak em 1978, no âmbito de um projeto do laboratório de Ciência da Computação da SRI International. Este projeto foi chamado SIFT, e teve o apoio da mesma agência aeroespacial NASA. O caso descrito representa em essência um problema de comunicação distribuída entre computadores. Nele, computadores focados em diferentes propósitos devem ser capazes de estabelecer comunicação em pares e chegar a um consenso. E eles devem ser capazes de fazê-lo, mesmo que alguns deles estejam danificados. Para entender melhor, vamos ver sua abordagem:

Vários generais do mesmo lado e seus exércitos estão localizados em diferentes extremos de uma cidade com a intenção de cercá-la. Para ter sucesso, eles precisam atacar a cidade de maneira coordenada para derrotar as defesas ou recuar de forma coordenada. No caso de não sincronizar suas ações, eles cairão diante das fortes forças inimigas. Para conseguir isso, os generais atacantes se comunicam através de mensageiros. Embora a cidade esteja cheia de inimigos, os mensageiros devem atravessar a cidade para ir de um acampamento para outro com ordens de ataque. A suposição indica que um mensageiro do exército informará outro da intenção de atacar ou não, e quando fazê-lo. À medida que recebem propostas, os generais os confirmam ou os rejeitam para estabelecer um acordo de votação sobre qual passo dar. Como você pode ver, o problema é que dentro da cidade inimigos poderiam capturar mensageiros. Se eles puderem ser interceptados, a mensagem pode ser modificado e, conseqüentemente, o ataque não seria realizado de maneira coordenada. Se não fossem executados de maneira coordenada, os exércitos atacantes seriam derrotados, fracassando em sua missão.

Por exemplo, se uma mensagem dos generais fosse "Ataque amanhã", O texto pode ser alterado adicionando" somente se chover "atrás. Desta forma, o outro exército pode pensar que está concordando em atacar apenas em caso de chuva, e confirmar a mensagem. Assim, o primeiro exército atacaria e o segundo não poderia e se retiraria se não chovesse.

Num conjunto de sistemas de computadores distribuídos com um objetivo comum, cada computador seria equivalente a um general e seu exército. E, portanto, a rede de dados seria análoga aos mensageiros que devem atravessar a cidade informando os generais.

As falhas bizantinas são consideradas as classe mais geral e mais complexa de falhas a serem resolvidas. Isto é assim porque o nó que falha na rede, pode estar gerando dados arbitrários e finge estar correto. As falhas bizantinas são capazes de confundir os sistemas de detecção de falhas. Apesar da analogia, uma falha bizantina não é necessariamente um problema de segurança que envolve interferência humana hostil: pode surgir aleatoriamente devido ao acúmulo de falhas elétricas.

Para explicar um pouco mais os efeitos e o escopo dessas falhas, explicaremos alguns casos conhecidos deles:

La NASA descobriu que uma das falhas da missão STS-124, estava envolvido o sistema de controle de combustível. Dos quatro sistemas de controle, os quatro forneceram informações erradas e completamente diferentes do sistema de controle. Porém, a falha não foi de programação, mas física. Isso se originou em um placa de controle que se comunicava com todos os quatro computadores. Uma rachadura em um diodo foi o que causou essa falha bizantina. A ruptura do diodo era culpada de transmogificação pela conversão de um diodo em um capacitor. Essa situação atrasou o lançamento do vaivém até que a falha fosse resolvida.

Se o sistema Shuttle não fosse tolerante a falhas bizantinas, essa falha teria sido desastrosa. Sem o controle do sistema de combustível, isso significaria que o ônibus explodiu. Essa falha é um exemplo claro de quão perigosas as falhas bizantinas podem ser e de quão difícil pode ser detectá-las ou evitá-las.

No caso de o blockchain Falhas bizantinas podem se apresentar no desempenho de nós não confiáveis ​​ou maliciosos. Se algum membro da comunidade enviar informações inconsistentes a outros sobre transações, a confiabilidade do blockchain será quebrada. Para resolver isso, PoW oferece mecanismos de tolerância a falhas bizantinas (BFT) para evitar esse problema.

Outro problema que surge no blockchain relacionado a falhas bizantinas são os casos de gastos duplos. El gastos duplos, é um ataque no qual um ator faz uso em duas ocasiões diferentes das mesmas criptomoedas. Nesse caso, a rede blockchain deve resistir ao fato de que a mesma criptomoeda é usada dessa maneira. Fazer isso é bastante complexo. Para conseguir isso, devem ser projetados mecanismos tolerantes a falhas bizantinas parciais ou completas.[1]


Referências:

Cookies nos ajudam a entregar nossos serviços. Ao usar nossos serviços, você concorda com o uso de cookies.