Shifting gears: changing algorithms on the fly to expedite Byzantine agreement
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Consensus in the presence of partial synchrony
Journal of the ACM (JACM)
Impossibility of distributed consensus with one faulty process
Journal of the ACM (JACM)
Stutter-invariant temporal properties are expressible without the next-time operator
Information Processing Letters
Distributed Algorithms
Specifying and Verifying Fault-Tolerant Systems
ProCoS Proceedings of the Third International Symposium Organized Jointly with the Working Group Provably Correct Systems on Formal Techniques in Real-Time and Fault-Tolerant Systems
Formally Verified Byzantine Agreement in Presence of Link Faults
ICDCS '02 Proceedings of the 22 nd International Conference on Distributed Computing Systems (ICDCS'02)
Tolerating corrupted communication
Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing
Model Checking of Consensus Algorit
SRDS '07 Proceedings of the 26th IEEE International Symposium on Reliable Distributed Systems
Using Bounded Model Checking to Verify Consensus Algorithms
DISC '08 Proceedings of the 22nd international symposium on Distributed Computing
Automated implementation of complex distributed algorithms specified in the IOA language
International Journal on Software Tools for Technology Transfer (STTT)
A Reduction Theorem for the Verification of Round-Based Distributed Algorithms
RP '09 Proceedings of the 3rd International Workshop on Reachability Problems
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Formal verification of distributed algorithms: from pseudo code to checked proofs
TCS'12 Proceedings of the 7th IFIP TC 1/WG 202 international conference on Theoretical Computer Science
Hi-index | 0.00 |
Consensus is the paradigmatic problem in fault-tolerant distributed computing: it requires network nodes that communicate by message passing to agree on common value even in the presence of (benign or malicious) faults. Several algorithms for solving Consensus exist, but few of them have been rigorously verified, much less so formally. The Heard-Of model proposes a simple, unifying framework for defining distributed algorithms in the presence of communication faults. Algorithms proceed in communication-closed rounds, and assumptions on the faults tolerated by the algorithm are stated abstractly in the form of communication predicates. Extending previous work on the case of benign faults, our approach relies on the fact that properties such as Consensus can be verified over a coarse-grained, round-based representation of executions. We have encoded the Heard-Of model in the interactive proof assistant Isabelle/HOL and have used this encoding to formally verify three Consensus algorithms based on synchronous and asynchronous assumptions. Our proofs give some new insights into the correctness of the algorithms, in particular with respect to transient faults.