< /p>
There are three “generals”: A, B and C. Suppose the generals communicate like this, where C is a “traitor”:
A --> B " Attack", A --> C "Attack"
B --> A "Attack", B --> C "Attack"
C --> A "Attack", C --> B "Retreat"
A receives "Attack" from both sources, and will attack.
B receives "Attack" from A but "Retreat" from C and doesn't know what to do.
C is a traitor, so his action could be anything.
Therefore, we cannot guarantee that most participants will reach a consensus.
I kind of understand the evidence, but It seems to miss an important point. Don’t A, B and C also do their own internal calculations? Since A&B is the “loyal” general here, it seems that the “right” action is to attack. Is B allowed to consider his calculations when deciding what to do? In this case, he can easily break the connection between the conflicting A&C inputs and decide to attack. Then, A&B attack, we solve the problem. Is this a problem different from the classic Byzantine general problem?
What does “(B) his calculation when deciding what to do” mean? In the hypothesis, B only decides what to do when he gets most of the matching messages. Well, there may be a default option in case of conflict. But the default option does not guarantee a consistent decision between loyal generals, because they do not trust each other
The important point of the Byzantine general problem is that they don’t trust each other and don’t know who is loyal. Anyone can become a traitor, so even if A and B are both loyal generals, they are also It is not known that each of them is a truly loyal general on A or B. In this case, even if B performs its own internal calculations when B gets the conflicting news from A and C, it cannot be sure of a 100% correct decision ( A and B do the same action).
I have read many papers about Byzantine fault tolerance recently. There is a common evidence that a 3m 1 computer is needed to process m Byzantine failure. The general evidence is as follows:
There are three “generals”: A, B, and C. Suppose the generals communicate like this, where C is a “traitor”:
A --> B "Attack", A --> C "Attack"
B --> A "Attack", B --> C "Attack"
C --> A "Attack", C --> B "Retreat"
A receives "Attack" from both sources, and will attack.
B receives "Attack" from A but " Retreat" from C and doesn't know what to do.
C is a traitor, so his action could be anything.
Therefore, we cannot guarantee that most participants will reach a consensus.< /p>
I understand this evidence a bit, but it seems to miss an important point. Don’t A, B and C also do their own internal calculations? Since A&B is the “loyal” general here, it seems that the “right” action is to attack. Is B allowed to consider his calculations when deciding what to do? In this case, he can easily break the connection between the conflicting A&C inputs and decide to attack. Then, A&B attack, we solve the problem. Is this a problem different from the classic Byzantine general problem?
What is “their own internal calculation”? Does it mean that if a general has a conflict message, then it is basically the default option (for example, attack)?
What does “(B) his calculation when deciding what to do” mean? In the hypothesis, B only decides what to do when he gets most of the matching messages. Well, there may be a default option in case of conflict. But the default option does not guarantee a consistent decision between loyal generals, because they do not trust each other
The important point of the Byzantine general problem is that they don’t trust each other and don’t know who is loyal. Anyone can become a traitor, so even if A and B are both loyal generals, they are also It is not known that each of them is a truly loyal general on A or B. In this case, even if B performs its own internal calculations when B gets the conflicting news from A and C, it cannot be sure of a 100% correct decision ( A and B do the same action).