
Self-Stabilization and Byzantine Tolerance for Maximal Independent Set A PREPRINT
configuration γif at least one rule is enabled on u. We call move any ordered pair (u, r)where uis a node and ris a
rule. A move is said possible in a given configuration γif ris enabled on uin γ.
The activation of a rule on a node may only change the value of variables of that specific node, but multiple moves
may be performed at the same time, as long as they act on different nodes. To capture this, we say that a set of moves t
is valid in a configuration γwhen it is non-empty, contains only possible moves of γ, and does not contain two moves
concerning the same node. Then, a transition is a triplet (γ, t, γ′)such that: (i) tis a valid set of moves of γand (ii) γ′
is a possible configuration after every node uappearing in tperformed simultaneously the code of the associated rule,
beginning in configuration γ. We will write such a triplet as γt
−→ γ′. We will also write γ→γ′when there exists a
transition from γto γ′.V(t)denotes the set of nodes that appear as first member of a couple in t.
We say that a rule ris executed on a node uin a transition γt
−→ γ′(or equivalently that the move (u, r)is executed in
γt
−→ γ′) when the node uhas performed the rule rin this transition, that is when (u, r)∈t. In this case, we say that
uhas been activated in that transition. Then, an execution is an alternate sequence of configurations and move sets
γ0, t1, γ1···ti, γi,··· where (i) the sequence either is infinite or finishes by a configuration and (ii) for all i∈Nsuch
that it is defined, (γi, ti+1, γi+1)is a transition. We will write such an execution as γ0
t1
−→ γ1··· ti
−→ γi··· When the
execution is finite, the last element of the sequence is the last configuration of the execution. An execution is maximal
if it is infinite, or it is finite and no node is activable in the last configuration. It is called partial otherwise. We say
that a configuration γ′is reachable from a configuration γif there exists an execution starting in configuration γthat
leads to configuration γ′. We say that a configuration is stable if no node is activable in that configuration.
The daemon is the adversary that chooses, from a given configuration, which nodes to activate in the next transition.
Two types are used: the adversarial distributed daemon that allows all possible executions and the fair distributed
daemon that only allows executions where nodes cannot be continuously activable without being eventually activated.
Given a specification and Lthe associated set of legitimate configuration,i.e., the set of the configurations that verify
the specification, a probabilistic algorithm is self-stabilizing when these properties are true: (correctness) every con-
figuration of an execution starting by a configuration of Lis in Land (convergence) from any configuration, whatever
the strategy of the daemon, the resulting execution eventually reaches a configuration in Lwith probability 1.
The time complexity of an algorithm that assumes the fair distributed daemon is given as a number of rounds. The
concept of round was introduced by Dolev et al. [8], and reworded by Cournier et al. [6] to take into account activable
nodes. We quote the two following definitions from Cournier et al. [6]: “
Definition 1 We consider that a node uexecutes a disabling action in the transition γ1→γ2if u(i) is activable in
γ1, (ii) does not execute any rule in γ1→γ2and (iii) is not activable in γ2.
The disabling action represents the situation where at least one neighbour of uchanges its local state in γ1→γ2, and
this change effectively made the guard of all rules of ufalse in γ2. The time complexity is then computed capturing
the speed of the slowest node in any execution through the round definition [8].
Given an execution E, the first round of E(let us call it R1) is the minimal prefix of Econtaining the execution of one
action (the execution of a rule or a disabling action) of every activable nodes from the initial configuration. Let E′be
the suffix of Esuch that E=R1E′. The second round of Eis the first round of E′, and so on.”
Observe that Definition ?? is equivalent to Definition ??, which is simpler in the sense that it does not refer back to
the set of activable nodes from the initial configuration of the round.
Let Ebe an execution. A round is a sequence of consecutive transitions in E. The first round begins at the beginning of
E; successive rounds begin immediately after the previous round has ended. The current round ends once every node
u∈Vsatisfies at least one of the following two properties: (i) uhas been activated in at least one transition during
the current round or (ii) uhas been non-activable in at least one configuration during the current round.
Our first algorithm is to be executed in the presence of Byzantine nodes; that is, there is a subset B⊆Vof adversarial
nodes that are not bound by the algorithm. Byzantine nodes are always activable. An activated Byzantine node is free
to update or not its local variables. Finally, observe that in the presence of Byzantine nodes all maximal executions are
infinite. We denote by d(u, B)the minimal (graph) distance between node uand a Byzantine node, and we define for
i∈N:Vi={u∈V|d(u, B)> i}. Note that V0is exactly the set of non-Byzantines nodes, and that Vi+1 is exactly
the set of nodes of Viwhose neighbours are all in Vi.
When i, j are integers, we use the standard mathematical notation for the integer segments: Ji, jKis the set of integers
that are greater than or equal to iand smaller than or equal to j(i.e. Ji, jK= [i, j]∩Z={i, ··· , j}). Rand(x)with
x∈[0,1] represents the random function that outputs 1with probability x, and 0otherwise.
3