2

In case you don't know the problem, see this.

Brief introduction:

Processes communicate by reliable and timely messages. Traitors lie, also cheat on forwarding messages, they try to confuse loyals. Loyals try to agree on non-trivial actions (attack, retreat, only 2 actions). There is only one commander. If the commander is loyal and gives orders, loyals follow otherwise loyals agree on arbitrary actions.

My problem:

I don't understand this case: assume that there are 4 processes, only 1 process is commander, and the commander is a traitor. How can the system tolerate this? The commander can send 3 different messages to the 3 loyals. Each loyal forwards messages to the other 2 loyals. So each loyal will receive 3 different actions. How can the loyals decide to act uniformly?

The general result is: 3f + 1 processes needed to tolerate f traitors.

JACK M
  • 2,627
  • 3
  • 25
  • 43
  • If you have 4 processes and one is a traitor, your general result at the end says that you can't tolerate it. You'd need at least 5 processes to handle a single traitor among them according to your formula. If the commander is a traitor, I'd think that's at least as bad. – IVlad Sep 05 '15 at 18:44
  • I might be wrong, but I think the problem as described deals with a 2 state (attack / retreat), and your question describes a 3 state. That's why it "won't work" for you – Amit Sep 05 '15 at 20:20
  • hmm. I think you hit the critical point. Amit. then this question is closed – JACK M Sep 05 '15 at 20:27
  • @Amit: Can you submit your comment as an answer so that we can vote it up and mark this question answered? – Charles Stewart Sep 06 '15 at 07:58
  • @CharlesStewart - added... – Amit Sep 06 '15 at 08:05
  • @JACKM - if you want to address someone in a comment, use an @ before their username so that they're notified of the comment – Amit Sep 06 '15 at 08:06

1 Answers1

4

The Byzantine fault tolerance problem deals with a scenario where 2 possible actions exist and must be agreed upon.

The problem described can't happen, because between 2 possible actions (2 "messages"), there can't exist "3 different messages".

Amit
  • 45,440
  • 9
  • 78
  • 110