I am new to this problem and trying to understand it. For example if I have 7 generals, 4 of them are honest and 3 of them are traitors. Now, how do I know which 4 generals are honest generals because if

General1 (honest) sends an attack message to General2
General2 (traitor) sends an attack message to General3
General3 (honest) sends an attack message to General4
General4 (traitor) sends an attack message to General5
General5 (honest) sends an attack message to General6
General6 (traitor) sends an attack message to General7 (honest)
and so on

General2 is traitor but sending attack message to General3, but when it comes to attack General2 will not participate in it and if this way traitors get the majority, it means we lost the system. So, is there any way to find out who the traitors are before the attack? Or how to find out which ones are the honest generals?

1 Answer 1


If n / 2 + 1 generals are dishonest, they survive and don't win, but their option is optimal.
If n / 2 - 1 generals are dishonest, they survive and don't win, and honest generals win.

If n / 2 + 1 generals are honest, they survive and win.
If n / 2 - 1 generals are honest, they die.

There are two groups competing against each other (die-hards vs sure-survivors), instead of cooperating. It's as simple as that and to an external observer it doesn't matter which of those two teams takes the correct decision about attacking or not.

Generals don't, are not expected to, and most of the time can't (even if they might be wanting to), care about the ethical implications of being honest or dishonest, because in their job their priorities are (1) victory, (2) minimize friendly/own casualties, (3) minimize friendly/allied casualties, and (4) minimize foe casualties.

If victory is unlikely, they have to ponder the possibility of not attacking, in order to minimize casualties, not [necessarily] because they are rogue-y, but because it might be the economically correct action to do. If victory is sure to be attained, their best interest is in attacking, more likely they will attack and more likely they'll win while also minimizing casualties.

That's one reason massive consensus is key to success of Bitcoin. If consensus decreases, cooperation decreases, hash rate decreases, security decreases, value decreases, hash rate decreases, and negative feedback loop happens.


Byzantine Generals is a two steps problem. You introduce mid steps in between, which is out of the scope of Byzantine Generals.

  • But again how we know who is general and who is traitor ?
    – ARG
    Oct 3, 2021 at 23:46
  • 2
    @ARG: The BGP's challenge is to get the optimal outcome when there are adversaries among the collaborators. Finding out who the adversaries are is a different problem.
    – Murch
    Oct 21, 2021 at 17:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.