Byzantine fault tolerant protocols are algorithms that are robust to arbitrary types of failures in distributed algorithms. The Byzantine agreement protocol is an essential part of this task. The constant-time quantum version of the Byzantine protocol, is described below.
Introduction The Byzantine Agreement protocol is a protocol in distributed computing. It takes its name from a problem formulated by Lamport, Shostak and Pease in 1982, which itself is a reference to a historical problem. The Byzantine army was divided into divisions with each division being led by a General with the following properties:
Each General is either loyal or a traitor to the Byzantine state. All Generals communicate by sending and receiving messages. There are only two commands: attack and retreat. All loyal Generals should agree on the same plan of action: attack or retreat. A small linear fraction of bad Generals should not cause the protocol to fail (less than a 1 3 {\displaystyle {\tfrac {1}{3}}} fraction). (See for the proof of the impossibility result). The problem usually is equivalently restated in the form of a commanding General and loyal Lieutenants with the General being either loyal or a traitor and the same for the Lieutenants with the following properties.
All loyal Lieutenants carry out the same order. If the commanding General is loyal, all loyal Lieutenants obey the order that they send. A strictly less than 1 3 {\displaystyle {\tfrac {1}{3}}} fraction including the commanding General are traitors.
Byzantine failure and resilience Failures in an algorithm or protocol can be categorized into three main types:
A failure to take another execution step in the algorithm: This is usually referred to as a "fail stop" fault. A random failure to execute correctly: This is called a "random fault" or "random Byzantine" fault. An arbitrary failure where the algorithm fails to execute the steps correctly (usually in a clever way by some adversary to make the whole algorithm fail) which also encompasses the previous two types of faults; this is called a "Byzantine fault". A Byzantine resilient or Byzantine fault tolerant protocol or algorithm is an algorithm that is robust to all the kinds of failures mentioned above. For example, given a space shuttle with multiple redundant processors, if the processors give conflicting data, which processors or sets of processors should be believed? The solution can be formulated as a Byzantine fault tolerant protocol.
Sketch of the algorithm We will sketch here the asynchronous algorithm The algorithm works in two phases:
Phase 1 (Communication phase): All messages are sent and received in this round. A coin flipping protocol is a procedure that allows two parties A and B that do not trust each other to toss a coin to win a particular object. There are two types of coin flipping protocols:
Weak coin flipping protocols: The two players A and B initially start with no inputs and they are to compute some value c A , c B ∈ [ 0 , 1 ] {\displaystyle c_{A},c_{B}\in [0,1]} and be able to accuse anyone of cheating. The protocol is successful if A and B agree on the outcome. The outcome 0 is defined as A winning and 1 as B winning. The protocol has the following properties: If both players are honest (they follow the protocol), then they agree on the outcome of the protocol c A = c B {\displaystyle c_{A}=c_{B}} with P r ( c A = c B = b ) = 1 2 {\displaystyle Pr(c_{A}=c_{B}=b)={\tfrac {1}{2}}} for a , b ∈ { 0 , 1 } {\displaystyle a,b\in \{0,1\}} . If one of the players is honest (i.e., the other player may deviate arbitrarily from the protocol in his or her local computation), then the other party wins with probability at most 1 2 + ϵ {\displaystyle {\tfrac {1}{2}}+\epsilon } . In other words, if B is dishonest, then P r ( c A = c B = 1 ) ≤ 1 2 + ϵ {\displaystyle Pr(c_{A}=c_{B}=1)\leq {\tfrac {1}{2}}+\epsilon } , and if A is dishonest, then P r ( c A = c B = 0 ) ≤ 1 2 + ϵ {\displaystyle Pr(c_{A}=c_{B}=0)\leq {\tfrac {1}{2}}+\epsilon } . A strong coin flipping protocol: In a strong coin flipping protocol, the goal is instead to produce a random bit which is biased away from any particular value 0 or 1. Clearly, any strong coin flipping protocol with bias ϵ {\displaystyle \epsilon } leads to weak coin flipping with the same bias.
… excerpt ends here. Continue reading the full article.
