Glossário

Problema dos Generais Bizantinos

Hard

Uma situação em que a comunicação exige consenso sobre uma única estratégia de todos os membros de um grupo ou partes, no entanto, esta não é confiável ou verificada.

Qual é o Problema dos Generais Bizantinos?

O Problema dos Generais Bizantinos é um experimento mental que lida com uma questão-chave da ciência da computação: é possível formar um consenso em uma rede de computadores composta por nós independentes geograficamente distribuídos?

O problema foi proposto em 1982 por pesquisadores do SRI International Research Institute.

Ocorre da seguinte forma: há vários generais bizantinos sitiando uma cidade. Eles só podem se comunicar enviando mensageiros um para o outro. Os generais devem concordar com um plano de ação comum: atacar a cidade ou recuar. No entanto, alguns dos generais são traidores e trabalham ativamente contra a formação de um consenso; seu número e identidades são desconhecidos.

A questão colocada pelo problema é qual algoritmo de tomada de decisão os generais devem usar para elaborar um plano comum - independentemente da interferência dos traidores - e se tal algoritmo existe.

De acordo com a própria análise dos pesquisadores, tal sistema é realmente viável, mas o número de generais leais deve exceder estritamente dois terços. Por exemplo, numa situação com três generais, um dos quais traidor, os leais nunca podem garantir que conseguirão chegar a um consenso.

Esse problema é altamente relevante para as criptomoedas, pois são, em essência, sistemas de computador distribuídos: são compostos de nós de processamento de transações independentes entre si e de qualquer autoridade central e podem se comunicar apenas remotamente. Eles são os "generais" que precisam chegar a um consenso sobre quais transações ocorreram e quando.
Os nós têm o potencial de fornecer dados incorretos sobre transações por escolha ou por acidente, e suas informações devem ser classificadas. O Bitcoin (BTC) e outras criptomoedas resolvem esse problema por meio de soluções técnicas, como o algoritmos proof-of-work e proof-of-stake.