Questions about Consensus (computer science)
Short answers, pulled from the story.
What is consensus in computer science?
Consensus in computer science is the problem of getting multiple processes or agents to agree on a single data value even when some processes are faulty. Applications requiring it include cloud computing, clock synchronization, PageRank, opinion formation, smart power grids, state estimation, control of UAVs, load balancing, and blockchain.
What is the FLP impossibility result for consensus in computer science?
The FLP impossibility result, proved in 1985 by Michael J. Fischer, Nancy Lynch, and Mike Paterson, showed that no deterministic algorithm can guarantee consensus in a fully asynchronous system if even one process may suffer a crash failure. The authors were later awarded a Dijkstra Prize for the work, and it has since been mechanically verified to hold even under fairness assumptions.
What is the difference between crash failures and Byzantine failures in consensus protocols?
A crash failure occurs when a process abruptly stops and never resumes, while a Byzantine failure imposes no such limits and can include sending contradictory data or resuming after a long delay. Byzantine failures are far more disruptive to a consensus protocol than crash failures.
How does Bitcoin achieve permissionless consensus?
Bitcoin achieves permissionless consensus using proof of work paired with a difficulty adjustment function, letting participants compete to solve cryptographic hash puzzles. Whoever solves a puzzle first adds their proposed block of transactions to the ledger and earns a reward proportional to their computational effort, and a Sybil attack is infeasible unless an attacker controls more than half of the network's computing power.
What is the Phase King algorithm used for in consensus?
The Phase King algorithm, developed by Garay and Berman, is a polynomial-time binary consensus protocol that tolerates Byzantine failures. It runs in a synchronous system with n processes and up to f failures, provided n is greater than 4f, working through f plus 1 phases of two rounds each.
What agreement threshold does the Ripple Protocol Consensus Algorithm require?
The Ripple Protocol Consensus Algorithm, or RPCA, requires 80 percent agreement in its final round before transactions are confirmed. Validating nodes compile candidate transactions, vote on them using their Unique Nodes List, and pass transactions clearing a minimum threshold to the next round.