What:

How do all participants of a Distributed Ledger agree on a single, consistent version of history (aka the Byzantine Agreement Problem).

The solution?:
Come up with a Consensus Protocol that, even if there are some () malicious actors, consensus can still be reached.

Impossibility Result:

Consensus is impossible if the majority ()of participants are malicious.

Proof:

Setup:

Assumption:

  • A perfect consensus protocol,
  • Group 0 (). Their input is ()
  • Group 1 (). Their input is ()
  • Malicious actors can corrupt anyone, up to exactly
  • We split it into 3 scenarios
Scenario 1:
  • Malicious corrupts nobody. Everyone is honest. The output will be a single, agreed-upon value. It could be either 0 or 1.
Scenario 2:
  • Malicious affects all of Group 0. They all act as if their input was 0.
  • Validity says that the output must be 1 (as it was just honest people saying 1)
Senario 3:
  • Malicious affects all of Group 1. They all act as if their input was 1.
  • Validity says that the output must be 0 (as it was just honest people saying 0)
Contradiction (Paradox):
  • From the perspective of the honest party, World 2 is exactly the same as World 1. The vice versa is true for World 3.
  • Thus, the 3 world are indistinguishable.
  • Thus, the honest participants must behave in the same way.
  • But, World 2 and World 3 have different outputs.
  • Thus, they don’t all agree.
  • Thus, the Agreement property is violated.
  • 🫳🎤

Bitcoin’s Solution (Proof of Work):

  • Let’s assume there’s a synchronous network (messages are guaranteed to arrive, even if delayed) with no setup (parties can join and leave at will).
  • The majority is defined by the hash with the most computing power behind it