In the Lattice Agreement (LA) problem, originally proposed by Attiya et al. \cite{Attiya:1995}, a set of processes has to decide on a chain of a lattice. More precisely, each correct process proposes an element $e$ of a certain join-semi lattice $L$ and it has to decide on a value that contains $e$. Moreover, any pair $p_i,p_j$ of correct processes has to decide two values $dec_i$ and $dec_j$ that are comparable (e.g., $dec_i \leq dec_j$ or $dec_j < dec_i$). LA has been studied for its practical applications, as example it can be used to implement a snapshot objects \cite{Attiya:1995} or a replicated state machine with commutative operations \cite{Faleiro:2012}. Interestingly, the study of the Byzantine Lattice Agreement started only recently, and it has been mainly devoted to asynchronous systems. The synchronous case has been object of a recent pre-print \cite{Zheng:aa} where Zheng et al. propose an algorithm terminating in ${\cal O}(\sqrt f)$ rounds and tolerating $f < \lceil n/3 \rceil$ Byzantine processes.
In this paper we present new contributions for the synchronous case. We investigate the problem in the usual message passing model for a system of $n$ processes with distinct unique IDs. We first prove that, when only authenticated channels are available, the problem cannot be solved if $f=n/3$ or more processes are Byzantine. We then propose a novel algorithm that works in a synchronous system model with signatures (i.e., the {\em authenticated message} model), tolerates up to $f$ byzantine failures (where $f<n/3$) and that terminates in ${\cal O}(\log f)$ rounds. We discuss how to remove authenticated messages at the price of algorithm resiliency ($f < n/4$). Finally, we present a transformer that converts any synchronous LA algorithm to an algorithm for synchronous Generalised Lattice Agreement.
[1]
Nicola Santoro,et al.
Population Protocols with Faulty Interactions: The Impact of a Leader
,
2017,
CIAC.
[2]
Sriram K. Rajamani,et al.
Generalized lattice agreement
,
2012,
PODC '12.
[3]
Vijay K. Garg,et al.
Linearizable Replicated State Machines with Lattice Agreement
,
2018,
OPODIS 2018.
[4]
Seif Haridi,et al.
Distributed Algorithms
,
1992,
Lecture Notes in Computer Science.
[5]
Maurice Herlihy,et al.
Distributed Computing Through Combinatorial Topology
,
2013
.
[6]
Nicola Santoro,et al.
Line Recovery by Programmable Particles
,
2018,
ICDCN.
[7]
Hagit Attiya,et al.
Wiley Series on Parallel and Distributed Computing
,
2004,
SCADA Security: Machine Learning Concepts for Intrusion Detection and Prevention.
[8]
Paul G. Spirakis,et al.
Fault Tolerant Network Constructors
,
2019,
SSS.
[9]
Danny Dolev,et al.
Simple Gradecast Based Algorithms
,
2010,
ArXiv.
[10]
Ophir Rachman,et al.
Atomic snapshots using lattice agreement
,
1995,
Distributed Computing.
[11]
Ho-Lin Chen,et al.
Speed faults in computation by chemical reaction networks
,
2014,
Distributed Computing.
[12]
Emmanuelle Anceaume,et al.
Byzantine Generalized Lattice Agreement
,
2020,
2020 IEEE International Parallel and Distributed Processing Symposium (IPDPS).
[13]
Joel Rybicki,et al.
Byzantine Approximate Agreement on Graphs
,
2019,
DISC.
[14]
Florian Schintke,et al.
Linearizable State Machine Replication of State-Based CRDTs without Logs
,
2019,
PODC.
[15]
Vijay K. Garg,et al.
Byzantine Lattice Agreement in Synchronous Systems
,
2020,
OPODIS.
[16]
Vijay K. Garg,et al.
Lattice Agreement in Message Passing Systems
,
2018,
DISC.