<p>If n / 2 + 1 generals are dishonest, they survive and don't win, but their option is optimal.<br />
If n / 2 - 1 generals are dishonest, they survive and don't win, and honest generals win.</p>
<p>If n / 2 + 1 generals are honest, they survive and win.<br />
If n / 2 - 1 generals are honest, they die.</p>
<p>There are two groups competing <em>against each other</em> (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.</p>
<p><strong>Generals don't, are not expected to, and most of the time can't (even if they might be wanting to), care about the <em>ethical implications of being honest or dishonest</em>, because in their job their priorities are (1) victory, (2) minimize friendly/own casualties</strong>, (3) minimize friendly/allied casualties, and (4) minimize foe casualties.</p>
<p>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.</p>
<p>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.</p>
<h2>TL;DR</h2>
<p>Byzantine Generals is a two steps problem. You introduce mid steps in between, which is out of the scope of Byzantine Generals.</p>

CC BY-SA 4.0
2021-10-03T23:46:25.973Z
But again how we know who is general and who is traitor ?
ARG
CC BY-SA 4.0
2021-10-21T17:55:25.327Z
@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
CC BY-SA 4.0
2021-10-03T07:12:30.203Z
2021-10-03T11:45:19.513Z
2021-10-03T11:45:19.513Z
Mercedes
<p>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</p>
<p>General1 (honest) sends an attack message to General2<br />
General2 (traitor) sends an attack message to General3<br />
General3 (honest) sends an attack message to General4<br />
General4 (traitor) sends an attack message to General5<br />
General5 (honest) sends an attack message to General6<br />
General6 (traitor) sends an attack message to General7 (honest)<br />
and so on</p>
<p>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?</p>

<bitcoin-core><blockchain><byzantine-fault-tolerance>
How to find traitor in Byzantine General Problem
ARG
# How to find traitor in Byzantine General Problem

(Asked by: username_0 on 2021-10-03)

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?

**Tags:** bitcoin-core, blockchain, byzantine-fault-tolerance


---

## 1 answers

### Answer by username_1 on 2021-10-03. Score: 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.

## TL;DR

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

> **Comments:**
> **username_0**: But again how we know who is general and who is traitor ?  
> **username_2**: @username_0: 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.  

---

