Optimal asynchronous agreement and leader election algorithm for complete networks with Byzantine faulty links

  • Authors:
  • Hasan M. Sayeed;Marwan Abu-Amara;Hosame Abu-Amara

  • Affiliations:
  • Department of Electrical Engineering, Texas A&M University, College Station, TX;Bell-Northern Research, P.O. Box 833871, Mail Stop D208, Richardson, TX;Department of Electrical and Computer Engineering, University of Nevada, 4505 Maryland Parkway, Las Vegas, NV

  • Venue:
  • Distributed Computing
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

We consider agreement and leader election on asynchronous complete networks when the processors are reliable, but some of the channels are subject to failure. Fischer, Lynch, and Paterson have already shown that no deterministic algorithm can solve the agreement problem on asynchronous networks if any processor fails during the execution of the algorithm. Therefore, we consider only channel failures. The type of channel failure we consider in this paper is Byzantine failure, that is, channels fail by altering messages, sending false information, forging messages, losing messages at will, and so on. There are no restrictions on the behavior of a faulty channel. Therefore, a faulty channel may act as an adversary who forges messages on purpose to prevent the successful completion of the algorithm. Because we assume an asynchronous network, the channel delays are arbitrary. Thus, the faulty channels may not be detectable unless, for example, the faulty channels cause garbage to be sent. We present the first known agreement and leader election algorithm for asynchronous complete networks in which the processors are reliable but some channels may be Byzantine faulty. The algorithm can tolerate up to ⌊n-2/2⌋ faulty channels, where n is the number of processors in the network. We show that the bound on the number of faulty channels is optimal. When the processors terminate their corresponding algorithms, all the processors in the network will have the same correct vector, where the vector contains the private values of all the processors.