Lux Docs
Lux Reference

Lux Quasar

Quasar finality — a typed compact-certificate envelope binding four evidence kinds (Beam · Pulsar · Corona · P3Q) to one canonical message under one P-Chain-pinned KeyEra. Defines the ConsensusCert envelope, the suite registry, and the four operator postures.

Overview

Quasar is the post-quantum finality layer at the center of every Lux chain. A finalized round is sealed by a ConsensusCert — a policy-gated aggregate quorum certificate. Policy declares which cryptographic legs are required; certificate bytes carry the per-leg evidence; every leg proves the same weighted-quorum predicate over the same domain-separated finality message.

Four evidence kinds

The chain stores one compact typed evidence per lane, never N raw per-validator signatures. These four names are the value-level vocabulary; the suite registry maps each concrete suite to its orthogonal axes.

Evidence kindWire idFamilyShapeRole
Beambeam-blsBLS12-381 (classical)one aggregateFast classical aggregate
Pulsarpulsar-threshold-mldsaModule-LWE, FIPS-204 ML-DSA (TALUS)one threshold sigCompact PQ threshold leg
Coronacorona-ringtailRing-LWE (Ringtail), dealerlessone threshold sigIndependent second PQ lattice leg
P3Qp3q-mldsa-rolluprollup over independent ML-DSA certsroot/proof over a cert setFallback: migration / recovery / bridge / audit

Beam, Pulsar, and Corona are O(1) in committee size. P3Q compresses a set of independent per-validator ML-DSA certs (the MLDSACertSet) — the always- available audit/challenge object, never the primary finality object when a compact Pulsar leg is live.

Two orthogonal axes

A leg's kind (what it satisfies) and mode (how it is proven) are orthogonal and never braided:

Evidence kindLegKind (what)EvidenceMode (how)
BeamLegClassicalClassicalAggregate
PulsarLegPulsarMLDSAThresholdSig
CoronaLegCoronaLatticeThresholdSig
P3QLegPulsarMLDSAP3QRollup

Pulsar and P3Q satisfy the same leg kind by different mechanisms — the policy "OR" (Beam ∧ (Pulsar OR P3Q)) is expressed at the mode level on a single required leg kind, never as an alternative leg.

Suite registry

A suite id is a wire-stable string naming one concrete, parameterised scheme. The registry is the single authority mapping a suite id to its (EvidenceKind, LegKind, EvidenceMode, param-set) — verifiers resolve suites only through it, so no suite string can dispatch to the wrong verifier and an unknown suite is a hard reject.

Suite idKindParam set
Lux-Beam-BLS12381-v1BeamBLS12-381
Lux-Pulsar-TALUS-MLDSA44 / 65 / 87PulsarML-DSA-44 / 65 / 87
Lux-Corona-Ringtail-L1 / L3 / L5-v1CoronaML-DSA-44 / 65 / 87 security-level byte
Lux-P3Q-MLDSA{44,65,87}-Direct-v1P3Qdirect (raw set, PQ-safe, O(N), always verifiable)
Lux-P3Q-MLDSA65-STARK-v1P3Qsuccinct, hash-based (PQ-safe, audit-gated)
Lux-P3Q-MLDSA65-Groth16-v1P3Qsuccinct, classical assumption (audit-gated + policy opt-in)

KeyEra — one group key per era

A threshold leg for a 1000-validator committee is one signature under one group public key. A KeyEra pins that single group key to one validator-set era:

type KeyEra struct {
    ChainID      uint32   // matches ConsensusCert.ChainID
    SignerSetID  [48]byte // P-Chain-pinned validator-set identity
    KeyEraID     uint64   // advances on signer-set rotation
    Generation   uint64   // advances on within-era key refresh / reshare
    PChainHeight uint64   // height the signer set was pinned at
    GroupPubKey  []byte   // the compact threshold GROUP key (scheme-interpreted)
    SchemeID     string   // e.g. "Lux-Pulsar-TALUS-MLDSA65" | "Lux-Corona-Ringtail-L3-v1"
    KeygenMode   string   // AUDIT only: "talus-mpc" | "ceremony" | "tee" | "p3q-rollup-fallback"
    // ...
}

KeyEra is a value qualified by its scheme, not a place: one type and one boring verifier (VerifyThresholdLeg) serve every threshold lane — Pulsar (FIPS-204 ML-DSA group sig, via pulsarwire.VerifyBytes) and Corona (Ringtail, via coronaThreshold.Verify). The chain does not care how the group key was produced; KeygenMode records that for audit and is orthogonal to verification.

The four postures (policy table)

The operator selects a finality posture per chain. The required leg kinds are committed into the cert's required-legs root; the permitted modes live in the policy's allow-table.

PostureRequiresUse case
BLS_FASTBeamMempool / fast local block acceptance
HYBRID_PQ_CHECKPOINTBeam ∧ (Pulsar or P3Q)Checkpoints
STRICT_QUASARBeam ∧ Pulsar ∧ CoronaFull dual-lattice AND-mode strict finality
RECOVERY_MODEBeam ∧ P3QRecovery / migration / bridge (no Pulsar key)

HYBRID_PQ_CHECKPOINT and RECOVERY_MODE share the same required leg kinds (hence the same required-legs root); they are distinguished by their evidence- policy id (bound into the message) and their allow-table — the requirement commits the kinds, the policy id + allow-table commit the modes.

Verifier invariants

The ConsensusCert verifier (VerifyConsensusCert) enforces, among others:

  • Required legs come from policy only. The cert's required-legs root is recomputed from policy and checked; the cert may not assert its own required set.
  • The signed message binds the full consensus tuple (chain id, epoch, height, round, block hash, validator-set root, policy id, required-legs root, signer root, cert profile) — never the block hash alone; cross-domain replay is closed.
  • Every required leg must appear exactly once; a missing leg is a hard reject.
  • Classical evidence can satisfy only a classical leg — never a required PQ leg; a classical-only cert is rejected under any posture requiring a PQ leg.
  • SLH-DSA is never threshold-signed in production (a Magnetar threshold-sig leg is a hard reject).
  • Threshold legs require signer accountability (signer root, aggregate weight, policy, session binding) or are rejected.
  • Malformed bytes yield a typed error, never a panic and never unbounded work.

Compactness

ML-DSA-65 signatures are ~3.3 KB. A naive per-validator certificate is 48 + N × 3309 bytes; the compact threshold leg replaces the N × 3309 term with a single group signature, so a 1000-validator cert is the same size as a 4-validator cert — roughly three orders of magnitude smaller at N=1000.

Cross-references

On this page