FANDOM


Byzantine fault tolerant protocols are algorithms that are robust to arbitrary types of failures in distributed algorithms. With the advent and popularity of the internet, there is a need to develop algorithms that do not require any centralized control that have some guarantee of always working correctly. The Byzantine agreement protocol is an essential part of this task. In this article we describe the quantum version of the Byzantine protocol in [1] which works in constant time.

IntroductionEdit

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[2], which itself is a reference to a historical problem. We give a brief summary here. 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 retreat or attack.
  • A small linear fraction of bad Generals should not cause the protocol to fail (less than a \frac{1}{3} fraction).

(See [3] 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 he sends.
  • A strictly less than \frac{1}{3} fraction including the commanding General are traitors.

Byzantine Failure and ResilienceEdit

Failures in an algorithm or protocol can be categorized into three main types:

  1. A failure to take another execution step in the algorithm: This is usually referred to as a "fail stop" fault.
  2. A failure where the algorithm randomly fails to execute correctly: This is called a "random fault" or "random Byzantine" fault.
  3. 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 and some of the processors give incorrect data, which processors or sets of processors should be believed? The solution can be formulated as a Byzantine fault tolerant protocol.

Sketch of the AlgorithmEdit

We will sketch here the asynchronous algorithm [1] The algorithm works in two phases

  • Phase 1 (Communication phase):
All messages are sent and received in this round
  • Phase 2 (Computation phase):
This Phase begins only after the first phase has ended. All the messages received are processed

The protocol relies on two other algorithms to work correctly

Coin flipping protocolEdit

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 [6]: The two players A and B initially start with no inputs and they are to compute some value 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} with  Pr(c_{A} = c_{B} = b) = \frac{1}{2} for  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  \frac{1}{2} + \epsilon. In other words, if B is dishonest, then Pr(c_{A} = c_{B} = 1) \leq \frac{1}{2} + \epsilon, and if A is dishonest, then Pr(c_{A} = c_{B} = 0)\leq \frac{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 \epsilon leads to weak coin flipping with the same bias.

Verifiable secret sharing.Edit

  • A verifiable secret sharing (VSS) protocol[7]: A (n,k) secret sharing protocol allows a set of n players to share a secret, s such that only a quorum of k or more players can discover the secret. The player sharing (distributing the secret pieces) the secret is usually referred to as the dealer. A verifiable secret sharing protocol differs from a basic secret sharing protocol in that players can verify that their shares are consistent even in the presence of a malicious dealer.

The Fail-stop protocol.Edit

Protocol QuantumCoinFlip for player P_iEdit

  1. Round 1 generate the state |Coin_i\rangle =\frac{1}{\sqrt{2}}|0,0,\ldots,0\rangle + \frac{1}{\sqrt{2}}|1,1,\ldots,1\rangle on n qubits and send the kth qubit to the kth player keeping one part
  2. Generate the state |Leader_i\rangle= \frac{1}{n^{3/2}}\sum _{a=1}^{n^3}|a,a,\ldots,a\rangle on n qubits, an equal superposition of the numbers between 1 and n^3.Distribute the n qubits between all the players
  3. Receive the quantum messages from all players and wait for the next communication round, thus forcing the adversary to choose which messages were passed.
  4. Round 2: Measure (in the standard base) all Leader_{j} qubits received in round I. Select the player with the highest leader value (ties broken arbitrarily) as the "leader" of the round. Measure the leader’s coin in the standard base.
  5. Set the output of the QuantumCoinFlip protocol: v_{i} = measurement outcome of the leader’s coin.

The Byzantine protocol.Edit

To generate a random coin assign an integer in the range [0,n-1] to each player and each player is not allowed to chose its own random ID as each player P_k selects a random number s{_{k}^{i}} for every other player P_{i} and distributes this using a verifiable secret sharing scheme.

At the end of this phase players agree on which secrets were properly shared, the secrets are then opened and each player P_i is assigned the value s_i =\sum \, {s_{k}^{i}}{\text{for all secrets properly shared}}\mod n This requires private information channels so we replace the random secrets by the superposition |\phi\rangle =\frac{1}{\sqrt{n}}\sum_{a=0}^{n-1}|a\rangle. In which the state is encoded using a quantum verifiable secret sharing protocol (QVSS)[8]. We cannot distribute the state |\phi,\phi,\ldots \phi\rangle since the bad players can collapse the state. To prevent bad players from doing so we encode the state using the Quantum verifiable secret sharing (QVSS) and send each player their share of the secret. Here again the verification requires Byzantine Agreement, but replacing the agreement by the grade-cast protocol is enough.[9][10].

Grade-cast protocolEdit

A grade-cast protocol has the following properties using the definitions in [9] Informally, a graded broadcast protocol is a protocol with a designated player called “dealer” (the one who broadcasts) such that:

  1. If the dealer is good, all the players get the same message.
  2. Even if the dealer is bad, if some good player accepts the message, all the good players get the same message (but they may or may not accept it).

A protocol P is said to be achieve graded broadcast if, at the beginning of the protocol, a designated player D (called the dealer) holds a value v, and at the end of the protocol, every player P_{i} outputs a pair (value_{i}, confidence_{i})
such that the following properties hold: (\forall i, confidence_{i} \in \{0, 1, 2\})

  1. If D is honest, then value_{i} = v and confidence_{i} = 2 for every honest player P_i.
  2. For any two honest players P_{i} and  P_{j}, \vert confidence_{i} - confidence_{j}\vert \leq 1 .
  3. (Consistency) For any two honest players P_{i} and P_{j}, if confidence_{i}> 0 and  confidence_{j}> 0 ,then  value_{i}= value_{j}.

For t < \frac{n}{4} the verification stage of the QVSS protocol guarantees that for a good dealer the correct state will be encoded, and that for any, possibly faulty dealer, some particular state will be recovered during the recovery stage. We note that for the purpose of our Byzantine quantum coin flip protocol the recovery stage is much simpler. Each player measures his share of the QVSS and sends the classical value to all other players. The verification stage guarantees, with high probability, that in the presence of up to t < \frac{n}{4} faulty players all the good players will recover the same classical value (which is the same value that would result from a direct measurement of the encoded state).

Remarks Edit

Recently, a quantum protocol for Byzantine Agreement was demonstrated experimentally [11] using a four-photon polarization-entangled state. This shows that the quantum implementation of classical Byzantine Agreement protocols is indeed feasible.

References Edit

  1. 1.0 1.1 Michael Ben-Or and Avinatan Hassidim, Fast quantum byzantine agreement,STOC '05: Proceedings of the thirty-seventh annual ACM symposium on Theory of computing, pg 481-485 [2005]
  2. L. Lamport and R. Shostak and M. Pease, The Byzantine Generals Problem, ACM Trans. Program. Lang. Syst., volume 4, number 3, pg 382-401 [1982]
  3. Michael J. Fisher, Nancy A. Lynch,Michael S. Paterson,Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM volume 32, issue=2, pg 374-382 Impossibility of Distributed Consensus with One Faulty Process[1985]
  4. Ashwin Nayak and Peter Shor, On bit-commitment based quantum coin flipping, arxiv [1]
  5. C. Doscher and M. Keyl, An introduction to quantum coin-tossing, arxiv
  6. 6.0 6.1 I. Kerenidis, A. Nayak, coin flipping with small bias, arxiv
  7. Verifiable secret sharing verifiable secret sharing
  8. Claude Cr´epeau, Daniel Gottesman and Adam Smith, Secure Multi-party Quantum Computation, In 34th ACM Symposium on the Theory of Computing, STOC, pg. 643–652, [2002]
  9. 9.0 9.1 Michael Ben-Or, Elan Pavlov, Vinod Vaikuntanathan, Byzantine Agreement in the Full-Information Model in O(log n) Rounds, STOC '06: Proceedings of the thirty-eighth annual ACM symposium on Theory of computing, pg 179-186 [2006]
  10. Pesech Feldman and Silvio Micali. An optimal probabilistic protocol for synchronous byzantine agreement. SIAM J. Comput., pg 873–933, [1997]
  11. Sascha Gaertner, Mohamed Bourennane, Christian Kurtsiefer, Adán Cabello, Harald Weinfurter, Experimental Demonstration of a Quantum Protocol for Byzantine Agreement and Liar Detection, arXiv:0710.0290v2, [2007], Phys. Rev. Lett. 100 (2008) 070504.
ru:Задача византийских генералов

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.