All-to-All Gradecast using Coding with Byzantine Failures
This paper presents a method that uses forward error correction codes to minimize the message bit complexity when acquiring consistent global information in the presence of faulty processes. We show a modification to the gradecast algorithm that implements our method. Gradecast, first proposed by Feldman and Micali, is a broadcast algorithm for distributed systems that can handle Byzantine failures. It can be used as a basic building block to solve many important problems in distributed computing in the presence of Byzantine failures, such as agreement, clock synchronization, and approximate agreement. Many of these problems require a step where all processes need to send information to all other processes. We refer to the version of gradecast where all processes broadcast to all other processes as all-to-all gradecast. In a distributed system with n processes, n instances of the original gradecast algorithm to perform all-to-all gradecast has a message bit complexity of O(mn3), where m is the length of the message. In this paper, we present an all-to-all gradecast algorithm that takes O(mtn2) message bits, where t is the maximum number of faulty processes. This is a significant reduction in message bit complexity in real systems where t << n. Our all-to-all gradecast algorithm uses coding theory to mask Byzantine failures and has wide applicability in distributed systems. For example, by replacing the original gradecast in the byzantine agreement algorithm proposed by Ben-Or, Dolev and Hoch with O(mtn3) message bit complexity, we get a new byzantine agreement algorithm with O(mt2n2) message bit complexity. Also, this algorithm can be used with their approximate agreement algorithm to get O(kn2t) instead of O(kn3) message bit complexity.