An O(log n) expected rounds randomized byzantine generals protocol
Journal of the ACM (JACM)
Early stopping in Byzantine agreement
Journal of the ACM (JACM)
Fully polynomial Byzantine agreement in t + 1 rounds
STOC '93 Proceedings of the twenty-fifth annual ACM symposium on Theory of computing
The weighted majority algorithm
Information and Computation
PODC '97 Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing
An Optimal Probabilistic Protocol for Synchronous Byzantine Agreement
SIAM Journal on Computing
Practical Byzantine fault tolerance
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Reaching Agreement in the Presence of Faults
Journal of the ACM (JACM)
The Byzantine Generals Problem
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient Byzantine Agreement Secure Against General Adversaries
DISC '98 Proceedings of the 12th International Symposium on Distributed Computing
Asymptotically Optimal Distributed Consensus (Extended Abstract)
ICALP '89 Proceedings of the 16th International Colloquium on Automata, Languages and Programming
A New Approach for Byzantine Agreement
ICOIN '01 Proceedings of the The 15th International Conference on Information Networking
Proceedings of the twenty-fifth annual ACM symposium on Principles of distributed computing
HQ replication: a hybrid quorum protocol for byzantine fault tolerance
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Performance study of Byzantine Agreement Protocol with artificial neural network
Information Sciences: an International Journal
Efficient algorithms using the multiplicative weights update method
Efficient algorithms using the multiplicative weights update method
SFCS '83 Proceedings of the 24th Annual Symposium on Foundations of Computer Science
Towards optimal distributed consensus
SFCS '89 Proceedings of the 30th Annual Symposium on Foundations of Computer Science
Making Byzantine fault tolerant systems tolerate Byzantine faults
NSDI'09 Proceedings of the 6th USENIX symposium on Networked systems design and implementation
Breaking the O(n2) bit barrier: scalable byzantine agreement with an adaptive adversary
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
The Weighted Byzantine Agreement Problem
IPDPS '11 Proceedings of the 2011 IEEE International Parallel & Distributed Processing Symposium
Hi-index | 0.00 |
The standard Byzantine Agreement (BA) problem requires non-faulty processes to agree on a common value. In many real-world applications, it is important that the processes agree on the correct value rather than any value. In this paper, we present a problem called Accurate Byzantine Agreement (ABA) in which all processes get a common feedback (or payoff) from the environment indicating if the value they agreed upon was correct or not. The solution to this problem, referred to as the ABA algorithm, requires the non-faulty processes to incorporate the feedback so that their chance of choosing the correct value improves over subsequent iterations of the algorithm. We present an algorithm that solves the ABA problem based on two key ingredients: a standard solution to the BA problem and a multiplicative method to maintain and update process weights indicative of how often they are correct. We give guarantees on the accuracy of the algorithm based on assumptions on the accuracy of the processes and the proportion of faulty and non-faulty processes in the system. For each iteration, if the weight of accurate processes is at least 3/4th the weight of the non-faulty processes, the algorithm always decides on the correct value. When the non-faulty processes are accurate with probability greater than 1/2, the algorithm decides on the correct value with very high probability after some initial number of mistakes. In fact, among n processes, if there exists even one process which is accurate for all iterations, the algorithm is wrong only O(log n) times for any large number of iterations of the algorithm.