Self-stabilizing Byzantine Broadcast
Résumé
We consider the problem of reliably broadcasting messages in a multi-hop network where nodes can fail in some unforeseen manner. We consider the most general failure model: the Byzantine model, where failing nodes may exhibit arbitrary behavior, and actively try to harm the network. Previous approaches dealing with permanent Byzantine failures limit either the number of Byzantine nodes or their density. In dense network, the density criterium is the allowed fraction of Byzantine neighbors per correct node. In sparse networks, density has been defined as the distance between Byzantine nodes. In this context, we first propose a new algorithm for networks whose communication graph can be decomposed into cycles: e.g., a torus can be decomposed into square cycles, a planar graph into polygonal cycles, etc. Our algorithm ensures reliable broadcast when the distance between permanent Byzantine failures is greater than twice the diameter of the largest cycle of the decomposition. Then, we refine the first protocol to make it Byzantine fault tolerant for transient faults (in addition to permanent Byzantine faults). This additional property is guaranteed by means of self-stabilization, which permits to recover from any arbitrary initial state. This arbitrary initial state can be seen as the result of every node being Byzantine faulty for a short period of time (hence the transient qualification). This second protocol thus tolerates permanent (constrained by density) and transient (unconstrained) Byzantine failures. When the maximum degree and cycle diameter are both bounded, both solutions perform in a time that remains proportional to the network diameter.