Atomic Read/Write Memory in Signature-free Byzantine Asynchronous Message-passing Systems
This article presents a signature-free distributed algorithm which builds an atomic read/write shared memory on top of an $n$-process asynchronous message-passing system in which up to $t<n/3$ processes may commit Byzantine failures. From a conceptual point of view, this algorithm is designed to be as close as possible to the algorithm proposed by Attiya, Bar-Noy and Dolev (JACM 1995), which builds an atomic register in an $n$-process asynchronous message-passing system where up to $t<n/2$ processes may crash. The proposed algorithm is particularly simple. It does not use cryptography to cope with Byzantine processes, and is optimal from a $t$-resilience point of view ($t<n/3$). A read operation requires $O(n)$ messages, and a write operation requires $O(n^2)$ messages.
💡 Research Summary
The paper addresses the long‑standing problem of building an atomic read/write shared memory abstraction on top of an asynchronous message‑passing system that tolerates Byzantine failures. While the classic ABD algorithm (Attiya, Bar‑Noy, Dolev, JACM 1995) provides a simple and optimal solution for crash‑only failures with a resilience bound of t < n/2, extending this approach to the Byzantine model is non‑trivial because faulty processes can send conflicting or selective messages, forge values, and otherwise violate the assumptions underlying ABD’s correctness proof.
The authors propose a signature‑free algorithm that closely mirrors ABD’s “spirit” while achieving optimal Byzantine resilience of t < n/3. The key ingredients are (1) a reliable broadcast abstraction (r‑broadcast) based on Bracha’s protocol, and (2) a careful implementation of the “read‑must‑write” rule that is essential for linearizability in the presence of Byzantine actors.
Reliable Broadcast (r‑broadcast).
Each process can invoke R_broadcast(v, sn) where v is a value and sn is a local sequence number. The protocol proceeds through three message types (INIT, ECHO, READY). The properties guaranteed are:
- Validity: a correct process only delivers a pair (v, sn) that was actually broadcast by a correct sender.
- Integrity: a pair (v, sn) from a given sender is delivered at most once.
- Uniformity: if any correct process delivers (v, sn) from any sender (correct or faulty), then all correct processes eventually deliver the same pair.
- Termination: all pairs broadcast by correct processes are eventually delivered by all correct processes.
These properties hold precisely when t < n/3, matching the known lower bound for Byzantine agreement in asynchronous systems.
SWMR Register Construction.
The system provides an array REG
Comments & Academic Discussion
Loading comments...
Leave a Comment