Impossibility of Synchronous Byzantine Agreement

Foundations of Blockchain

Suyash Bagad

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.

- Intuition

  • Say we have processes \(A, B, C\) and \(B\) is Byzantine.
  • \(B\) tells \(A\) that \(C\) is byzantine and \(C\) that \(A\) is byzantine
  • From an honest \(C\)'s point of view, both \(A,B\) are telling the same
  • Disallows consensus

- Ideas for Proof

  • Indistinguishability - processes cannot tell the difference in two worlds 
  • Hybridization - build intermediate worlds between the two contradicting worlds

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof. Consider world \(\text{I}\):

\(C'\)

\(B\)

\(A\)

\(C\)

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof. Consider world \(\text{I}\):

\(C'\)

\(B\)

\(A\)

\(C\)

\(A'\)

\(B'\)

\(1\)

\(1\)

\(1\)

\(0\)

\(0\)

\(0\)

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof. Consider world \(\text{I}\):

\(C'\)

\(B\)

\(A\)

\(C\)

\(A'\)

\(B'\)

  1. \(C\) frames \(A\) as if \(A\) starts from \(0\)
  2. Similarly, \(C\) frames \(B\)
  3. Since validity must hold, \(A,B\) proceed to decide \(1\)

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof.  Consider world \(\text{II}\)

\(A'\)

\(B\)

\(C\)

\(A\)

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof.  Consider world \(\text{II}\)

\(A'\)

\(B\)

\(C\)

\(A\)

\(B'\)

\(C'\)

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof.  Consider world \(\text{II}\)

\(A'\)

\(A\)

  1. \(A\) is byzantine
  2. \(A\) frames \(B,C\) similar to the world \(\text{I}\)
  3. \(B,C\) proceed to decide \(0\)

\(B\)

\(C\)

\(B'\)

\(C'\)

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof.  Consider world \(\text{III}\)

\(B'\)

\(A\)

\(C\)

\(B\)

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof.  Consider world \(\text{III}\)

\(B'\)

\(B\)

\(C'\)

\(A'\)

\(A\)

\(C\)

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof.  Consider world \(\text{III}\)

\(B'\)

\(B\)

  1. \(B\) is byzantine,
  2. \(A,B,C\) starts with \(1,1,0\) respectively
  3. \(A,C\) output \(1\) and \(0\) respectively. Why?

\(C'\)

\(A'\)

\(A\)

\(C\)

Impossibility of Synchronous BA

  • There is no consensus algorithm for \(n=3\) processes out of which \(f=1\) process is byzantine in a synchronous setting.
  • Proof.  Compare with world \(\text{I}\)

\(C'\)

\(B\)

\(A\)

\(C\)

\(A'\)

\(B'\)

\(B'\)

\(B\)

\(C'\)

\(A'\)

World \(\text{I}\)

World \(\text{III}\)

  • Validity in worlds \(\text{I,II} \ \implies\) agreement violation in world \(\text{III}\) 

\(A\)

\(C\)

Closing Notes

  • Proof for Byzantine Broadcast for \(f < \frac{n}{3}\) in synchronous systems is similar in flavour
  • In fact, if we can achieve broadcast and \(f < \frac{n}{2}\), then we can achieve Byzantine agreement
  • Other way round is also true for any \(f < n\)
  • To sum up, \(\text{BB} \Longleftrightarrow \text{BA}\) (to be discussed in detail in the next talk)

- References

  1. M. Fischer, N. Lynch, and M. Merritt. 1985. "Easy impossibility proofs for distributed consensus problems". In PODC '85. ACM, NY, USA, 59–70. DOI:https://doi.org/10.1145/323596.323602
  2. K. Nayak and I. Abraham. 2019. "Byzantine Agreement is Impossible for \(n\le 3f\) if the Adversary can Simulate", Decentralized Thoughts Blog, Online: link
Made with Slides.com