Lux Docs

Consensus

Quasar — Lux's leaderless, post-quantum, sub-second finality consensus

Lux Consensus

Lux runs Quasar, a leaderless DAG-native consensus engine with hybrid classical + post-quantum finality. Each round produces a QuasarCert that combines BLS12-381 aggregate signatures with two independent post-quantum proof paths (Pulsar threshold + ML-DSA identity), so a break of any single cryptographic primitive does not break finality.

Quasar Sub-Protocols

Each component owns one concern. They compose into two engine modes (linear chains and DAG chains).

ComponentRole
PhotonK-of-N committee selection by Fisher–Yates sampling weighted by Luminance (validator reputation)
WavePer-round threshold voting with FPC (Fast Probabilistic Consensus) tie-breaking
FocusConfidence accumulation: β consecutive supermajority rounds yields local finality
PrismDAG geometry: cuts, frontiers, uniform peer sampling
HorizonDAG order theory: reachability, lowest-common-ancestor, transitive closure, skip lists
FlareDAG cert / skip classification via 2f+1 quorum
RayLinear-chain finality driver (Wave + Focus + Sink)
FieldDAG finality driver (Wave + safe-prefix commit)
NovaLinear-chain consensus mode — wraps Ray
NebulaDAG consensus mode — wraps Field
QuasarThreshold signing + epoch management (BLS + Pulsar + ML-DSA)

Round flow

Linear (Nova): Photon → Wave → Focus → Ray → Sink

DAG (Nebula): Photon → Wave (per frontier vertex) → Flare → Horizon (safe prefix) → Field → Committer

QuasarCert: Hybrid Finality

Each finalized round emits a QuasarCert:

type QuasarCert struct {
    BLS        []byte    // BLS12-381 aggregate (~48 B classical fast path)
    Pulsar   []byte    // Pulsar/Ring-LWE 2-round threshold proof (~33 KB PQ)
    MLDSAProof []byte    // Z-Chain Groth16 rollup of N × ML-DSA identity sigs (~192 B)
    Epoch      uint64
    Finality   time.Time
    Validators int
}
LayerHardnessRoleSize
BLS12-381 aggregateClassical co-CDHFast path48 B
Pulsar (Ring-LWE)Module-LWEPQ threshold~33 KB
ML-DSA-65 → Groth16Module-LWE + MSISPQ identity rollup~192 B

A QuasarCert verifies if and only if the configured layers all verify. Each layer is independently toggleable:

ModeCompositionUse case
BLSOnlyBLS onlyClassical fast path
BLSPlusMLDSABLS + per-validator ML-DSAIdentity-bound PQ
BLSPlusCoronaBLS + Pulsar thresholdThreshold-only PQ
BLSPlusGroth16BLS + Z-Chain Groth16 rollupCompact PQ identity
TripleQuantumAll three layers in parallelFull Quasar

Selectable at runtime via the CONSENSUS_PQ_MODE env var or config.PQMode field.

Pulsar (Threshold Layer)

The Pulsar layer is implemented by Pulsar (github.com/luxfi/pulsar/threshold) — Lux's variant with DKG2 and the Pulsar-SHA3 hash suite (KMAC over cSHAKE256, NIST SP 800-185).

ParameterValueMeaning
M8Module rank
N7Min signers (threshold = 6 of 8)
LogN8Ring degree = 256
Q0x1000000004A0148-bit NTT-friendly prime
Security (classical / quantum)2^142 / 2^130BDGL sieving + Grover

Measured performance (Apple M1 Max, single round)

ModeSignAggregateVerifyCert10K certs
BLS-only312 µs8.6 ms714 µs123 B1.17 MB
BLS + ML-DSA369 µs8.5 ms3.4 ms69 KB665 MB
BLS + Pulsar39 ms3.3 s1.6 ms33 KB318 MB
Triple Quantum40 ms3.3 s4.3 ms102 KB981 MB

ZAP wire protocol (zero-copy, replaces JSON-RPC for inter-node messages): single-conn 114K TPS, 50 conns + batch 1000 = 20.26M TPS.

Properties

Liveness. Round driver makes progress whenever a 2f+1 fraction of the network is reachable. No single leader.

Safety. Holds whenever fewer than f Byzantine validators participate (committee size 3f+1). The classical layer (BLS) and post-quantum layers (Pulsar / ML-DSA) sign the same payload, so an adversary that breaks one primitive still has to defeat the other layers.

PQ safety. Even an attacker with full quantum capability cannot forge a triple-mode cert without breaking both Ring-LWE (Pulsar) and ML-DSA simultaneously — see LP-105 §7 and ~/work/lux/proofs/quasar-cert-soundness.tex App. E for the parameter-tightness argument.

Scalability. Per-node communication is O(k) per round (committee size, not validator-set size). Quasar scales to thousands of validators without degrading finality.

Chain assignments

ChainEngineWhy
C-Chain (EVM)Nova (linear)Sequential smart-contract execution
P-Chain (platform)Nova (linear)Ordered validator-set + staking transitions
X-Chain (UTXO)Nebula (DAG)High-throughput parallel asset transfers
Q-ChainPulsar 2-round thresholdPQ consensus signing for Quasar
M-ChainCGGMP21 / FROST / Pulsar-general MPCBridge custody for external wallets, threshold signing ceremonies
F-ChainTFHE bootstrap-key generation, FHE computeEncrypted EVM, encrypted ML inference
Z-ChainGroth16 over BLS12-381Roll N × ML-DSA-65 sigs into 192-byte proof

Further reading

On this page