A system satisfies agreement and termination but its consensus algorithm always decides the value 0, regardless of what processes propose. Which property is violated?
AAgreement
BValidity
CTermination
DLiveness
Validity requires that the decided value must have been proposed by some process. If the algorithm always decides 0 but no process proposed 0, validity is violated even though all processes agree. This illustrates why validity is a separate, necessary property — agreement alone would permit nonsense decisions.
Question 2 True / False
The FLP impossibility result proves that consensus cannot be solved in a purely asynchronous system even if only one process may crash-fail.
TTrue
FFalse
Answer: True
The Fischer-Lynch-Paterson (FLP) result (1985) shows that in a fully asynchronous message-passing system, no deterministic algorithm can guarantee consensus if even a single process might fail by crashing. This is because a slow process is indistinguishable from a crashed one, so the algorithm can never safely decide. Practical systems (Paxos, Raft) escape FLP by using timeouts or randomization.
Question 3 Short Answer
What is the key behavioral difference between a crash-fault process and a Byzantine-fault process?
Think about your answer, then reveal below.
Model answer: A crash-fault process simply stops sending messages; a Byzantine-fault process can behave arbitrarily — sending conflicting values to different peers, lying about its state, or colluding with other faulty processes.
This distinction matters enormously for algorithm design. Crash-fault consensus requires f < n/2 faulty processes; Byzantine consensus requires f < n/3. Byzantine faults model adversarial or hardware-corrupted nodes and demand much stronger guarantees.