Blockchain Protocols Flashcards
Define a synchronously safe protocol.
If it’s safety is guaranteed by an assumption about timing or about how the race conditions are resolved.
Define an asynchronous consensus protocol.
If it’s safety is guaranteed WITHOUT assumption about timing or about how the race conditions are resolved (as long as everyone eventually gets the message).
Traditionally which two properties do consensus protocol have?
1) Safety
2) Liveness
Define “Safety” as a consensus property
It is not possible for nodes to make inconsistent decisions
Safety means that the results produced by the system should be correct
Define “Liveness” as a consensus protocol property
Node eventually/inevitably make decisions
Fault tolerant consensus protocols have ………….. and/or …………… despite some number of faults.
Safety
Liveness
Faulty behaviour is either considered to be …………… ……………… or ……………….
Crash faulty
Byzantine
Define crash tolerate behaviour
Nodes are faulty by virtue of not sending messages
Define Byzantine Fault behaviour
Where a node fails but there is not agreement between the other nodes about whether it has failed because the fault detection results are inconsistent.
What does the FLP Possibility show?
Can’t have
-deterministic consensus protocol
that is SAFE and LIVE
In an ASYNCHRONOUS system
IF
There is even one crash fault.
List the two “Liveness” faults:
Crash fault - failing to SEND a message when expected
Omission fault - failing to RECEIVE a message when expected
List the two “Safety” faults
Invalid message fault
Equivocation fault
Define an Invalid message fault
Producing messages that cannot be produced by a protocol following node.
Define an Equivocation fault
Producing valid message in a way that could not have been produced by a single execution of the protocol
Liveness faults are indistinguishable from ……………. ……………….
Network latency
Network latency (and therefore …………… ……………….) cannot cause protocol following ………….. to make inconsistent decisions in an asynchronous safe consensus protocol.
Liveness faults
Nodes
What does CBC stand for?
Correct by construction
What is a Byzantine fault?
When components may fail but appear to some on the network as failed and others as fine.
Under what conditions are Byzantine faults a problem?
When the network requires consensus on whether there is a fault on the problem component
What is a consequence of a Byzantine fault?
The faulty component is NOT shut out of the network
Because consensus can’t be reached about whether it is faulty as there is inconsistency about its state
What is Byzantine fault tolerance?
The ability of the network to continue operating even if some of the nodes fail or are acting maliciously
What does BFT stand for?
Byzantine fault tolerance
What are the requirements in the Byzantine generals problem?
Each general has to decide: attack or retreat (yes or no)
After the decision is made, it cannot be changed
All generals have to agree on the same decision
Have to execute in a synchronized manner
How does the Byzantine generals problem translate to blockchain?
The MAJORITY of participants within a distributed network have to :
AGREE and EXECUTE the same action in order to avoid complete failure.
Works based on majority so even if there are MALICIOUS or FAULTY nodes it won’t be a problem (unless they gain 51% of the network)