Draft:Cerberus (consensus algorithm)
This article, Draft:Cerberus (consensus algorithm), has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Preload talk Inform author |
This article, Draft:Cerberus (consensus algorithm), has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Preload talk Inform author |
Comment: None of the current sources are independent. Perryprog (talk) 14:55, 8 October 2025 (UTC)
Cerberus is a family of consensus algorithms for distributed ledger technology (DLT) designed for parallel operation across multiple shards.[1] It was developed by Radix DLT in a research collaboration with the University of California, Davis. The protocol uses a parallelized Byzantine Fault Tolerance (BFT) model that allows independent sets of transactions to be processed concurrently on different shards.[2] A stated feature of the design is atomic composability, which ensures that transactions spanning multiple shards are treated as a single indivisible operation.[3]
The formal specification for Cerberus was published in 2023 in the peer-reviewed Journal of Systems Research.[1]
History
[edit | edit source]The concept for Cerberus was developed within Radix DLT, which published an initial white paper in March 2020.[4] That same month, the company announced a research partnership with the ExpoLab group at the University of California, Davis, to formalize the protocol.[5]
An early version of the academic work appeared as an arXiv preprint in August 2020,[6] with the final peer-reviewed article being accepted for publication three years later.[7]
A simplified, single-shard implementation of Cerberus was deployed on the Radix public network with its "Olympia" release in July 2021.[8]
Protocol design
[edit | edit source]A 2024 survey of consensus algorithms classifies Cerberus as a fragmented Byzantine Fault Tolerance protocol.[2] It employs state sharding, dividing the global state of the ledger into a large number of shards to enable concurrent processing.[1] In the Radix implementation, this address space is divided into 2^256 shards, and the consensus protocol is paired with a delegated proof-of-stake (DPoS) mechanism for selecting validators.[3]
The formal model is based on an UTXO-style data structure to minimize dependencies between shards. The academic paper demonstrates the protocol's safety in asynchronous networks and its liveness under conditions of partial synchrony.[1]
Protocol variants
[edit | edit source]The 2023 paper by Hellings et al. defines three related protocols within the Cerberus family:[1]
- Core-Cerberus: A foundational version with minimal coordination between shards.
- Optimistic-Cerberus: A variant optimized for environments with rare adversarial behavior, which includes recovery procedures for attacks.
- Resilient-Cerberus: A variant designed for environments with frequent adversarial behavior, which adds more coordination overhead to simplify recovery.
See also
[edit | edit source]- Byzantine fault tolerance
- Consensus (computer science)
- Distributed ledger technology
- Sharding (database architecture)
References
[edit | edit source]- ^ a b c d e Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).