Swarm consensus

by   Victor Grishchenko, et al.

The strength of gnomes lies in their coordinated action. Being small and subtle creatures themselves, the forest gnomes can form large swarms acting as one giant creature. This unusual defense strategy requires a lot of skill and training. Directing a swarm is not an easy task! Initially, gnomes used leader-based control algorithms, although those have been proven to be vulnerable to abuse and failure. After thorough research and study, gnomes developed their own leaderless consensus algorithm based on very simple rules. It is based on gossip in a network of a known diameter d. One of the gnomes proposes a plan which then spreads gnome to gnome. If there is an agreement, gnomes act all at once. If there are conflicting plans (an extreme rarity), they try again. The resulting upper bound on the swarm's reaction time is its round-trip time 2dt, where t is the command relay time. The original algorithm is non-Byzantine; all gnomes must be sane and sober. While working on the algorithm, gnomes discovered swarm time, a sibling concept to L.Lamport's logical time. That led to a Byzantine-ready version of the algorithm.


page 2

page 4


Relay Protocol for Approximate Byzantine Consensus

This paper presents a novel algorithm for Approximate Byzantine Consensu...

Round-Efficient Distributed Byzantine Computation

We present the first round efficient algorithms for several fundamental ...

Utilizing a digital swarm intelligence platform to improve consensus among radiologists and exploring its applications

Radiologists today play a key role in making diagnostic decisions and la...

Byzantine Preferential Voting

In the Byzantine agreement problem, n nodes with possibly different inpu...

A Permit-Based Optimistic Byzantine Ledger

PermitBFT solves the byzantine consensus problem for n nodes tolerating ...

An Analysis of Multi-hop Iterative Approximate Byzantine Consensus with Local Communication

Iterative Approximate Byzantine Consensus (IABC) is a fundamental proble...


  • [1] C. Mohan and B. Lindsay. 1985. Efficient commit protocols for the tree of processes model of distributed transactions. SIGOPS Oper. Syst. Rev. 19, 2 (April 1985), 40–52. DOI:https://doi.org/10.1145/850770.850772
  • [2] Skeen, Dale (February 1982). A Quorum-Based Commit Protocol (Technical report). Department of Computer Science, Cornell University. https://ecommons.cornell.edu/handle/1813/6323
  • [3] Leslie Lamport. 1998. The part-time parliament. ACM Trans. Comput. Syst. 16, 2 (May 1998), 133–169. DOI:https://doi.org/10.1145/279227.279229
  • [4] Ongaro, Diego; Ousterhout, John (2013). ”In Search of an Understandable Consensus Algorithm” https://raft.github.io/raft.pdf
  • [5] Satoshi Nakamoto. ”Bitcoin: A Peer-to-Peer Electronic Cash System” https://bitcoin.org/bitcoin.pdf
  • [6] Leslie Lamport. Time, clocks, and the ordering of events in a distributed system. In Concurrency: the Works of Leslie Lamport, pages 179–196. 2019.

Appendix A Sanity checks

Sadly, some gnomes tend to abuse certain mushrooms and consequently become unsober and unreasonable. For that reason, there is a list of simple sanity checks swarm neighbors use to expel violators.

  1. a gnome can not backtrack by announcing a smaller vicinity number than before,

  2. a gnome can not stay at the same vicinity number for more than 2 turns (unless the gnome is unaware of any new actions),

  3. a neighbor can not announce a number greater than the number we announced to him, plus one then

  4. a gnome can not announce a different action unless the previous action was completed or the confusion timeout has passed

  5. a gnome can not keep progressing after being told that there is a conflicting proposal (must become confused)

Appendix B An example

Here we show a consensus progression in a really small swarm of 10 gnomes of unusually large diameter 5.

…et cetera

Appendix C Swarm time

The swarm self-synchronization effect has broader implications. We defined as a size of a gnome’s I-know-that-they-know vicinity. After turns, the swarm synchronizes so . Still, nothing prevents the gnomes from counting indefinitely. Beyond steps, the notion of vicinity has no meaning; . Surprisingly, we can also see as a time metric. The Schmebulock’s algorithms lets a swarm create a shared clock! This concept of swarm time is both similar to and the exact opposite of the L.Lamport’s logical time concept[6].

In the simplest and most popular case, the logical time is defined as a maximum of incoming time values plus 1. Meanwhile, the swarm time is a minimum of incoming time values plus 1. The mission of both metrics is exactly the same: establish a shared clock based solely on message passing between distributed processes.