Byzantine Generals Problem II & FLP Impossibility
August 28, 2019
Byzantine Generals Problem II & FLP Impossibility August 28, - - PowerPoint PPT Presentation
Byzantine Generals Problem II & FLP Impossibility August 28, 2019 Recap Conditions to define correct behavior 1. Any two loyal generals use the same value of v(i) . (Regardless of i loyal or traitor) 2. If the i th general is loyal,
August 28, 2019
(Regardless of i loyal or traitor)
must be used by every loyal general as the value of v(i).
malicious nodes if simple messages are transmitted
with m traitors
Loyal Lieutenant 2 always follows the order
Both loyal lieutenants follows the order choice({attack, retreat})
L1 {“attack”} L2 {“retreat”}
L1 {“attack”} L2 {“retreat”,”attack”}
L1 {“attack”,”retreat”} L2 {“retreat”,”attack”}
L1 {“attack”,”retreat”} L2 {“retreat”,”attack”}
Both loyal lieutenants follows the order choice({attack, retreat})
Both loyal lieutenants follows the order choice({attack, retreat})
message (as opposed to delayed message)
message (as opposed to delayed message)
signature chain
if j5 received “a:0:3:6”, send “a:0:3:6:5” to LT 4 and 8
generals is relevant
generals is relevant
generals is relevant
must be used by every loyal general as the value of v(i).
lieutenant going through d-1 or fewer loyal lieutenants. Those relay the message faithfully. => all loyal lieutenants receive the same value for v(i).
(Regardless of i loyal or traitor)
through d-1 or fewer loyal lieutenants. Those relay the message
traitor)
received by lieutenant j.
loyal general
≤
≥
≤ ≤ ≥
i loyal or traitor)
lieutenant i is also received by lieutenant j. Assume diameter of loyal subgraph is d, thus m n-d traitors.
jj within d-1 more steps. k<m n-d => k+(d-1) n-1
forwarding the message to all its neighbors, whereupon it will be relayed by loyal generals and will reach jj within d-1 steps ≤ ≤ ≤ ≥
traitors
going through d-1 or fewer loyal lieutenants. Those relay the message faithfully
lieutenant j, since the subgraph of loyal generals is smaller than n-2
Vitalik Buterin, https://vitalik.ca/general/2018/08/07/99_fault_tolerant.html
after Michael J. Fischer, Nancy Lynch, and Mike Paterson
asynchronous consensus protocol can tolerate even a single unannounced process death. We do not consider Byzantine failures, and we assume that the message system is reliable — it delivers all messages correctly and exactly once. Nevertheless, even with these assumptions, the stopping of a single process at an inopportune time can cause any distributed commit protocol to fail to reach agreement.“
death of one process does not exist
Fault tolerance termination (also called liveness, aka “we make progress”) Consensus (also called “safety”, or “agreement”,
queue Q. p=recipient, m=message
, i.e. no message)
∅
appropriate decision state
choose the same value (only some process need to make a decision)
proposed by some process at some point
deciding state, even if any single process may be unresponsive
does not matter who received the message first
least one bivalent following configuration exist
in such an order that the system will always be bivalent, i.e. never reaches a decision
messages ei=(pi,mi) and ej=(pj,mj) exist.
configurations leading to 0 and some leading to 1
minimal
identical
whether one process is dead)
Contradiction
be the set of all reachable configurations from C without applying message e
be the set of configurations of applying e to the configurations in
ℂ 𝔼 ℂ 𝔼
be the set of all reachable configurations from C without applying message e
be the set of configurations of applying e to the configurations in
and configurations leading to 0
different values, but differ only in one process.
and 1 must be reachable. Contradiction
ℂ 𝔼 ℂ 𝔼
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
be the set of all reachable configurations from C without applying message e
be the set of configurations of applying e to the configurations in
and the same for E1 leading to 1
ℂ 𝔼 ℂ 𝔼
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
be the set of all reachable configurations from C without applying message e
be the set of configurations of applying e to the configurations in
and the same for E1 leading to 1
ℂ 𝔼 ℂ 𝔼
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
, then it must be in
ℂ ℂ 𝔼
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
𝔼
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
𝔼 𝔼
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
must contain
𝔼
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
≠
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
≠
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
σ σ
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
same processes
σ
Given a bivalent configuration and a message, then at least one bivalent following configuration exist
σ
system is in a bivalent configuration (output not yet decided), we can always find a processing step that leads to another bivalent configuration
(if we ignore trivial solutions that always return 0 or 1)
consensus
Fault tolerance termination (also called liveness, aka “we make progress”) Consensus (also called “safety”, or “agreement”,
Fault tolerance termination (also called liveness, aka “we make progress”) Consensus (also called “safety”, or “agreement”,
Deterministic processing (aka. “we don’t need a random function)
must decide on the same value.
some process
traitors (without signatures and known identities)
listening to messages, arbitrarily many traitors can be tolerated
≥ 1 3
rd
blockchain applications, i.e.