O Problema dos Generais Bizantinos, também conhecido como o Problema dos Dois Generais, foi proposto no artigo de Leslie Lambert sobre a tolerância a falhas das comunicações de rede distribuídas ponto a ponto em 1982. Na comunicação do sistema distribuído, alguns problemas locais podem fazer com que o computador envie mensagens de erro e destrua a consistência do sistema. Portanto, o Problema dos Generais Bizantinos é essencialmente um problema de consenso na comunicação ponto a ponto.
O Problema dos Generais Bizantinos teve origem na Idade Média. Devido ao vasto território de Bizâncio, a comunicação entre exércitos só pode contar com mensageiros. Se houver um traidor deliberadamente deturpando a informação dos líderes do exército, isso levará a planos operacionais inconsistentes, resultando nas “falhas bizantinas”.
Para resolver este problema, existem duas soluções: uma é enviar mensageiros entre si por acordo oral, e chegar a um consenso por maioria simples, mas é difícil distinguir os potenciais traidores; o segundo é enviar mensageiros sob a forma de acordos escritos para entregar mensagens escritas com assinaturas exclusivas, que devem ser secundadas por cada exército, mas se a transmissão for muito lenta, as assinaturas podem ser perdidas. Como as duas soluções só podem resolver parte do problema, e leva muito tempo e recursos para chegar a um consenso, não são úteis.
O Problema dos Generais Bizantinos na Internet significa que no processo de transmissão de canais, pode ser difícil para alguns nós conseguir a sincronização da informação devido à carga de trabalho excessiva ou a alguns ataques mal-intencionados. Em 1999, Miguel Castro e Barbara Liskov propuseram a Tolerância Bizantina a Falhas (BFT). Acreditavam que se dois terços dos nós no sistema funcionassem normalmente, a consistência e correção do sistema poderiam ser garantidas. Mais tarde, Satoshi Nakamoto propôs o mecanismo de prova do trabalho (PoW) e o algoritmo criptográfico assimétrico da Bitcoin, que forneceu uma nova solução para o Problema dos Generais Bizantinos.
Suponhamos que existem n generais e t traidores. Digo n=3, t=1, então um de A, B e C é um traidor. Se A emitir o comando [ataque], mas o traidor B diz a C para [recuo], então C não pode fazer um julgamento; Se o traidor B enviar o comando [ataque] para A e [retiro] comando para C, então A e C não podem chegar a um acordo. Portanto, quando o número de traidores é maior ou igual a 1/3, o Problema dos Generais Bizantinos não pode ser resolvido.
Da mesma forma, partindo do princípio que o número total de nós de rede é N e o número de nós mal-intencionados é T, o problema só pode ser resolvido quando N> =3T+1, ou seja, o número de nós normais na rede é pelo menos (2/3) N, para garantir a consistência da informação. Em uma comunicação de rede fiável, a Tolerância a Falhas Bizantina pode resolver o problema de falha nos nós até certo ponto, para que o sistema possa chegar a um consenso.
Imagine que o geral A primeiro emite o comando [attack] e anexa a sua assinatura. Depois de o receberem, se outros generais também planeiam atacar, eles seguirão o comando [ataque] e a sua assinatura depois do comando do general A. Se A não executar o comando [ataque] depois de A enviá-lo, outros generais podem julgar A como traidor e usá-lo para distinguir a informação certa.
Da mesma forma, vários nós participantes terão um resultado através de uma série de trabalho e o primeiro nó que receber o resultado transmitirá para toda a rede. Se o resultado estiver correto, os outros nós adicionarão o resultado nos seus próprios registos para se prepararem para o cálculo a fim de ganhar o direito de gravar transações na blockchain.
Um hacker deve ter mais de 51% de poder computacional para destruir a segurança da rede ou publicar blocos falsos. O custo é muito maior que o retorno. Portanto, este mecanismo pode reduzir a possibilidade de informações falsas e fazer o sistema chegar a um consenso mais rápido.
A encriptação e descriptografia dos algoritmos de chaves assimétricas precisam de duas chaves secretas separadas - chave pública e chave privada, que normalmente aparecem em pares. Se A quiser enviar uma mensagem para B, A precisa da chave pública de B para criptografar a informação, e B precisa da sua própria chave privada para descriptografar a informação. Se B quiser mostrar a sua identidade, pode assinar a chave particular, escrever um “texto de assinatura” e transmiti-lo. Outros podem verificar a sua identidade de acordo com a chave pública de B.
Porque a identidade e a assinatura não podem ser falsificados, os algoritmos de chaves assimétricas asseguram a privacidade da transmissão e a assinatura confiável.
O Problema dos Generais Bizantinos, também conhecido como o Problema dos Dois Generais, foi proposto no artigo de Leslie Lambert sobre a tolerância a falhas das comunicações de rede distribuídas ponto a ponto em 1982. Na comunicação do sistema distribuído, alguns problemas locais podem fazer com que o computador envie mensagens de erro e destrua a consistência do sistema. Portanto, o Problema dos Generais Bizantinos é essencialmente um problema de consenso na comunicação ponto a ponto.
O Problema dos Generais Bizantinos teve origem na Idade Média. Devido ao vasto território de Bizâncio, a comunicação entre exércitos só pode contar com mensageiros. Se houver um traidor deliberadamente deturpando a informação dos líderes do exército, isso levará a planos operacionais inconsistentes, resultando nas “falhas bizantinas”.
Para resolver este problema, existem duas soluções: uma é enviar mensageiros entre si por acordo oral, e chegar a um consenso por maioria simples, mas é difícil distinguir os potenciais traidores; o segundo é enviar mensageiros sob a forma de acordos escritos para entregar mensagens escritas com assinaturas exclusivas, que devem ser secundadas por cada exército, mas se a transmissão for muito lenta, as assinaturas podem ser perdidas. Como as duas soluções só podem resolver parte do problema, e leva muito tempo e recursos para chegar a um consenso, não são úteis.
O Problema dos Generais Bizantinos na Internet significa que no processo de transmissão de canais, pode ser difícil para alguns nós conseguir a sincronização da informação devido à carga de trabalho excessiva ou a alguns ataques mal-intencionados. Em 1999, Miguel Castro e Barbara Liskov propuseram a Tolerância Bizantina a Falhas (BFT). Acreditavam que se dois terços dos nós no sistema funcionassem normalmente, a consistência e correção do sistema poderiam ser garantidas. Mais tarde, Satoshi Nakamoto propôs o mecanismo de prova do trabalho (PoW) e o algoritmo criptográfico assimétrico da Bitcoin, que forneceu uma nova solução para o Problema dos Generais Bizantinos.
Suponhamos que existem n generais e t traidores. Digo n=3, t=1, então um de A, B e C é um traidor. Se A emitir o comando [ataque], mas o traidor B diz a C para [recuo], então C não pode fazer um julgamento; Se o traidor B enviar o comando [ataque] para A e [retiro] comando para C, então A e C não podem chegar a um acordo. Portanto, quando o número de traidores é maior ou igual a 1/3, o Problema dos Generais Bizantinos não pode ser resolvido.
Da mesma forma, partindo do princípio que o número total de nós de rede é N e o número de nós mal-intencionados é T, o problema só pode ser resolvido quando N> =3T+1, ou seja, o número de nós normais na rede é pelo menos (2/3) N, para garantir a consistência da informação. Em uma comunicação de rede fiável, a Tolerância a Falhas Bizantina pode resolver o problema de falha nos nós até certo ponto, para que o sistema possa chegar a um consenso.
Imagine que o geral A primeiro emite o comando [attack] e anexa a sua assinatura. Depois de o receberem, se outros generais também planeiam atacar, eles seguirão o comando [ataque] e a sua assinatura depois do comando do general A. Se A não executar o comando [ataque] depois de A enviá-lo, outros generais podem julgar A como traidor e usá-lo para distinguir a informação certa.
Da mesma forma, vários nós participantes terão um resultado através de uma série de trabalho e o primeiro nó que receber o resultado transmitirá para toda a rede. Se o resultado estiver correto, os outros nós adicionarão o resultado nos seus próprios registos para se prepararem para o cálculo a fim de ganhar o direito de gravar transações na blockchain.
Um hacker deve ter mais de 51% de poder computacional para destruir a segurança da rede ou publicar blocos falsos. O custo é muito maior que o retorno. Portanto, este mecanismo pode reduzir a possibilidade de informações falsas e fazer o sistema chegar a um consenso mais rápido.
A encriptação e descriptografia dos algoritmos de chaves assimétricas precisam de duas chaves secretas separadas - chave pública e chave privada, que normalmente aparecem em pares. Se A quiser enviar uma mensagem para B, A precisa da chave pública de B para criptografar a informação, e B precisa da sua própria chave privada para descriptografar a informação. Se B quiser mostrar a sua identidade, pode assinar a chave particular, escrever um “texto de assinatura” e transmiti-lo. Outros podem verificar a sua identidade de acordo com a chave pública de B.
Porque a identidade e a assinatura não podem ser falsificados, os algoritmos de chaves assimétricas asseguram a privacidade da transmissão e a assinatura confiável.