Model Checking and Synthesis for Optimal Use of Knowledge in Consensus Protocols
By: Kaya Alpturer, Gerald Huang, Ron van der Meyden
Potential Business Impact:
Computers find better ways for networks to work.
Logics of knowledge and knowledge-based programs provide a way to give abstract descriptions of solutions to problems in fault-tolerant distributed computing, and have been used to derive optimal protocols for these problems with respect to a variety of failure models. Generally, these results have involved complex pencil and paper analyses with respect to the theoretical "full-information protocol" model of information exchange between network nodes. It is equally of interest to be able to establish the optimality of protocols using weaker, but more practical, models of information exchange, or else identify opportunities to improve their performance. Over the last 20 years, automated verification and synthesis tools for the logic of knowledge have been developed, such as the model checker MCK, that can be applied to this problem. This paper concerns the application of MCK to automated analyses of this kind. A number of information-exchange models are considered, for Simultaneous and Eventual variants of Byzantine Agreement under a range of failure types. MCK is used to automatically analyze these models. The results demonstrate that it is possible to automatically identify optimization opportunities, and to automatically synthesize optimal protocols. The paper provides performance measurements for the automated analysis, establishing a benchmark for epistemic model checking and synthesis tools.
Similar Papers
Optimal Simultaneous Byzantine Agreement, Common Knowledge and Limited Information Exchange
Distributed, Parallel, and Cluster Computing
Helps computers agree even with some broken.
Optimality of Simultaneous Consensus with Limited Information Exchange (Extended Abstract)
Distributed, Parallel, and Cluster Computing
Makes computer groups agree faster with less data.
Model Checking as Program Verification by Abstract Interpretation (Extended Version)
Logic in Computer Science
Finds computer bugs by checking code like a game.