Byzantine Agreement

 Hi Folks !

Hope you are doing well ! 😉

This Blog is regarding Byzantine attack or means Byzantine agreement. 

What is Byzantine ?? 😬

A friend having capricious behavior is called byzantine. This can be your imagination also. 

Example: Not sending correct message to the fellow friends, sending no message to the fellow friends or lying about the input.

Note: Byzantine nature also includes collusion, i.e., all byzantine friends are controlled by the same adversary.

What is Byzantine Problem ??

Lets us consider through example. Suppose in a class of Algorithm there are 20 friends and they are planning for mass bunk but in 20 friends there are some fellow friends who are not planning for mass bunk. In this situation it is quite difficult to take decision. This Problem is called as a Byzantine Problem. 

This Problem is solvable if an only if atleast two third fellows friends are loyal. 

Can you solve Byzantine Problem with 3 friends ??

Answer is obvious No. But Why ???

Now consider a scenario, Out of 3 friends 1 of them is Class Representative (CR) and Other are normal students of the class say (F1, and F2).

Consider the following predefined assumptions: 

Condition A: All Fellow friends obey the same order.

Condition B: If the CR is Loyal, then every loyal fellow friend obeys the orders he sends.

A and B can be called as an interactive consistency conditions. Note that if the CR is loyal, then A follows from B. However, the CR need not be loyal.  

Case Study 1 :  

If we consider the Scenario where any one fellow friend is not loyal (as shown in Fig. 1) , will break the condition B. 


Fig. 1: F2 is not Loyal.

Case Study 2 : 

Consider a scenario where CR is not loyal (as shown in Fig. 2). 

CR sends Mass Bunk message to F1 but No Mass Bunk Message to F2. Now F2 sends No Mass Bunk message to F1. In that scenario, it is quite difficult to F1 to know about who is traitor, and he can not tell what actual message was sent by CR to F2. This situation breaks the condition A. 


Fig. 2: CR is not Loyal

So Both Case study 1 and 2 fails because it fails to achieve a > 2/3rd supermajority. 

As we saw in 3 friends it is quite difficult now we will increase the group size by 1 so we can say that total number of friends are 4. 

Now again consider two case study. 

Consider Mass Bunk as : Y, and No Mass Bunk as : N=M.

Case Study 3 : 

Since as shown in Figure 3, F3 is not loyal so he wants to confuse F2 by sending him as a wrong message but F2 receives the set of messages as : {Y,Y,N} so according to 2/3 rd majority, F2 concludes that the correct message is Y. 

So now according to this situation if teacher comes to the class then he finds mass bunk 😂.

So we can see that if one friend is not loyal then entire system can take place.


Fig. 3: F3 is not Loyal

Case Study 4: 

Folks, in this case CR is corrupt so each fellow student receives : {Y,Y,M}. Since this majority again wins so we can say that today is mass bunk.


Fig. 4: CR is not Loyal

In Both case study 3 and 4 we can say that the system will work if there is more than 3 friends which follows that atleast 2/3 rd friends should be loyal. 

Hope you enjoyed the Journey of Byzantine attack. 

Please Note your learning is not stops here. This is a very wide concept. It is recommended to visualize the concept and think the different different possible test cases. 

If still you have any Idea or Doubt then fill the comment section. 😛

Thanks to Author Roger Wattenhofer (The Science of the Blockchain).


*********************************************************************************************************

Comments

Popular posts from this blog

Homomorphic Encryption: A Basic Idea

Fast Base Conversion and Its Application

Brakerski-Fan-Vercauteren (BFV) Homomorphic Encryption