jalora / decentralization-research

Open research on distributed systems and blockchain
0 stars 0 forks source link

September 2018 Reading List #6

Open jalora opened 6 years ago

jalora commented 6 years ago

September 2018

jalora commented 6 years ago

Byzantine General's Problem (Lamport et al (1982))

Problem statement: A commanding general must send an order to his n - 1 lieutenant generals s.t. the following interactive consistency conditions are met:

Impossibility: Byz consensus cannot be achieved if 1/3 or more generals are traitors.

Byzantine Assumptions

Proposed Algorithms (assuming at most m traitors)

Unsigned Messages: OM(m)

Algorithm

  1. Commanding general sends messages to all lieutenants
  2. Lieutenant i propagates received values to all other lieutenants (not including himself)
    • This message passing is recursive and is executed (n-1)...(n-m) times once algorithm unfolds
    • Number of messages sent = all unique ordering of n generals (P(n-1,m) = (n-1)!/(n-m-1)!) after m executions
  3. Lieutenants execute the majority values received from all other lieutenants

Signed Messages: SM(m)

Algorithm

  1. Commanding general sends messages to all lieutenants
  2. For each lieutenant i
    • if message v is from commander, send to v:0:i to all other lieutenants, and set V_i = {v}
    • if message from another lieutenant (i.e. v:0:j_1:...:j_k), set V_i + {v} if {v} not in V_i
      • if k < m, send message v:0:j_1:...:j_k:i to all other lieutenants not in {j_1,...,j_k}
  3. Each lieutenant i executes their order via choice(V_i)

Missing Communication Paths Cases

Discussion of Practicality of Assumptions

jalora commented 5 years ago

Byzantine Generals and Transaction Commit Protocols - Lamport et al 1984

Overview: Show that the lower bound time complexity for a t-resilient crash consensus protocol is t+1 rounds. Detail protocol specifications and a BG algorithm that solves problem.

Weak Byzantine General's Problem:

Crash-resilient Protocol Specifications

note:

Proof Sketch of Time Complexity Lower Bound

Theorem 1: There does not exist a t-crash resilient, t-round Weak Byzantine General's Algorithm.

See very sketch proof on page 26. Essentially, in the worst case, there exists no algorithm that can achieve consensus after t rounds in a t-crash protocol since only t processors (through which v passes through) out of the total k will be in consensus, while k-t pick different values.

BG Algorithm and Properties

**Round 1:** Process 1 sends value 'v' to all processes
**Round r, where 1 < r <= t+1:** Each process
1. If it received 'v' in {0, 1} from **any** process in r-1 then...
   - Choose 'v' as public value, i.e. V = {v}
   - send 'v' to all other processes
   - halt

2. if it received an "I don't know" from **every** other process then...
   - Choose 'null' as public value, i.e. V = {null}
   - send 'null' to all other processes
   - halt

3. Send an "I don't know" to all processes