Module ordered_broadcast

Module ordered_broadcast 

Source
Expand description

Ordered, reliable broadcast across reconfigurable participants.

§Concepts

The system has two types of network participants: sequencers and validators. Their sets may overlap and are defined by the current epoch, a monotonically increasing integer. This module can handle reconfiguration of these sets across different epochs.

Sequencers broadcast data. The smallest unit of data is a chunk. Sequencers broadcast nodes that contain a chunk and a certificate over the previous chunk, forming a linked chain of nodes from each sequencer.

Validators verify and sign chunks. These signatures can be combined to form a quorum certificate, ensuring a quorum verifies each chunk. The certificate allows external parties to confirm that the chunk was reliably broadcast.

Network participants persist any new nodes to a journal. This enables recovery from crashes and ensures that sequencers do not broadcast conflicting chunks and that validators do not sign them. “Conflicting” chunks are chunks from the same sequencer at the same height with different payloads.

§Pluggable Cryptography

The ordered broadcast module is generic over the signing scheme, allowing users to choose the cryptographic scheme best suited for their requirements:

  • ed25519: Attributable signatures with individual verification. HSM-friendly, no trusted setup required. Certificates contain individual signatures.

  • bls12381_multisig: Attributable signatures with aggregated verification. Produces compact certificates while preserving signer attribution.

  • bls12381_threshold: Non-attributable threshold signatures. Produces succinct constant-size certificates. Requires trusted setup (DKG).

§Design

The core of the module is the Engine. It is responsible for:

  • Broadcasting nodes (if a sequencer)
  • Signing chunks (if a validator)
  • Tracking the latest chunk in each sequencer’s chain
  • Assembling certificates from a quorum of signatures
  • Notifying other actors of new chunks and certificates

§Acknowledgements

Autobahn provided the insight that a succinct proof-of-availability could be produced by linking sequencer broadcasts.

Modules§

scheme
Signing scheme implementations for ordered_broadcast.
types
Types used in crate::ordered_broadcast.

Structs§

Config
Configuration for the super::Engine.
Engine
Instance of the engine.