Message-passing systems sometimes need to run in a hostile environment that includes malicious behavior. Such behavior is often modeled as Byzantine failures, which are manifested by an arbitrary deviation from the algorithm code. The challenge of defending against Byzantine failures is often addressed by assuming that there are at most t Byzantine nodes. This allows for the design of Byzantine-tolerant algorithms that can always offer safety, i.e., system consistency, but may compromise liveness, i.e., operation termination, whenever some synchrony assumptions are not met. In other words, Byzantine-tolerant algorithms make sure that ‘at worst' any malicious behavior can prevent the system from making progress, but it cannot infringe on its safety requirements. Therefore, this project focuses on studying attractive approaches for further diminishing the adversary's ability to compromise liveness.
Specifically, we study our implementation of a Byzantine-tolerant Reliable Broadcast, which is realized through an unreliable failure detector that detects muteness failures. The application is deployed as a system in which each node logs events, such as the sending and receiving of a message. We theorize that these logs can be used for training a machine-learning model that can outperform the failure detector. However, this project is only focused on data collection and analysis.
In the event that organic crashes do not occur, synthetic crashes are simulated in the application in which nodes cease to respond.
Previous deployments have been made on PlanetLab Europe where seven nodes are currently available, but we wish to perform larger deployments.