This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

11institutetext: Department of Computer Science, Kent State University, Kent, OH 44242, USA
11email: {joglio@,khood@,sharma@cs.,mikhail@cs.}kent.edu

Byzantine Geoconsensus

Joseph Oglio    Kendric Hood    Gokarna Sharma    Mikhail Nesterenko
Abstract

We define and investigate the consensus problem for a set of NN processes embedded on the dd-dimensional plane, d2d\geq 2, which we call the geoconsensus problem. The processes have unique coordinates and can communicate with each other through oral messages. In contrast to the literature where processes are individually considered Byzantine, it is considered that all processes covered by a finite-size convex fault area FF are Byzantine and there may be one or more processes in a fault area. Similarly as in the literature where correct processes do not know which processes are Byzantine, it is assumed that the fault area location is not known to the correct processes. We prove that the geoconsensus is impossible if all processes may be covered by at most three areas where one is a fault area.

Considering the 2-dimensional embedding, on the constructive side, for M1M\geq 1 fault areas FF of arbitrary shape with diameter DD, we present a consensus algorithm that tolerates fN(2M+1)f\leq N-(2M+1) Byzantine processes provided that there are 9M+39M+3 processes with pairwise distance between them greater than DD. For square FF with side \ell, we provide a consensus algorithm that lifts this pairwise distance requirement and tolerates fN15Mf\leq N-15M Byzantine processes given that all processes are covered by at least 22M22M axis aligned squares of the same size as FF. For a circular FF of diameter \ell, this algorithm tolerates fN57Mf\leq N-57M Byzantine processes if all processes are covered by at least 85M85M circles. We then extend these results to various size combinations of fault and non-fault areas as well as dd-dimensional process embeddings, d3d\geq 3.

1 Introduction

The problem of Byzantine consensus [12, 17] has been attracting extensive attention from researchers and engineers in distributed systems. It has applications in distributed storage [1, 2, 4, 5, 11], secure communication [7], safety-critical systems [19], blockchain [15, 20, 22], and Internet of Things (IoT) [13].

Consider a set of NN processes with unique IDs that can communicate with each other. Assume that ff processes out of these NN processes are Byzantine. Assume also that which process is Byzantine is not known to correct processes, except possibly the size ff of Byzantine processes. The Byzantine consensus problem here requires the NfN-f correct processes to reach to an agreement tolerating arbitrary behaviors of the ff Byzantine processes.

Pease et al. [17] showed that the maximum possible number of faults ff that can be tolerated depends on the way how the (correct) processes communicate: through oral messages or through unforgable written messages (also called signatures). An oral message is completely under the control of the sender, therefore, if the sender is Byzantine, then it can transmit any possible message. This is not true for a signed, written message. Pease et al. [17] showed that the consensus is solvable only if f<N/3f<N/3 when communication between processes is through oral messages. For signed, written messages, they showed that the consensus is possible tolerating any number of faulty processes fNf\leq N.

The Byzantine consensus problem discussed above assumes nothing about the locations of the processes, except that they have unique IDs. Since each process can communicate with each other, it can be assumed that the NN processes work under a complete graph (i.e., clique) topology consisting of NN vertices and N(N1)/2N(N-1)/2 edges. Byzantine consensus has also been studied in arbitrary graphs [21, 17] and in wireless networks [16], relaxing the complete graph topology requirement so that a process may not be able to communicate with all other N1N-1 processes. The goal in these studies is to establish necessary and sufficient conditions for consensus to be solvable. For example, Pease et al. [17] showed that the consensus is solvable through oral messages tolerating ff Byzantine processes if the communication topology is 3f3f-regular. Furthermore, there is a number of studies on a related problem of Byzantine broadcast when the communication topology is not a complete graph topology, see for example [10, 18]. Byzantine broadcast becomes fairly simple for a complete graph topology.

Recently, motivated by IoT-blockchain applications, Lao et al. [13] proposed a consensus protocol, which they call Geographic-PBFT or simply G-PBFT, that extends the well-known PBFT consensus protocol by Castro and Liskov [4] to the geographic setting. The authors considered the case of fixed IoT devices embedded on geographical locations for data collection and processing. The location data can be obtained through recording location information at the installation time or can also be obtained using low-cost GPS receivers or location estimation algorithms [3, 9]. They argued that the fixed IoT devices have more computational power than other mobile IoT devices (e.g., mobile phones and sensors) and are less likely to become malicious nodes. They then exploited (geographical) location information of fixed IoT devices to reach consensus. They argued that G-PBFT avoids Sybil attacks, reduces the overhead for validating and recording transactions, and achieves high consensus efficiency and low traffic intensity. However, G-PBFT is validated only experimentally and no formal analysis is given.

In this paper, we formally define and study the Byzantine consensus problem when processes are embedded on the geographical locations in fixed unique coordinates, which we call the Byzantine geoconsensus problem. If fault locations are not constrained, the geoconsensus problem differs little from the Byzantine consensus. This is because the unique locations serve as IDs of the processes and same set of results can be established depending on whether communication between processes is through oral messages or unforgable written messages. Therefore, we relate the fault locations to the geometry of the problem, assuming that the faults are limited to a fault area FF (going beyond the limitation of mapping Byzantine behavior to individual processes). In other words, the fault area lifts the restriction of mapping Byzantine behavior to individual processes in the classic setting and now maps the Byzantine behavior to all the processors within a certain area in the geographical setting. Applying the classic approaches of Byzantine consensus may not exploit the collective Byzantine behavior of the processes in the fault area and hence they may not provide benefits in the geographical setting. Furthermore, we are not aware of prior work in Byzantine consensus where processes are embedded in a geometric plane while faulty processes are located in a fixed area.

In light of the recent development on location-based consensus protocols, such as G-PBFT [13], discussed above, we believe that our setting deserves a formal study. In this paper we consider the Byzantine geoconsensus problem in case the processes are embedded in a dd-dimensional plane, d2d\geq 2. We study the possibility and bounds for a solution to geoconsensus. We demonstrate that geoconsensus allows quite robust solutions: all but a fixed number of processes may be Byzantine.

Contributions. Let NN denotes the number of processes, MM denotes the number of fault areas FF, DD denotes the diameter of FF, and ff denotes the number of faulty processes. Assume that each process can communicate with all other N1N-1 processes and the communication is through oral messages. Assume that all the processes covered by a faulty area FF are Byzantine. The correct processes know the size of each faulty area (such as its diameter, number of edges, area, etc.) and the total number MM of them but do not know their exact location.

In this paper, we made the following five contributions:

  • (i)

    An impossibility result that geoconsensus is not solvable if all NN processes may be covered by 33 equal size areas FF and one of them may be fault area. This extends to the case of NN processes being covered by 3M3M areas FF with MM areas being faulty.

  • (ii)

    The algorithm BASIC that solves geoconsensus tolerating fN(2M+1)f\leq N-(2M+1) Byzantine processes, provided that there are 9M+39M+3 processes with pairwise distance between them greater than DD.

  • (iii)

    The algorithm GENERIC that solves geoconsensus tolerating fN15Mf\leq N-15M Byzantine processes, provided that all NN processes are covered by 22M22M axis-aligned squares of the same size as the fault area FF, removing the pairwise distance assumption in the algorithm BASIC.

  • (iv)

    An extension of the GENERIC algorithm to circular FF tolerating fN57Mf\leq N-57M Byzantine processes if all NN processes are covered by 85M85M circles of same size as FF.

  • (v)

    Extensions of the results (iii) and (iv) to various size combinations of fault and non-fault areas as well as to dd-dimensional process embeddings, d3d\geq 3.

Our results are interesting as they provide trade-offs among N,M,N,M, and ff, which is in contrast to the trade-off provided only between NN and ff in the Byzantine consensus literature. For example, the results in Byzantine consensus show that only f<N/3f<N/3 Byzantine processes can be tolerated, whereas our results show that as many as fNαMf\leq N-\alpha M, Byzantine processes can be tolerated provided that the processes are placed on the geographical locations so that at least βM\beta M areas (same size as FF) are needed to cover them. Here α\alpha and β\beta are both integers with βcα\beta\geq c\cdot\alpha for some constant cc.

Furthermore, our geoconsensus algorithms reduce the message and space complexity in solving consensus. In the Byzantine consensus literature, every process sends communication with every other process in each round. Therefore, in one round there are O(N2)O(N^{2}) messages exchanged in total. As the consensus algorithm runs for O(f)O(f) rounds, in total O(fN2)O(f\cdot N^{2}) messages are exchanged in the worst-case. In our algorithms, let NN processes are covered by XX areas of size the same as fault area FF. Then in a round only O(X2)O(X^{2}) messages are exchanged. Since the algorithm runs for O(M)O(M) rounds to reach geoconsensus, in total O(MX2)O(M\cdot X^{2}) messages are exchanged in the worst-case. Therefore, our geoconsensus algorithms are message (equivalently communication) efficient. The improvement on space complexity can also be argued analogously.

Finally, Pease et al. [17] showed that it is impossible to solve consensus through oral messages when N=3fN=3f but there is a solution when N3f+1N\geq 3f+1. That is, there is no gap on the impossibility result and a solution. We can only show that it is impossible to solve consensus when all NN processes are covered by 3M3M areas that are the same size as FF but there is a solution when all NN processes are covered by at least 22M22M areas (for the axis-aligned squares case). Therefore, there is a general gap between the condition for impossibility and the condition for a solution. We leave this gap as open and note that it would be interesting at the same time challenging to close this gap.

Techniques. Our first contribution is established extending the impossibility proof technique of Pease et al. [17] for Byzantine consensus to the geoconsensus setting. The algorithm BASIC is established first through a leader selection to compute a set of leaders so that they are pairwise more than distance DD away from each other and then running carefully the Byzantine consensus algorithm of Pease et al. [17] on those leaders.

For the algorithm GENERIC, we start by covering processes by axis-aligned squares and studying how these squares may intersect with fault areas of various shapes and sizes. Determining optimal axis-aligned square coverage is NP-hard. We provide constant-ratio approximation algorithms. We also discuss how to cover processes by circular areas. Then, we use these ideas to construct algorithm GENERIC for fault areas that are either square or circular, which does not need the pairwise distance requirement of BASIC but requires the bound on the number of areas in the cover area set. Finally, we extend these ideas to develop covering techniques for higher dimensions.

Roadmap. We introduce notation and the geoconsensus problem, and establish an impossibility of geoconsensus in Section 2. We present in Section 3 algorithm BASIC. We discuss covering processes in Section 4. We then present in Section 5 algorithm GENERIC. In Section 6, we extend the results to dd-dimensional space, d3d\geq 3. In Section 7, we conclude the paper with a short discussion on future work.

2 Notation, Problem Definition, and Impossibility

Processes. A computer system consists of a set 𝒫={p1,,pN}{\mathcal{P}}=\{p_{1},\ldots,p_{N}\} of NN processes. Each process pip_{i} embedded in the 2-dimensional plane has unique planar coordinates (xi,yi)(x_{i},y_{i}). The coordinates for higher dimensions can be defined accordingly. Each process is aware of coordinates of all the other processes and is capable of sending a message to any of them. The sender of the message may not be spoofed. Communication is synchronous. The communication between processes is through oral messages.

Byzantine faults. A process may be either correct or faulty. The fault is Byzantine. A faulty process may behave arbitrarily. This fault is permanent. To simplify the presentation, we assume that all faulty processes are controlled by a unique adversary trying to thwart the system from achieving its task.

Fault area. The adversary controls the processes as follows. Let the fault area FF be a finite-size convex area in the plane. Let DD be the diameter of FF, i.e. the maximum distance between any two points of FF. The adversary may place FF in any location on the plane. A process pip_{i} is covered by FF if the coordinate (xi,yi)(x_{i},y_{i}) of pip_{i} is either in the interior or on the boundary of FF. Every process covered by FF is faulty.

Symbol Description
NN; 𝒫{\mathcal{P}}; (xi,yi)(x_{i},y_{i}) number of processes; {p1,,pN}\{p_{1},\ldots,p_{N}\}; planar coordinates of process pip_{i}
F;DF;D; \mathcal{F} fault area; diameter of FF; a set of fault areas FF with ||=M|\mathcal{F}|=M
ff number of faulty processes
𝒫D{\mathcal{P}}_{D} processes in 𝒫{\mathcal{P}} such that pairwise distance between them is more than DD
AA (or Aj(Ri)A_{j}(R_{i})); 𝒜{\mathcal{A}} cover area that is of same shape and size as FF; a set of cover areas AA
n(F)n(F) number of cover areas A𝒜A\in{\mathcal{A}} that a fault area FF overlaps
Table 1: Notation used throughout the paper.

A fault area set or just fault set is the set \mathcal{F} of identical fault areas FF. The size of this set is MM, i.e., ||=M|\mathcal{F}|=M. The adversary controls the placement of all areas in \mathcal{F}. Correct processes know the shape and size of the fault areas FF as well as MM, the size of \mathcal{F}. However, correct processes do not know the precise placement of the fault areas \mathcal{F}. For example, if \mathcal{F} contains 44 fault square fault areas FF with the side \ell, then correct processes know that there are 44 square fault areas with side \ell each but do not know where they are located. Table 1 summarizes notation used in this paper.

Byzantine Geoconsensus. Consider the binary consensus where every correct process is input a value v{0,1}v\in\{0,1\} and must output an irrevocable decision with the following three properties.

agreement

– no two correct processes decide differently;

validity

– if all the correct processes input the same value vv, then every correct process decides vv;

termination

– every correct process eventually decides.

Definition 1

An algorithm solves the Byzantine geoconsensus Problem (or geoconsensus for short) for fault area set \mathcal{F}, if every computation produced by this algorithm satisfies the three consensus properties.

Impossibility of Geoconsensus. Given a certain set of embedded processes 𝒫{\mathcal{P}} and single area FF, the coverage number kk of 𝒫{\mathcal{P}} by FF is the minimum number of such areas required to cover each node of 𝒫{\mathcal{P}}. We show that geoconsensus is not solvable if the coverage number kk is less than 44. When the coverage number is 33 or less, the problem translates into classic consensus with 3 sets of peers where one of the sets is faulty. Pease et al. [17] proved the solution to be impossible. The intuition is that a group of correct processes may not be able to distinguish which of the other two groups is Byzantine and which one is correct. Hence, the correct groups may not reach consensus.

Theorem 2.1 (Impossibility of Geoconsensus)

Given a set 𝒫{\mathcal{P}} of N3N\geq 3 processes and an area FF, there exists no algorithm that solves the geoconsensus Problem if the coverage number kk of 𝒫{\mathcal{P}} by FF is less than 44.

Proof

Set N=3κN=3\cdot\kappa, for some positive integer κ1\kappa\geq 1. Place three areas AA on the plane in arbitrary locations. To embed processes in 𝒫{\mathcal{P}}, consider a bijective placement function f:𝒫𝒜f:{\mathcal{P}}\rightarrow{\mathcal{A}} such that κ\kappa processes are covered by each area AA. Let vv and vv^{\prime} be two distinct input values 0 and 11. Suppose one area AA is fault area, meaning that all κ\kappa processes in that area are faulty.

This construction reduces the Byzantine goeconsensus problem to the impossibility construction for the classic Byzantine consensus problem given in the theorem in Section 4 of Pease et al. [17] for the 3κ3\kappa processes out of which κ\kappa are Byzantine. ∎

1 Setting: A set 𝒫{\mathcal{P}} of NN processes positioned at distinct coordinates. Each process can communicate with all other processes and knows their coordinates. There are M1M\geq 1 identical fault areas FF. The diameter of a fault area is DD. The locations of any area FF is not known to correct processes. Each process covered by any FF is Byzantine.
2 Input: Each process has initial value either 0 or 1.
3 Output: Each correct process outputs decision subject to Geoconsensus.
4 Procedure for process pk𝒫p_{k}\in{\mathcal{P}}
5 // leaders selection
6 Let PDP_{D}\leftarrow\emptyset, PC𝒫P_{C}\leftarrow{\mathcal{P}};
7 while PCP_{C}\neq\emptyset do
8       let P3PDP_{3}\subset P_{D} be a set of processes such that pjP3\forall p_{j}\in P_{3}, 𝑁𝑏(pj,D)\mathit{Nb}(p_{j},D) has distance DD independent set of at most 3;
9       let piP3p_{i}\in P_{3}, located in (xi,yi)(x_{i},y_{i}) be the lexicographically smallest process in P3P_{3}, i.e. pjpiP3:\forall p_{j}\neq p_{i}\in P_{3}: located in (xj,yj)(x_{j},y_{j}) either xi<xjx_{i}<x_{j} or xi=xjx_{i}=x_{j} and yi<yjy_{i}<y_{j};
10       add pip_{i} to PDP_{D};
11       remove pip_{i} from PCP_{C};
12       pj𝑁𝑏(pi,D)\forall p_{j}\in\mathit{Nb}(p_{i},D) remove pjp_{j} from PCP_{C};
13      
14
15// consensus
16 if pkPDp_{k}\in P_{D} then
17      run PSL algorithm, achieve decision vv, broadcast vv, output vv;
18else
19       wait for messages with identical decision vv from at least 2M+12M+1 processes from 𝒫D{\mathcal{P}}_{D}, output vv;
20
Algorithm 1 BASIC geoconsensus algorithm.

3 The BASIC Geoconsensus Algorithm

In this section, we present the algorithm we call BASIC that solves geoconsensus for up to f<N(2M+1),M1f<N-(2M+1),M\geq 1 faulty processes located in fault area set \mathcal{F} of size ||=M|\mathcal{F}|=M provided that 𝒫{\mathcal{P}} contains at least 9M+39M+3 processes such that the pairwise distance between them is greater than the diameter DD of the fault areas FF\in\mathcal{F}.

The pseudocode of BASIC is shown in Algorithm 1. It contains two parts: the leaders selection and the consensus procedure. The first component is the selection of leaders. So as to not be covered by FF jointly, the leaders need to be located pairwise distance more than DD away from each other. Finding the largest set of such leaders is equivalent to computing the maximal independent set in a unit disk graph. This problem is known to be NP-hard [6]. We, therefore, employ a greedy heuristic.

For the leaders selection, for each process pip_{i}, denote by 𝑁𝑏(pi,D)\mathit{Nb}(p_{i},D) the distance DD neighborhood of pip_{i}. That is, pj𝑁𝑏(pi,D)p_{j}\in\mathit{Nb}(p_{i},D) if d(pi,pj)Dd(p_{i},p_{j})\leq D. A distance DD independent set for a planar graph is a set of processes such that all processes in the planar graph are at most DD away from the processes in this independent set. It is known [14, Lemma 3.3] that every distance DD graph has a neighborhood whose induced subgraph contains any independent set of size at most 3.

The set of leaders 𝒫D𝒫{\mathcal{P}}_{D}\subset{\mathcal{P}} selection procedure operates as follows. A set PCP_{C} of leader candidates is processed. At first, all processes are candidates. All processes whose distance DD neighborhood induce a subgraph with an independent set no more than 33 are found. The process pip_{i} with lexicographically smallest coordinates, i.e. the process in the bottom left corner, is selected into the leader set 𝒫D{\mathcal{P}}_{D}. Then, all processes in 𝑁𝑏(pi,D)\mathit{Nb}(p_{i},D) are removed from the leader candidate set 𝒫C{\mathcal{P}}_{C}. This procedure repeats until 𝒫C{\mathcal{P}}_{C} is exhausted.

The second part of BASIC relies on the classic consensus algorithm of Pease et al. [17]. We denote this algorithm as PSL. The input of PSL is the set of 3f+13f+1 processes such that at most ff of them are faulty as well as the input 11 or 0 for each process. As output, the correct processes provide the decisions value subject to the three properties of the solution to consensus. PSL requires f+1f+1 communication rounds.

The complete BASIC operates as follows. All processes select leaders in PDP_{D}. Then, the leaders run PSL and broadcast their decision. The rest of the correct processes, if any, adopt this decision.

Analysis of BASIC. The observation below is immediate since all processes run exactly the same deterministic leaders selection procedure.

Observation 1

For any two processes pi,pj𝒫p_{i},p_{j}\in{\mathcal{P}}, set PDP_{D} computed by pip_{i} is the same as set PDP_{D} computed by pjp_{j}.

Lemma 1

If 𝒫{\mathcal{P}} contains at least 3x3x processes such that the distance between any pair of such processes is >D>D, then the size of PDP_{D} computed by processes in BASIC is x\geq x.

Proof

For the same problem like ours, in [14, Theorem 4.7], it is proven that the heuristic we use for the leaders selection provides a distance DD independent set PDP_{D} whose size is no less than a third of optimal size. Thus, x|PD|x\leq|P_{D}|. The lemma follows. ∎

Lemma 2

Consider a fault area FF with diameter DD. No two processes in 𝒫D{\mathcal{P}}_{D} are covered by FF.

Proof

For any two processes pi,pj𝒫Dp_{i},p_{j}\in{\mathcal{P}}_{D}, d(pi,pj)>Dd(p_{i},p_{j})>D. Since any area FF has diameter DD, no two processes >D>D away can be covered by FF simultaneously. ∎

Theorem 3.1

Algorithm BASIC solves the Byzantine geoconsensus Problem for a fault area set \mathcal{F}, the size of M1M\geq 1 with fault areas FF with diameter DD for NN processes in 𝒫{\mathcal{P}} tolerating fN(2M+1)f\leq N-(2M+1) Byzantine faults provided that 𝒫{\mathcal{P}} contains at least 9M+39M+3 processes such that their pairwise distance is more than DD. The solution is achieved in M+2M+2 communication rounds.

Proof

If 𝒫{\mathcal{P}} contains at least 9M+39M+3 processes whose pairwise distance is more than DD, then, according to Lemma 1, each processes in BASIC selects PDP_{D} such that |PD|3M+1|P_{D}|\geq 3M+1. We have M1M\geq 1 fault areas, i.e., ||=M|\mathcal{F}|=M. From Lemma 2, a process p𝒫Dp\in{\mathcal{P}}_{D} can be covered by at most one fault area FF. Therefore, when |PD|3M+1|P_{D}|\geq 3M+1, then it is guaranteed that even when MM processes in 𝒫D{\mathcal{P}}_{D} are Byzantine, 2M+12M+1 correct processes in 𝒫D{\mathcal{P}}_{D} can reach consensus using PSL algorithm.

In the worst case, the adversary may position fault areas of \mathcal{F} such that all but 2M+12M+1 processes in 𝒫{\mathcal{P}} are covered. Hence, BASIC tolerates N(2M+1)N-(2M+1) faults.

Let us address the number of rounds that BASIC requires to achieve geoconsensus. It has two components executed sequentially: leaders election and PSL. Leaders election is done independently by all processes and requires no communication. PSL, takes M+1M+1 rounds for the 2M+12M+1 leaders to arrive at the same decision. It takes another round for the leaders to broadcast their decision. Hence, the total number of rounds is M+2M+2. ∎

4 Covering Processes

In this section, in preparation for describing the GENERIC geoconsensus algorithm, we discuss techniques of covering processes by axis-aligned squares and circles. These techniques vary depending on the shape and alignment of the fault area FF.

Covering by Squares. The algorithm we describe below covers the processes by square areas AA of size ×\ell\times\ell, assuming that the fault areas FF are also squares of the same size. Although FF may not be axis-aligned, we use axis-aligned areas AA for the cover and later determine how many such axis-aligned areas AA that possibly non-axis-aligned fault area FF may overlap. Let AA be positioned on the plane such that the coordinate of its bottom left corner is (x1,y1)(x_{1},y_{1}). The coordinates of its top left, top right, and bottom right corners are respectively (x1,y1+),(x1+,y1+),(x_{1},y_{1}+\ell),(x_{1}+\ell,y_{1}+\ell), and (x1+,y1)(x_{1}+\ell,y_{1}).

Let process pip_{i} be at coordinate (xi,yi)(x_{i},y_{i}). We say that pip_{i} is covered by AA if and only if x1xix1+x_{1}\leq x_{i}\leq x_{1}+\ell and y1yiy1+y_{1}\leq y_{i}\leq y_{1}+\ell. We assume that AA is closed, i.e., process pip_{i} is assumed to be covered by AA even when pip_{i} is positioned on the boundary of AA.

We first formally define the covering problem by square areas AA, which we denote by SQUARE-COVER. Let 𝒜{\mathcal{A}} be a set of square areas AA. We say that 𝒜{\mathcal{A}} completely covers all NN processes if each pi𝒫p_{i}\in{\mathcal{P}} is covered by at least one square of 𝒜{\mathcal{A}}.

Definition 2 (The SQUARE-COVER problem)

Suppose NN processes are embedded into a 2d-plane such that the coordinates of each process are unique. The SQUARE-COVER problem is to determine if a certain number of square areas A=×A=\ell\times\ell can completely cover these NN processes.

Theorem 4.1

SQUARE-COVER is NP-Complete.

Proof

The proof is to show that SQUARE-COVER is equivalent to the BOX-COVER problem which was shown to be NP-Complete by Fowler et al. [8]. BOX-COVER is defined as follows: There is a set of NN points on the plane such that each point has unique integer coordinates. A closed box (rigid but relocatable) is set to be a square with side 2 and is axis-aligned. The problem is to decide whether a set of k1k\geq 1 identical axis-aligned closed boxes are enough to completely cover all NN points. Fowler et al. provided a polynomial-time reduction of 3-SAT to BOX-COVER such that kk boxes will suffice if and only if the 3-SAT formula is satisfiable. In this setting, SQUARE-COVER (Definition 2) reduces to BOX-COVER for =2\ell=2. Therefore, the NP-Completeness of BOX-COVER extends to SQUARE-COVER. ∎

A Greedy Square Cover Algorithm. Since SQUARE-COVER is NP-Complete, we use a greedy approximation algorithm to find a set 𝒜{\mathcal{A}} of kgreedyk_{greedy} axis-aligned square areas A=×A=\ell\times\ell that completely cover all NN processes in 𝒫{\mathcal{P}}. We prove that kgreedy2koptk_{greedy}\leq 2\cdot k_{opt} (i.e., 2-approximation), where koptk_{opt} is the optimal number of axis-aligned squares in any algorithm to cover those NN processes. We call this algorithm GSQUARE. Each process pip_{i} can run GSQUARE independently, because pip_{i} knows all required input parameters for GSQUARE.

GSQUARE operates as follows. Suppose the coordinates of process pi𝒫p_{i}\in{\mathcal{P}} are (xi,yi)(x_{i},y_{i}). Let xmin=min1iNxi,xmax=max1iNxi,ymin=min1iNyi,x_{min}=\min_{1\leq i\leq N}x_{i},x_{max}=\max_{1\leq i\leq N}x_{i},y_{min}=\min_{1\leq i\leq N}y_{i}, and ymax=max1iNyi.y_{max}=\max_{1\leq i\leq N}y_{i}. Let RR be an axis-aligned rectangle with the bottom left corner at (xmin,ymin)(x_{min},y_{min}) and the top right corner at (xmax,ymax)(x_{max},y_{max}). It is immediate that RR is the smallest axis-aligned rectangle that covers all NN processes. The width of RR is width(R)=xmaxxminwidth(R)=x_{max}-x_{min} and the height is height(R)=ymaxyminheight(R)=y_{max}-y_{min}. See Figure 1 for illustration.

Refer to caption
Figure 1: Selection of axis-aligned smallest enclosing rectangle RR covering all NN processes in 𝒫{\mathcal{P}} and division of RR into axis-aligned slabs RiR_{i} of height \ell and width width(R)width(R). The slabs are selected such that the bottom side of each slab RiR_{i} has at least one process positioned on it.

Cover rectangle RR by a set {\mathcal{R}} of mm slabs ={R1,R2,,Rm}{\mathcal{R}}=\{R_{1},R_{2},\ldots,R_{m}\}. The height of each slab RiR_{i} is \ell, except for the last slab RmR_{m} whose height may be less than \ell. The width of each slab is width(R)width(R). That is this width is the same is the width of RR.

This slab-covering is done as follows. Let y1=ymin+y_{1}=y_{min}+\ell. The area of RR between two horizontal lines passing through yminy_{min} to y1y_{1} is the first slab R1R_{1}. Now consider only the processes in RR that are not covered by R1R_{1}. Denote that process set by 𝒫{\mathcal{P}}^{\prime}. Consider the bottom-most process in 𝒫{\mathcal{P}}^{\prime}, i.e., process pmin=(xmin,ymin)𝒫p_{min^{\prime}}=(x_{min^{\prime}},y_{min^{\prime}})\in{\mathcal{P}}^{\prime}. We have that ymin>ymin+y_{min^{\prime}}>y_{min}+\ell. Draw two horizontal lines passing through yminy_{min^{\prime}} and ymin+y_{min^{\prime}}+\ell. The area of RR between these lines is in slab R2R_{2}. Continue this way until all the points in 𝒫{\mathcal{P}} are covered by a slab. In the last slab RmR_{m}, it may be the case that its height height(Rm)<height(R_{m})<\ell.

Refer to caption
Figure 2: Selection of axis-aligned areas Aj(R2)A_{j}(R_{2}) (shown in red) to cover the processes in the slab R2R_{2} of Figure 1. The left side of each area Aj(R2)A_{j}(R_{2}) has at least one process positioned on it.

So far, we covered RR by a set of mm slabs ={R1,,Rm}{\mathcal{R}}=\{R_{1},\ldots,R_{m}\}. We now we cover each such slab by axis-aligned square areas A=×A=\ell\times\ell. See Figure 2 for illustration. This square-covering is done as follows. Let RiR_{i} be a slab to cover. Put area AA on RiR_{i} so that the top left corner of AA overlaps with the top left corner of slab RiR_{i}. Slide AA horizontally to the right so that there is a process in RiR_{i} positioned on the left vertical line of AA. Fix that area AA as one cover square and name it A1(Ri)A_{1}({R_{i}}). Now consider only the points in RiR_{i} not covered by A1(Ri)A_{1}(R_{i}). It is immediate that those points are to the right of A1(Ri)A_{1}(R_{i}). Place AA on those points so that there is a point in RiR_{i} positioned on the left side of AA. Thus, there is no point of RiR_{i} to the left of this second AA that is not covered by A1(Ri)A_{1}({R_{i}})). Fix this as the second cover square and name it A2(Ri)A_{2}({R_{i}}). Continue in this manner to cover all the points in RiR_{i}. Repeat this process for every slab of RR.

Lemma 3

Consider any two slabs Ri,RjR_{i},R_{j}\in{\mathcal{R}} produced by GSQUARE. RiR_{i} and RjR_{j} do not overlap, i.e., if some process pRip\in R_{i}, then pRjp\notin R_{j}.

Proof

It is sufficient to prove this lemma for adjacent slabs. Suppose slabs RiR_{i} and RjR_{j} are adjacent, i.e., j=i+1j=i+1. According to the operation of GSQUARE, after the location of RiR_{i} is selected, only processes that are not covered by the slabs so far are considered for the selection of RjR_{j}. The first such process lies above the top (horizontal) side of RiR_{i}. Hence, there is a gap between the top side of RiR_{i} and the bottom side of RjR_{j}.∎

Lemma 4

Consider any two square areas Aj(Ri)A_{j}({R_{i}}) and Ak(Ri)A_{k}(R_{i}) selected by GSQUARE in slab RiR_{i}\in{\mathcal{R}}. Aj(Ri)A_{j}({R_{i}}) and Ak(Ri)A_{k}({R_{i}}) do not overlap, i.e., if some process pAj(Ri)p\in A_{j}({R_{i}}), then pAk(Ri)p\notin A_{k}({R_{i}}).

Proof

It is sufficient to prove the lemma for adjacent squares. Suppose Aj(Ri)A_{j}({R_{i}}) and Ak(Ri)A_{k}({R_{i}}) are adjacent, i.e., k=j+1k=j+1. Consider the operation of GSQUARE in slab RiR_{i} covered by Aj(Ri)A_{j}({R_{i}}) and Ak(Ri)A_{k}({R_{i}}). Area Ak(Ri)A_{k}({R_{i}}) only covers the processes that are not covered by Aj(Ri)A_{j}({R_{i}}) and, therefore, to the right of the right side of Aj(Ri)A_{j}({R_{i}}). As the left side of Ak(Ri)A_{k}({R_{i}}) is placed on the first such process, there is a non-empty gap between the two squares: Aj(Ri)A_{j}({R_{i}}) and Ak(Ri)A_{k}({R_{i}}).∎

Lemma 5

Consider slab RiR_{i}\in{\mathcal{R}}. Let k(Ri)k({R_{i}}) be the number of squares Aj(Ri)A_{j}({R_{i}}) to cover all the processes in RiR_{i} using GSQUARE. There is no algorithm that can cover the processes in RiR_{i} with k(Ri)k^{\prime}(R_{i}) number of squares Aj(Ri)A_{j}({R_{i}}) such that k(Ri)<k(Ri)k^{\prime}(R_{i})<k({R_{i}}).

Proof

Notice that slab RiR_{i} has height height(Ri)=height(R_{i})=\ell which is the same as the sides of (axis-aligned) squares Aj(Ri)A_{j}(R_{i}) used to cover RiR_{i}.

GSQUARE operates such that it places a square AA so that some process pp lies on the left side of this square. Consider a sequence of such processes: σp1pu,pu+1pj\sigma\equiv\langle p_{1}\cdots p_{u},p_{u+1}\cdots p_{j}\rangle. Consider any pair of subsequent processes pup_{u} and pu+1p_{u+1} in σ\sigma with respective coordinates (xu,yu)(x_{u},y_{u}) and (xu+1,yu+1)(x_{u+1},y_{u+1}). GSQUARE covers them with non-overlapping squares with side \ell. Therefore, xu+<xu+1x_{u}+\ell<x_{u+1}. That is, the distance between consequent processes in σ\sigma is greater than \ell. Hence, any such pair of processes may not be covered by a single square. Since the number of squares placed by GSQUARE in slab RiR_{i} is kk, the number of processes in σ\sigma is also kk. Any algorithm that covers these processes with axis-aligned squares requires at least kk squares. ∎

Let kopt()k_{opt}({\mathcal{R}}) be the number of axis-aligned square areas A=×A=\ell\times\ell to cover all NN processes in RR in the optimal cover algorithm. We now show that kgreedy()2kopt()k_{greedy}({\mathcal{R}})\leq 2\cdot k_{opt}({\mathcal{R}}), i.e., GSQUARE provides 2-approximation. We divide the slabs in the set {\mathcal{R}} into two sets odd{\mathcal{R}}_{odd} and even{\mathcal{R}}_{even}. For 1im1\leq i\leq m, let

odd:={Ri,imod20} and even:={Ri,imod2=0}.{\mathcal{R}}_{odd}:=\{R_{i},i\mod 2\neq 0\}\text{~{}and~{}}{\mathcal{R}}_{even}:=\{R_{i},i\mod 2=0\}.
Lemma 6

Let k(odd)k({\mathcal{R}}_{odd}) and k(even)k({\mathcal{R}}_{even}) be the total number of (axis-aligned) square areas A=×A=\ell\times\ell to cover the processes in the sets odd{\mathcal{R}}_{odd} and even{\mathcal{R}}_{even}, respectively. Let kopt()k_{opt}({\mathcal{R}}) be the optimal number of axis-aligned squares A=×A=\ell\times\ell to cover all the processes in {\mathcal{R}}. kopt()max{k(odd),k(even)}.k_{opt}({\mathcal{R}})\geq\max\{k({\mathcal{R}}_{odd}),k({\mathcal{R}}_{even})\}.

Proof

Consider two slabs RiR_{i} and Ri+2R_{i+2} for i1i\geq 1. Consider a square Aj(Ri)A_{j}(R_{i}) placed by GSQUARE. Consider also two processes pRip\in R_{i} and pRi+2p^{\prime}\in R_{i+2}, respectively. The distance between pp and pp^{\prime} is d(p,p)>d(p,p^{\prime})>\ell. Therefore, if Aj(Ri)A_{j}(R_{i}) covers pp, then it cannot cover pRi+2p^{\prime}\in R_{i+2}. Therefore, no algorithm can produce the optimal number of squares kopt()k_{opt}({\mathcal{R}}) less than the maximum between k(odd)k({\mathcal{R}}_{odd}) and k(even)k({\mathcal{R}}_{even}). ∎

Lemma 7

kgreedy()2kopt()k_{greedy}({\mathcal{R}})\leq 2\cdot k_{opt}({\mathcal{R}}).

Proof

From Lemma 5, we obtain that GSQUARE is optimal for each slab RiR_{i}. From Lemma 6, we get that for any algorithm kopt()max{k(odd),k(even)}.k_{opt}({\mathcal{R}})\geq\max\{k({\mathcal{R}}_{odd}),k({\mathcal{R}}_{even})\}. Moreover, the GSQUARE produces the total number of squares kgreedy()=k(odd)+k(even).k_{greedy}({\mathcal{R}})=k({\mathcal{R}}_{odd})+k({\mathcal{R}}_{even}). Comparing kgreedy()k_{greedy}({\mathcal{R}}) with kopt()k_{opt}({\mathcal{R}}), we get

kgreedy()kopt()k(odd)+k(even)max{k(odd),k(even)}2max{k(odd),k(even)}max{k(odd),k(even)}2.\frac{k_{greedy}({\mathcal{R}})}{k_{opt}({\mathcal{R}})}\leq\frac{k({\mathcal{R}}_{odd})+k({\mathcal{R}}_{even})}{\max\{k({\mathcal{R}}_{odd}),k({\mathcal{R}}_{even})\}}\leq\frac{2\cdot\max\{k({\mathcal{R}}_{odd}),k({\mathcal{R}}_{even})\}}{\max\{k({\mathcal{R}}_{odd}),k({\mathcal{R}}_{even})\}}\leq 2.~{}~{}~{}~{}~{}\squareforqed

Covering by Circles. Let us formulate the covering by identical circles CC of diameter \ell, which we denote CIRCLE-COVER. Let 𝒜{\mathcal{A}} be the set of circles CC. We say that 𝒜{\mathcal{A}} completely covers all the processes if every process pi𝒫p_{i}\in{\mathcal{P}} is covered by at least one of the circles in 𝒜{\mathcal{A}}. The following result can be established similar to SQUARE-COVER.

Theorem 4.2

CIRCLE-COVER is NP-Complete.

A Greedy Circle Cover Algorithm. We call this algorithm GCIRCLE. Pick the square cover set 𝒜{\mathcal{A}} produced in Section 4. The processes covered by any square A𝒜A\in{\mathcal{A}} can be completely covered by 4 circles CC of diameter \ell: Find the midpoints of the 4 sides of the square and draw the circles CC of diameter \ell with their centers on those midpoints.

Lemma 8

Let kgreedyC()k^{C}_{greedy}({\mathcal{R}}) be the number of circles CC of diameter \ell needed to cover all the processes in 𝒫{\mathcal{P}} by algorithm GCIRCLE. kgreedyC()8koptC()k^{C}_{greedy}({\mathcal{R}})\leq 8\cdot k^{C}_{opt}({\mathcal{R}}), where koptC()k^{C}_{opt}({\mathcal{R}}) is the optimal number of circles CC in any algorithm.

Proof

We first show that koptC()max{kS(odd),k(evenS)},k^{C}_{opt}({\mathcal{R}})\geq\max\{k^{S}({\mathcal{R}}_{odd}),k({\mathcal{R}}^{S}_{even})\}, where kS(odd)k^{S}({\mathcal{R}}_{odd}) and kS(even)k^{S}({\mathcal{R}}_{even}), respectively, are the number of squares A=×A=\ell\times\ell to cover the slabs in odd{\mathcal{R}}_{odd} and even{\mathcal{R}}_{even}. Consider any square cover Aj(Ri)A_{j}(R_{i}) of any slab RiR_{i}. A circle CC of diameter \ell can cover at most the processes in Aj(Ri)A_{j}(R_{i}) but not in any other square Al(Ri)A_{l}(R_{i}). This is because the perimeter of CC needs to pass through the left side of Aj(Ri)A_{j}(R_{i}) (since there is a process positioned on that line in Aj(Ri)A_{j}(R_{i})) and with diameter \ell, the perimeter of CC can touch at most the right side of Aj(Ri)A_{j}(R_{i}).

We now prove the upper bound. Since one square area A=×A=\ell\times\ell is now covered using at most 4 circles CC of diameter \ell, GCIRCLE produces the total number of circles kgreedyC()=4(kS(odd)+kS(even)).k^{C}_{greedy}({\mathcal{R}})=4\cdot(k^{S}({\mathcal{R}}_{odd})+k^{S}({\mathcal{R}}_{even})).

Comparing kgreedyC()k^{C}_{greedy}({\mathcal{R}}) with koptC()k^{C}_{opt}({\mathcal{R}}) as in Lemma 7, we have that

kgreedyC()koptC()4(kS(odd)+kS(even))max{kS(odd),kS(even)}8max{kS(odd),kS(even)}max{kS(odd),kS(even)}8.\frac{k^{C}_{greedy}({\mathcal{R}})}{k^{C}_{opt}({\mathcal{R}})}\leq\frac{4\cdot(k^{S}({\mathcal{R}}_{odd})+k^{S}({\mathcal{R}}_{even}))}{\max\{k^{S}({\mathcal{R}}_{odd}),k^{S}({\mathcal{R}}_{even})\}}\leq\frac{8\cdot\max\{k^{S}({\mathcal{R}}_{odd}),k^{S}({\mathcal{R}}_{even})\}}{\max\{k^{S}({\mathcal{R}}_{odd}),k^{S}({\mathcal{R}}_{even})\}}\leq 8.~{}\squareforqed

Overlapping Fault Area. The adversary may place the fault area FF in any location in the plane. This means that FF may not necessarily be axis-aligned. Algorithms GSQUARE and GCIRCLE produce a cover set 𝒜{\mathcal{A}} of axis-aligned squares and circles, respectively. Therefore, the algorithm we present in the next section needs to know how many areas in 𝒜{\mathcal{A}} that FF overlaps. We now compute the bound on this number. The bound considers both square and circle areas AA under various size combinations of fault and non-fault areas. The lemma below is for each A𝒜A\in{\mathcal{A}} and FF being either squares of side \ell or circles of diameter \ell.

Lemma 9

For the processes in 𝒫{\mathcal{P}}, consider the cover set 𝒜{\mathcal{A}} consisting of the axis-aligned square areas A=×A=\ell\times\ell. Place a relocatable square area F=×F=\ell\times\ell in any orientation (not necessarily axis-aligned). FF overlaps no more than 7 squares AA. If the cover set consists of circles C𝒜C\in{\mathcal{A}} of diameter \ell and FF is a circle of diameter \ell, then FF overlaps no more than 2828 circles CC.

Proof

Suppose FF is axis-aligned. FF may overlap at most two squares AA horizontally. Indeed, the total width covered by two squares in 𝒜{\mathcal{A}} is >2>2\ell since the squares do not overlap. Meanwhile, the total width of FF is \ell. Similarly, FF may overlap at most two squares vertically. Combining possible horizontal and vertical overlaps, we obtain that FF may overlap at most 4 distinct axis-aligned areas AA. See Figure 3 for illustration.

Refer to caption
Figure 3: The maximum overlap of an axis-aligned fault area FF with the identical axis-aligned cover squares AA of same size.
Refer to caption
Figure 4: The maximum overlap of a non-axis-aligned fault area FF with the identical axis-aligned cover squares AA of the same size.

Consider now that FF is not axis-aligned. FF can span at most 2\sqrt{2}\ell horizontally and 2\sqrt{2}\ell vertically. Therefore, horizontally, FF can overlap at most three areas AA. Vertically, FF can overlap three areas as well. However, not all three areas on the top and bottom rows can be overlapped at once. Specifically, not axis-aligned FF can only overlap 2 squares in the top row and 2 in the bottom row. Therefore, in total, FF may overlap at most 7 distinct axis-aligned areas. Figure 4 provides an illustration.

For the case of circular FF, one square area AA can be completely covered by 4 circles CC. Furthermore, square FF of size \ell overlaps at most 7 square areas AA of side \ell. Moreover, the circular FF of diameter \ell can be inscribed in a square of side \ell. Therefore, a circular FF cannot overlap more than 7 squares, and hence the circular FF may overlap in total at most 7×4=287\times 4=28 circles CC. ∎

The first lemma below is for each AA being an axis-aligned square of side \ell or a circle of diameter \ell while FF being either a square of side /2\ell/\sqrt{2} or a circle of diameter /2\ell/\sqrt{2}. The second lemma below considers circular fault area FF of diameter 2\sqrt{2}\ell.

Lemma 10

For the processes in 𝒫{\mathcal{P}}, consider the cover set 𝒜{\mathcal{A}} consisting of the axis-aligned squares A=×A=\ell\times\ell. Place a relocatable square area F=/2×/2F=\ell/\sqrt{2}\times\ell/\sqrt{2} in any orientation (not necessarily axis-aligned). FF overlaps no more than 4 squares AA. If the cover set consists of circles C𝒜C\in{\mathcal{A}} of diameter \ell each, and FF is a circle of diameter /2\ell/\sqrt{2}, then FF overlaps no more than 16 circles CC.

Proof

FF can extend, horizontally and vertically, at most 2/2=.\sqrt{2}\cdot\ell/\sqrt{2}=\ell. Therefore, FF can overlap no more than two squares AA horizontally and two squares AA vertically.

For the case of circular FF of diameter /2\ell/\sqrt{2}, it can be inscribed in a square of side /2\ell/\sqrt{2}. This square can overlap no more than 44 squares of ×\ell\times\ell. Each such square can be covered by at most 44 circles of diameter \ell. Therefore, the total number of circles to overlap the circular fault area FF is 4×4=164\times 4=16. ∎

Lemma 11

For the processes in 𝒫{\mathcal{P}}, consider the cover set 𝒜{\mathcal{A}} consisting of the axis-aligned squares areas A=×A=\ell\times\ell. Place a relocatable circular fault area FF of diameter 2\sqrt{2}\ell. FF overlaps no more than 8 squares AA. If 𝒜{\mathcal{A}} consists of circles CC of diameter \ell, then circular FF of diameter 2\sqrt{2}\ell overlaps no more than 32 circles CC.

Refer to caption
Figure 5: The maximum overlap of a circular fault area FF of diameter 2\sqrt{2}\ell with axis-aligned cover squares AA of side \ell.
Proof

Since FF is a circle of diameter 2\sqrt{2}\ell, FF can span horizontally and vertically at most 2\sqrt{2}\cdot\ell. Arguing similarly as in Lemma 9, FF can overlap either at most 3 squares AA in top row or 3 on the bottom row. Interestingly, if FF overlaps 3 squares in the top row, it can only overlap at most 2 in the bottom row and vice-versa. Therefore, in total, FF overlaps at most 8 distinct squares of side \ell. Figure 5 provides an illustration.

Since one square of side \ell can be completely covered using 4 circles of diameter \ell, FF of diameter 2\sqrt{2}\ell can cover at most 8×4=328\times 4=32 circles CC of diameter \ell. ∎

1 Setting: A set 𝒫{\mathcal{P}} of NN processes positioned at distinct planar coordinates. Each process can communicate with all other processes and knows the coordinates of all other processes. The processes covered by the fault area FF at unknown location are Byzantine. There are M1M\geq 1 of identical fault areas FF and processes know MM.
2 Input: Each process has initial value either 0 or 1.
3 Output: Each correct process outputs decision subject to geoconsensus
4 Procedure for process pkp_{k}
5 // leaders selection
6 Compute the set 𝒜{\mathcal{A}} of covers Aj(Ri)A_{j}(R_{i});
7 // For each cover Aj(Ri)𝒜A_{j}(R_{i})\in{\mathcal{A}} do
8
9𝒫min{\mathcal{P}}_{min}\leftarrow a set of processes with minimum yy-coordinate among covered by Aj(Ri)A_{j}(R_{i});
10 if |𝒫min|=1|{\mathcal{P}}_{min}|=1 then
11       lj(Aj(Ri))l_{j}(A_{j}(R_{i}))\leftarrow the only process in 𝒫min{\mathcal{P}}_{min};
12      
13else
14       lj(Aj(Ri))l_{j}(A_{j}(R_{i}))\leftarrow the process in 𝒫min{\mathcal{P}}_{min} with minimum xx-coordinate;
15      
16
17Let PLP_{L} be the set of leaders, one for each Aj(Ri)𝒜A_{j}(R_{i})\in{\mathcal{A}};
18 // consensus
19 if pk𝒫Lp_{k}\in{\mathcal{P}}_{L} then
20      run PSL algorithm, achieve decision vv, broadcast vv, output vv
21else
22       wait for messages with identical decision vv from at least 2M+12M+1 processes from 𝒫L{\mathcal{P}}_{L}, output vv
Algorithm 2 GENERIC geoconsensus algorithm.

5 The GENERIC Geoconsensus Algorithm

We now describe an algorithm solving geoconsensus we call GENERIC for a set 𝒫{\mathcal{P}} of NN processes on the plane. Each process pkp_{k} knows the coordinates of all other processes and can communicate with all of them. Each process pkp_{k} knows the shape (circle, square, etc.) and size (diameter, side, etc.) of the fault area FF. There are M1M\geq 1 fault areas, i.e., ||=M|\mathcal{F}|=M and pkp_{k} knows MM. The processes do not know the orientation and location of each fault area FF. Fault area FF is controlled by an adversary and all processes covered by that area FF are Byzantine. Each process pkp_{k} is given an initial value either 0 or 1. The output of each process has to comply with the three properties of geoconsensus.

The pseudocode is given in Algorithm 2. GENERIC operates as follows. Each process pkp_{k} computes a set 𝒜{\mathcal{A}} of covers Aj(Ri)A_{j}(R_{i}) that are of same size as FF. Then pkp_{k} determines the leader lj(Aj(Ri))l_{j}(A_{j}(R_{i})) in each cover Aj(Ri)A_{j}(R_{i}). The process in Aj(Ri)A_{j}(R_{i}) with smallest yy-coordinate is selected as a leader. If there exist two processes with the same smallest yy-coordinate, then the process with the smaller xx-coordinate between them is picked. If pkp_{k} is selected leader, it participates in running PSL [17]. The leaders run PSL then broadcast the achieved decision. The non-leader processes adopt it.

Analysis of GENERIC. We now study the correctness and fault-tolerance guarantees of GENERIC. In all theorems of this section, GENERIC achieves the solution in M+2M+2 communication rounds. The proof for this claim is similar to that for BASIC in Theorem 3.1.

Let the fault area F=×F=\ell\times\ell be a, not necessarily axis-aligned, square.

Theorem 5.1

Given a set 𝒫{\mathcal{P}} of NN processes and one square are FF are positioned at an unknown location such that any process of 𝒫{\mathcal{P}} covered by FF is Byzantine. Algorithm GENERIC solves geoconsensus with the following guarantees:

  • If F=×F=\ell\times\ell and not axis-aligned and A=×A=\ell\times\ell, fN15f\leq N-15 faulty processes can be tolerated given that |𝒜|22|{\mathcal{A}}|\geq 22.

  • If F=×F=\ell\times\ell and axis-aligned and A=×A=\ell\times\ell, fN9f\leq N-9 faulty processes can be tolerated given that |𝒜|13|{\mathcal{A}}|\geq 13.

  • If F=/2×/2F=\ell/\sqrt{2}\times\ell/\sqrt{2} but A=×A=\ell\times\ell, then even if FF is not axis aligned, fN9f\leq N-9 faulty processes can be tolerated given that |𝒜|13|{\mathcal{A}}|\geq 13.

Proof

We start by proving the first case. From Lemma 9, we obtain that a square fault area F=×F=\ell\times\ell, regardless of orientation and location, can overlap at most n(F)=7n(F)=7 axis-aligned squares A=×A=\ell\times\ell. When |𝒜|22|{\mathcal{A}}|\geq 22, we have at least 𝒜n(F)15{\mathcal{A}}-n(F)\geq 15 axis-aligned squares containing only correct processes. Since GENERIC reaches consensus using only the values of the leader processes in each area AA, if we have |𝒜|22|{\mathcal{A}}|\geq 22 areas, it is guaranteed that 2|𝒜|/3+12n(F)+1\geq 2\cdot|{\mathcal{A}}|/3+1\geq 2\cdot n(F)+1 leader processes are correct (with n(F)=7n(F)=7) and they can reach consensus using PSL algorithm. Regarding the number of faulty process that can be tolerated, the fault area FF can cover fN15f\leq N-15 processes but still algorithm GSQUARE produces total |𝒜|=22|{\mathcal{A}}|=22 areas. All these fN15f\leq N-15 faulty processes can be tolerated.

Let us address the second case. An axis-aligned square FF can overlap at most n(F)=4n(F)=4 axis-aligned squares AA. Therefore, when |𝒜|13|{\mathcal{A}}|\geq 13, we have that |𝒜|92n(F)+1|{\mathcal{A}}|-9\geq 2\cdot n(F)+1 leader processes are correct and they can reach consensus. In this case, fN9f\leq N-9 processes can be covered by FF and still they all can be tolerated.

Let us now address the third case, when F=/2×/2F=\ell/\sqrt{2}\times\ell/\sqrt{2} but A=×A=\ell\times\ell. Regardless of its orientation, FF can overlap at most n(F)=4n(F)=4 squares AA. Therefore, |𝒜|13|{\mathcal{A}}|\geq 13 is sufficient for consensus and total fN9f\leq N-9 processes can be tolerated. ∎

For the multiple fault areas FF with ||=M|\mathcal{F}|=M, Theorem 5.1 extends as follows.

Theorem 5.2

Given a set 𝒫{\mathcal{P}} of NN processes and a set of M1M\geq 1 of square areas FF positioned at unknown locations such that any process of 𝒫{\mathcal{P}} covered by any FF may be Byzantine. Algorithm GENERIC solves geoconsensus with the following guarantees:

  • If each F=×F=\ell\times\ell and not axis-aligned and A=×A=\ell\times\ell, fN15Mf\leq N-15M faulty processes can be tolerated given that |𝒜|22M|{\mathcal{A}}|\geq 22M.

  • If each F=×F=\ell\times\ell and axis-aligned and A=×A=\ell\times\ell, fN9Mf\leq N-9M faulty processes can be tolerated given that |𝒜|13M|{\mathcal{A}}|\geq 13M.

  • If each F=/2×/2F=\ell/\sqrt{2}\times\ell/\sqrt{2} but A=×A=\ell\times\ell, then even if FF is not axis-aligned, fN9Mf\leq N-9M faulty processes can be tolerated given that |𝒜|13M|{\mathcal{A}}|\geq 13M.

Proof

The proof for the case of M=1M=1 extends to the case of M>1M>1 as follows. Theorem 5.1 gives the bounds fNγf\leq N-\gamma and |𝒜|δ|{\mathcal{A}}|\geq\delta for one fault area for some positive integers γ,δ\gamma,\delta. For MM fault areas, MM separate |𝒜||{\mathcal{A}}| sets are needed, with each set tolerating a single fault area FF. Therefore, the bounds of Theorem 5.1 extend to multiple fault areas with a factor of MM, i.e., GENERIC needs MδM\cdot\delta covers and fNMγf\leq N-M\cdot\gamma faulty processes can be tolerated. Using the appropriate numbers from Theorem 5.1 provides the claimed bounds. ∎

We have the following theorem for the case of circular fault set \mathcal{F}, ||=M1|\mathcal{F}|=M\geq 1.

Theorem 5.3

Given a set 𝒫{\mathcal{P}} of NN processes and a set of M1M\geq 1 circles FF positioned at unknown locations such that any process of 𝒫{\mathcal{P}} covered by FF may be Byzantine. Algorithm GENERIC solves geoconsensus with the following guarantees:

  • If each FF and AA are circles of diameter \ell, fN57Mf\leq N-57M faulty processes can be tolerated given that |𝒜|85M|{\mathcal{A}}|\geq 85M.

  • If each FF is a circle of diameter 2\sqrt{2}\ell and AA is a circle of diameter \ell, fN65Mf\leq N-65M faulty processes can be tolerated given that |𝒜|97M|{\mathcal{A}}|\geq 97M.

  • If each FF is a circle of diameter /2\ell/\sqrt{2} and AA is a circle of diameter \ell, fN33Mf\leq N-33M faulty processes can be tolerated given that |𝒜|49M|{\mathcal{A}}|\geq 49M.

Proof

For the first case, we have that n(F)=28n(F)=28, when cover set 𝒜{\mathcal{A}} is of circles of diameter \ell and the fault area FF is also a circle of diameter \ell. Therefore, when |𝒜|85M|{\mathcal{A}}|\geq 85M, we have that at least |𝒜|n(F)57M|{\mathcal{A}}|-n(F)\geq 57M circles containing only correct processes. Since Algorithm 2 reaches consensus using only the values of the leader processes in each area AA, when we have |𝒜|85M|{\mathcal{A}}|\geq 85M, it is guaranteed that 2|𝒜|/3+12n(F)M+1\geq 2\cdot|{\mathcal{A}}|/3+1\geq 2\cdot n(F)M+1 leader processes are correct and hence GENERIC can reach consensus. The fault tolerance guarantee of fN57Mf\leq N-57M can be shown similarly to the proof of Theorem 5.1.

For the second result, we have shown that n(F)=32n(F)=32. Therefore, we need |𝒜|3n(F)+197|{\mathcal{A}}|\geq 3\cdot n(F)+1\geq 97 for one faulty circle FF of diameter 2\sqrt{2}\ell. For MM faulty circles, we need |𝒜|97M|{\mathcal{A}}|\geq 97M. Therefore, the fault tolerance bound is fN(2n(F)M+1)=N65Mf\leq N-(2\cdot n(F)M+1)=N-65M.

For the third result, we have shown that n(F)=16n(F)=16 for a single faulty circle of diameter /2\ell/\sqrt{2}. Therefore, we need |𝒜|49M|{\mathcal{A}}|\geq 49M and fN33Mf\leq N-33M. ∎

6 Extensions to Higher Dimensions

Our approach can be extended to solve geoconsensus in dd-dimensions, d3d\geq 3. BASIC extends as is, whereas GENERIC runs without modifications in higher dimensions so long as we determine (i) the cover set 𝒜{\mathcal{A}} of appropriate dimension and (ii) the overlap bound – the maximum number of dd-dimensional covers AA that the fault area FF may overlap. The bound on ff then depends on MM and the cover set size |𝒜||{\mathcal{A}}|. In what follows, we discuss 3-dimensional space. The still higher dimensions can be studied similarly.

When d=3d=3, the objective is to cover the embedded processes of 𝒫{\mathcal{P}} by cubes of size ××\ell\times\ell\times\ell or spheres of diameter \ell. It can be shown that the greedy cube (sphere) cover algorithm, let us call it GCUBE (GSPHERE), provides 2d1=42^{d-1}=4 (16) approximation of the optimal cover. The idea is to appropriately extend the 2-dimensional slab-based division and axis-aligned square-based covers discussed in Section 4 to 33-dimensions with rectangular cuboids and cube-based covers.

Suppose the coordinates of process pi𝒫p_{i}\in{\mathcal{P}} are (xi,yi,zi)(x_{i},y_{i},z_{i}). GCUBE operates as follows. It first finds xmin,ymin,zminx_{min},y_{min},z_{min} as well as xmax,ymax,zmaxx_{max},y_{max},z_{max}. Then, a smallest axis-aligned (w.r.t. xx-axis) cuboid, i.e. rectangular parallelepiped, RR with the left-bottom-near corner (xmin,ymin,zmin)(x_{min},y_{min},z_{min}) and the right-top-far corner at (xmax,ymax,zmax)(x_{max},y_{max},z_{max}) is constructed such that RR covers all NN processes in 𝒫{\mathcal{P}}. Assume that zaxisz-axis is away from the viewer. The depth of RR is depth(R)=zmaxzmindepth(R)=z_{max}-z_{min}; width(R)width(R) and height(R)height(R) are similar to GSQUARE.

GCUBE now divides RR into a set {\mathcal{R}} of mm cuboids ={R1,,Rm}{\mathcal{R}}=\{R_{1},\cdots,R_{m}\} such that depth(Ri)=depth(R_{i})=\ell but the width(Ri)=width(R)width(R_{i})=width(R) and height(Ri)=height(R)height(R_{i})=height(R). Each RiR_{i} is further divided into a set of i{\mathcal{R}}_{i} of nn cuboids i={Ri1,,Rin}{\mathcal{R}}_{i}=\{R_{i1},\ldots,R_{in}\} such that each RijR_{ij} has width(Rij)=width(R)width(R_{ij})=width(R) but height(Rij)=height(R_{ij})=\ell and depth(Rij)=depth(R_{ij})=\ell. Each cuboid RijR_{ij} is similar to the slab RiR_{i} shown in Figure 2 but has depth \ell.

It now remains to cover each axis-aligned cuboid RijR_{ij} with cubic areas AA of side \ell. Area AA can be put on RijR_{ij} so that the top left corner of AA overlaps with the top left corner of cuboid RijR_{ij}. Slide AA on the xx-axis to the right so that there is a process covered by RijR_{ij} positioned on the left vertical plane of AA. Fix that area AA as one cover cube and name it A1(Rij)A_{1}(R_{ij}). Now consider only the processes in RijR_{ij} not covered by A1(Rij)A_{1}(R_{ij}). Place another AA on those processes so that there is a point in RijR_{ij} positioned on the left vertical plane of AA and there is no process on the left of AA that is not covered by A1(Rij)A_{1}(R_{ij}). Let that AA be A2(Rij)A_{2}(R_{ij}). Continue this way to cover all the processes in RijR_{ij}.

Apply the procedure of covering RijR_{ij} to all m×nm\times n cuboids. Lemma 3 can be extended to show that no two cuboids Rij,RklR_{ij},R_{kl} overlap. Lemma 4 can be extended to show that no two cubic covers Ao(Rij)A_{o}(R_{ij}) and Ap(Rkl)A_{p}(R_{kl}) overlap. For each cuboid RijR_{ij}, Lemma 5 can be extended to show that no other algorithm produces the number of cubes k(Rij)k^{\prime}(R_{ij}) less than the number of cubes k(Rij)k(R_{ij}) produced by algorithm GCUBE.

Since the cover for each square cuboid RijR_{ij} is individually optimal, let kopt()k_{opt}({\mathcal{R}}) be the number of axis-aligned cubes to cover all NN processes in RR in the optimal cover algorithm. We now show that kgreedy()4kopt()k_{greedy}({\mathcal{R}})\leq 4\cdot k_{opt}({\mathcal{R}}), i.e., GCUBE provides 4-approximation. We do this by combining two approximation bounds. The first is for the mm cuboids RiR_{i}, for which we show 22-approximation. We then provide 22-approximation for each cuboid RiR_{i} which is now divided into nn cuboids RijR_{ij}. Combining these two approximations, we have, in total, a 44-approximation.

As in the 2-dimensional case, divide the mm cuboids in the set {\mathcal{R}} into two sets odd{\mathcal{R}}_{odd} snd even{\mathcal{R}}_{even}. Arguing as in Lemma 5, we can show that kopt()max{k(Rodd),k(Reven)}k_{opt}({\mathcal{R}})\geq\max\{k(R_{odd}),k(R_{even})\} and kgreedy()=k(Rodd)+k(Reven)k_{greedy}({\mathcal{R}})=k(R_{odd})+k(R_{even}). Therefore, the ratio kgreedy()/kopt()2k_{greedy}({\mathcal{R}})/k_{opt}({\mathcal{R}})\leq 2 while dividing RR into mm cuboids.

Now consider any cuboid RioddR_{i}\in{\mathcal{R}}_{odd} (RievenR_{i}\in{\mathcal{R}}_{even} case is analogous). RiR_{i} is divided into a set i{\mathcal{R}}_{i} of nn cuboids RijR_{ij}. Divide nn cuboids in the set i{\mathcal{R}}_{i} into two sets i,odd{\mathcal{R}}{i,odd} and i,even{\mathcal{R}}{i,even} based on odd and even jj. Therefore, it can be shown that, similarly to Lemma 5, that kopt(i)max{k(Ri,odd),k(Ri,even)}k_{opt}({\mathcal{R}}_{i})\geq\max\{k(R_{i,odd}),k(R_{i,even})\} and kgreedy(i)=k(Ri,odd)+k(Ri,even)k_{greedy}({\mathcal{R}}_{i})=k(R_{i,odd})+k(R_{i,even}). Therefore, kgreedy(i)/kopt(i)2k_{greedy}({\mathcal{R}}_{i})/k_{opt}({\mathcal{R}}_{i})\leq 2. Combining the 22-approximations each for the two steps, we have the overall 44-approximation.

Let us now discuss the 1616-approximation for spheres of diameter \ell. One cube Al(Rij)A_{l}(R_{ij}) of side \ell can be completely covered by 44 spheres of diameter \ell. Since, for cubes, GCUBE is 44-approximation, we, therefore, obtain that GSPHERE is a 1616-approximation. We omit this discussion but it can be shown that GSPHERE, appropriately extended from GCIRCLE into 3-dimensions, achieves (2d1dd)=427=108(2^{d-1}\cdot d^{d})=4\cdot 27=108 approximation.

Now we need to find the overlap number n(F)n(F). Cube AA of side \ell has diameter D=3D=\sqrt{3}\ell. That means that a cubic fault area FF that has the same size as AA can overlap at most 3 cubes Al(Rij)A_{l}(R_{ij}) in all 3 dimensions. Therefore, FF can cover at most 33=273^{3}=27 cubes Al(Rij)A_{l}(R_{ij}). For sphere FF of diameter \ell, since one cube Al(Rij)A_{l}(R_{ij}) can be completely covered by 44 spheres of diameter \ell and FF can be inscribed inside Al(Rij)A_{l}(R_{ij}), it overlaps the total 427=1084\cdot 27=108 spheres Al(Rij)A_{l}(R_{ij}). For the the axis-aligned case of cubic fault area FF, it can be shown that n(F)=8n(F)=8 cubes Al(Rij)A_{l}(R_{ij}). This is because it can overlap with at most 44 cubes Al(Rij)A_{l}(R_{ij}) as Figure  3 and, due to depth \ell, it can go up to two layers, totaling 8. n(F)=32n(F)=32 for sphere FF is immediate since each cube Al(Rij)A_{l}(R_{ij}) is covered by 44 spheres of diameter \ell, sphere of diameter \ell can be inscribed inside a cube Al(Rij)A_{l}(R_{ij}) of side \ell, and a faulty cube FF of side \ell can overlap at most 8 axis-aligned cubes Al(Rij)A_{l}(R_{ij}).

We summarize the results for cubic covers and cubic fault areas in Theorem 6.1.

Theorem 6.1

Given a set 𝒫{\mathcal{P}} of NN processes embedded in 3-d space and a set of M1M\geq 1 of cubic areas FF at unknown locations, such that any process of 𝒫{\mathcal{P}} covered by PP may be Byzantine. Algorithm GENERIC solves geoconsensus with the following guarantees:

  • If FF is cube of side \ell and not axis-aligned and AA is also a cube of side \ell, fN55Mf\leq N-55M faulty processes can be tolerated given that the cover set |𝒜|82M|{\mathcal{A}}|\geq 82M.

  • If FF is cube of side \ell and axis-aligned and AA is also a cube of side \ell, fN17Mf\leq N-17M faulty processes can be tolerated given that |𝒜|25M|{\mathcal{A}}|\geq 25M.

  • If FF is a sphere of diameter \ell and AA is a sphere of diameter \ell, fN217Mf\leq N-217M faulty processes can be tolerated given that |𝒜|325M|{\mathcal{A}}|\geq 325M.

7 Concluding Remarks

Byzantine consensus is a relatively old, practically applicable and well-researched problem. It had been attracting extensive attention from researchers and engineers in distributed systems. In light of the recent development on location-based consensus protocols, such as G-PBFT [13], we have formally defined and studied the consensus problem of processes that are embedded in a dd-dimensional plane, d2d\geq 2. We have explored both the possibility as well bounds for a solution to geoconsensus. Our results provide trade-offs on three parameters N,M,N,M, and ff, in constant to the trade-off between only two parameters NN and ff in the Byzantine consensus literature. Our results also show the dependency of the tolerance guarantees on the shapes of the fault areas.

For future work, it would be interesting to close or reduce the gap between the condition for impossibility and a solution (as discussed in Contributions). It would also be interesting to consider fault area FF shapes beyond circles and squares that we studied; to investigate process coverage by non-identical squares, circles or other shapes to see whether better bounds on the set 𝒜{\mathcal{A}} and fault-tolerance guarantee ff can be obtained.

References

  • [1] Abd-El-Malek, M., Ganger, G.R., Goodson, G.R., Reiter, M.K., Wylie, J.J.: Fault-scalable byzantine fault-tolerant services. ACM SIGOPS Operating Systems Review 39(5), 59–74 (2005)
  • [2] Adya, A., Bolosky, W.J., Castro, M., Cermak, G., Chaiken, R., Douceur, J.R., Howell, J., Lorch, J.R., Theimer, M., Wattenhofer, R.P.: Farsite: Federated, available, and reliable storage for an incompletely trusted environment. ACM SIGOPS Operating Systems Review 36(SI), 1–14 (2002)
  • [3] Bulusu, N., Heidemann, J., Estrin, D., Tran, T.: Self-configuring localization systems: Design and experimental evaluation. ACM Transactions on Embedded Computing Systems (TECS) 3(1), 24–60 (2004)
  • [4] Castro, M., Liskov, B.: Practical byzantine fault tolerance and proactive recovery. ACM Transactions on Computer Systems (TOCS) 20(4), 398–461 (2002)
  • [5] Castro, M., Rodrigues, R., Liskov, B.: Base: Using abstraction to improve fault tolerance. ACM Transactions on Computer Systems (TOCS) 21(3), 236–269 (2003)
  • [6] Clark, B.N., Colbourn, C.J., Johnson, D.S.: Unit disk graphs. Discrete mathematics 86(1-3), 165–177 (1990)
  • [7] Cramer, R., Gennaro, R., Schoenmakers, B.: A secure and optimally efficient multi-authority election scheme. European transactions on Telecommunications 8(5), 481–490 (1997)
  • [8] Fowler, R.J., Paterson, M., Tanimoto, S.L.: Optimal packing and covering in the plane are np-complete. Inf. Process. Lett. 12(3), 133–137 (1981)
  • [9] Hightower, J., Borriello, G.: Location systems for ubiquitous computing. computer 34(8), 57–66 (2001)
  • [10] Koo, C.Y.: Broadcast in radio networks tolerating byzantine adversarial behavior. In: PODC. pp. 275–282 (2004)
  • [11] Kubiatowicz, J., Bindel, D., Chen, Y., Czerwinski, S., Eaton, P., Geels, D., Gummadi, R., Rhea, S., Weatherspoon, H., Weimer, W., et al.: Oceanstore: An architecture for global-scale persistent storage. ACM SIGOPS Operating Systems Review 34(5), 190–201 (2000)
  • [12] Lamport, L., Shostak, R., Pease, M.: The byzantine generals problem. ACM Transactions on Programming Languages and Systems 4(3), 382–401 (1982)
  • [13] Lao, L., Dai, X., Xiao, B., Guo, S.: G-PBFT: A location-based and scalable consensus protocol for iot-blockchain applications. In: IPDPS. pp. 664–673 (2020)
  • [14] Marathe, M.V., Breu, H., Hunt III, H.B., Ravi, S.S., Rosenkrantz, D.J.: Simple heuristics for unit disk graphs. Networks 25(2), 59–68 (1995)
  • [15] Miller, A., Xia, Y., Croman, K., Shi, E., Song, D.: The honey badger of bft protocols. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. pp. 31–42 (2016)
  • [16] Moniz, H., Neves, N.F., Correia, M.: Byzantine fault-tolerant consensus in wireless ad hoc networks. IEEE Transactions on Mobile Computing 12(12), 2441–2454 (2012)
  • [17] Pease, M., Shostak, R., Lamport, L.: Reaching agreement in the presence of faults. J. ACM 27(2), 228–234 (Apr 1980), https://doi.org/10.1145/322186.322188
  • [18] Pelc, A., Peleg, D.: Broadcasting with locally bounded byzantine faults. Information Processing Letters 93(3), 109–115 (Feb 2005)
  • [19] Rushby, J.: Bus architectures for safety-critical embedded systems. In: International Workshop on Embedded Software. pp. 306–323. Springer (2001)
  • [20] Sousa, J., Bessani, A., Vukolic, M.: A byzantine fault-tolerant ordering service for the hyperledger fabric blockchain platform. In: DSN. pp. 51–58. IEEE (2018)
  • [21] Vaidya, N.H., Tseng, L., Liang, G.: Iterative approximate byzantine consensus in arbitrary directed graphs. In: PODC. pp. 365–374 (2012)
  • [22] Zamani, M., Movahedi, M., Raykova, M.: Rapidchain: Scaling blockchain via full sharding. In: CCS. pp. 931–948 (2018)