This article is on k-set agreement (kSA) in an n-process synchronous message-passing system in which up to t processes can commit Byzantine failures. kSA is a decision problem in which at least each correct (i.e., non-Byzantine) process is assumed to propose and decide a value such that at most k different values are decided by the correct processes, in such a way that, if all the correct processes propose the same value v, they will decide v. This article investigates the possibility/impossibility domain of kSA in the presence of Byzantine processes. To this end it first extends a previous result and shows that kSA cannot be solved when (n<2t+tk)∧(n−t≥k+1). On the positive side, it presents two synchronous round-based algorithms that solve Byzantine kSA. These algorithms are optimal with respect to the value of k and the number of rounds. The first algorithm is a one-round algorithm that has two instances. The first assumes n>2t+1 and solves kSA for k≥⌊n−tn−2t⌋+1, while the second assumes n≤2t+1 and solves kSA for k≥t+1 (so this second case does not require a majority of correct processes). The second algorithm is based on two new notions denoted Square and Regions that allow each correct process to locally build a global knowledge on which processes proposed which values. This algorithm has also two instances. The first assumes n=3t and solves 2SA. The second assumes 2t+1<n≤3t and solves kSA where k=n−tn−2t is an integer. It is worth noticing that the results presented in this article “almost” complete the possibility/impossibility cartography of kSA in synchronous Byzantine systems. The only case that remains open is when n−tn−2t is not an integer.
Read full abstract