The weighted majority algorithm
Information and Computation
Reaching Agreement in the Presence of Faults
Journal of the ACM (JACM)
The Byzantine Generals Problem
ACM Transactions on Programming Languages and Systems (TOPLAS)
Asymptotically Optimal Distributed Consensus (Extended Abstract)
ICALP '89 Proceedings of the 16th International Colloquium on Automata, Languages and Programming
Efficient algorithms using the multiplicative weights update method
Efficient algorithms using the multiplicative weights update method
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
Hi-index | 0.00 |
The Byzantine Agreement (BA) problem requires non-faulty processes to agree on a common value. In many applications, it is important that the processes agree on the correct value. In this paper, we present a problem called Accurate Byzantine Agreement with Feedback (ABAF) in which all processes receive common feedback from the environment indicating if the value they agreed upon was correct or not (accuracy). We present an algorithm that solves the ABAF problem based on 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 make 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.