Skip to content

1.2. System Models and Failure Types

You cannot reason about correctness without first fixing your assumptions about time and failure. A system model is that contract: it defines whether messages arrive within a bound, how nodes are allowed to fail, and whether any participant may lie. Pick the model too optimistic and your protocol breaks in production; pick it too pessimistic and you pay for defenses you never needed. This chapter walks the spectrum from synchronous to asynchronous networks and from crash-stop to Byzantine faults, so every algorithm later in the handbook can state exactly which model it assumes.