After almost 30 years of research on Byzantine Agreement (BA), the problem continues to be relevant and to re-invent itself in new ways. This column discusses two new research directions that further push the scale of BA. It suggests new domains where BA can, and perhaps should, be deployed.First, our main contribution, by Valerie King and Jared Saia, argues for running BA in setting with a large number of nodes (or processors). Valerie and Jared survey new BA protocols whose communication complexity is scalable in the number of participating processors. This, they argue, enables their deployment in larger-scale domains for which BA was considered infeasible before. The second contribution, by Marko Vukolić, considers another emerging domain for BA. It calls for wider-scale deployment of BA protocols, not among many processors, but rather over multiple cloud computing providers.The column ends with a short announcement about Morgan Claypool's new monograph series on Distributed Computing Theory, edited by Nancy Lynch.Many thanks to Valerie, Jared, and Marko for sharing their insights! Call for contributions: I welcome suggestions for material to include in this column, including news, reviews, opinions, open problems, tutorials and surveys, either exposing the community to new and interesting topics, or providing new insight on well-studied topics by organizing them in new ways.
88
Scalable Byzantine Computation
The Byzantine Agreement ProblemByzantine agreement is arguably one of the most fundamental problems in distributed computing. The basic idea of the problem is this: n players each vote on one of two choices, and the players want to hold an election to decide which choice wins. The problem is made more interesting by the fact that there is no leader, i.e. no single player who everyone knows is trustworthy and can be counted on to tabulate all the votes accurately. We now give a more precise statement of the problem that was first defined in [53]. Each of n players starts with either a 0 or a 1 as input. A certain fraction of the players (say some fraction less than 1/3) are bad, and will collude to thwart the remaining good players. Unfortunately, the good players have no idea who the bad players are. The goal is to create an algorithm for the good players that ensures that• All good players output the same bit in the end • The bit output by all good players is the same as the input bit of at least one good player At first, the second condition may seem very easy to satisfy but completely useless. In fact, it is surprisingly hard to satisfy and extremely useful. To show the problem is hard, consider a naive algorithm where all players send out their bits to each other and then each player outputs the bit that it received from the majority of other players. This algorithm fails because the bad guys can send different messages to different people. In particular, when the vote is close, the bad guys can make one good guy commit to the bit 0 and another good guy commit to the bit 1.We note that the term cons...