The Blocklace: A Byzantine-repelling and Universal Conflict-free Replicated Data Type
Paulo Sérgio Almeida, Ehud Shapiro
TL;DR
The paper addresses how to achieve replica convergence in Byzantine environments without global coordination by modeling the blocklace as a CRDT. It shows that the blocklace can function as both a pure operation-based CRDT and a delta-state CRDT, with blocks carrying signed hash pointers that encode causality and provenance. The authors introduce a Byzantine-repelling protocol that detects equivocations and bounds harm to a finite prefix, even in the presence of colluders, and discuss Cordial Dissemination to ensure eventual visibility. The work provides a universal, Byzantine-tolerant data store for arbitrary CRDTs and demonstrates practical mechanisms to detect and exclude Byzantine actors, significantly enhancing robustness for distributed systems.
Abstract
Conflict-free Replicated Data Types (CRDTs) are designed for replica convergence without global coordination or consensus. Recent work has achieved the same in a Byzantine environment, through DAG-like structures based on cryptographic hashes of content. The blocklace is a partially-ordered generalization of the blockchain in which each block has any finite number of signed hash pointers to preceding blocks. We show that the blocklace datatype, with the sole operation of adding a single block, is a CRDT: it is both a pure operation-based CRDT, with self-tagging; and a delta-state CRDT, under a slight generalization of the delta framework. Allowing arbitrary values as payload, the blocklace can also be seen as a universal Byzantine fault-tolerant implementation for arbitrary CRDTs, under the operation-based approach. Current approaches only care about CRDT convergence, being equivocation-tolerant (they do not detect or prevent equivocations), allowing a Byzantine node to cause an arbitrary amount of harm by polluting the CRDT state with an unbounded number of equivocations. We show that the blocklace can be used not only in an equivocation-tolerant way, but also so as to detect and eventually exclude Byzantine nodes, including equivocators, even under the presence of undetectable colluders. The blocklace CRDT protocol ensures that a Byzantine node may harm only a finite prefix of the computation.
