Lesson 9: Byzantine Fault Tolerance

On readings: Recommended background readings are marked with (^) above. Optional historical or fun readings are marked with (*). If you feel comfortable with the topic already, you may skip these readings.

Notes

The slides from lecture can be found on Canvas.

Extending system models

In particular, we are worried about the Byzantine failure model, which is stronger than fail-stop or fail-recover. We talked briefly last time about the two generals problem and Byzantine generals. The latter is our focus today. Why do we need such a model? Primarily to be able to handle realities in the world:

In general, we may want to have a system with dynamic membership, in the sense that new nodes could join the system at any time. This is something we’d want for, e.g. cryptocurrency blockchains, but something we will ignore here, as they will require different forms of consensus algorithms.