Doubt regarding reaching consensus in Byzantine Fault Tolerance algorithm

by Saumya Bhatt   Last Updated July 11, 2019 07:27 AM

This is a bit long question but please stay with me on this.It's a humble request

Say there are 3 generals: P1, P2, P3, P4, P5, P6, P7

Let P1 act as the commander and is faulty in nature. It sends the value 0 to P2, P3, P4 and 1 to P5, P6, P7. Adding it's unique ID to the message ( 1 as in case of P1), The message distribution is as follows:

This was the end of round 0. But since m (faulty characters) = 1; we have to go through another round of message exchange, this time between the generals P2, P3, P4, P5, P6, P7. Again, each general append their own unique ID to their message and since the general cannot send message to themselves, the message collection at the end of round 1 is as follows:

P2 = {(0,13),(0,14),(1,15),(1,16),(1,17)}

P3 = {(0,12),(0,14),(1,15),(1,16),(1,17)}

P4 = {(0,12),(0,13),(1,15),(1,16),(1,17)}

P5 = {(0,12),(0,13),(0,14),(1,16),(1,17)}

P6 = {(0,12),(0,13),(0,14),(1,15),(1,17)}

P7 = {(0,12),(0,13),(0,14),(1,15),(1,16)}

Now taking the majority of the value for each general, we get it as:

P2 has majority value: 1

P3 has majority value: 1

P4 has majority value: 1

P5 has majority value: 0

P6 has majority value: 0

P7 has majority value: 0

But now, the majority is divided as half the generals P1,P2,P3 agree to 1 while the other half P4,P5,P6 agree to 0. Thus the consensus isn't reached

What am I missing here?

Your help would be greatly appriciated! Thanks!

Also, if this may be the wrong platform to ask this query, do suggest me where should I post it. Thanks!

Tags :

Related Questions

Updated July 04, 2019 11:27 AM

Updated June 24, 2017 17:27 PM

Updated August 30, 2017 13:27 PM

Updated December 06, 2017 16:27 PM

Updated January 01, 2018 13:27 PM