Files

4.1 KiB

Quasar Cert Profiles

Registry of the cert profiles a Lux chain may deploy. Each profile is a fixed composition over the primitives in PRIMITIVES.md. Profile selection is per-chain via FinalitySchemeID in luxfi/consensus/config/pq_mode.go.

Profile registry

Pulsar — PQ floor (current production default for Q-Chain)

Property Value
Composition BLS ‖ Pulsar
Primitives BLS12-381 (classical) + Threshold ML-DSA-65 (PQ floor)
Cert size ~3549 B per cert (n=21 validators)
Use case Minimal PQ posture — every cert has both a classical fast-path leg AND a NIST-standardized PQ threshold leg
FinalitySchemeID BLSPlusCorona (legacy enum name; Corona here means the threshold-protocol family, instantiated with Pulsar's M-LWE kernel)

Aurora — intra-lattice diversity

Property Value
Composition BLS ‖ Pulsar ‖ Corona
Primitives BLS12-381 + Threshold ML-DSA-65 (M-LWE) + Threshold Corona (R-LWE)
Cert size ~37 KB per cert (n=21)
Use case Defense in depth within the lattice family — if a cryptanalytic break hits M-LWE specifically (not R-LWE) or vice versa, the cert still has a valid lattice leg
FinalitySchemeID TripleQuantum with Corona enabled

Polaris — maximum-assurance cross-family

Property Value
Composition BLS ‖ Pulsar ‖ Corona ‖ Magnetar
Primitives BLS12-381 + Threshold ML-DSA-65 + Threshold Corona + Threshold SLH-DSA
Cert size ~53 KB per cert (n=21)
Use case Cross-family PQ diversity — lattice (Pulsar/Corona) AND hash-based (Magnetar). Survives a cryptanalytic break against the entire lattice family.
FinalitySchemeID TripleQuantum with Corona AND Magnetar enabled
Status Magnetar primitive is research-stage; profile is reserved for the production migration target when Magnetar matures

Profile invariants

All profiles MUST satisfy:

  1. BLS classical leg is always populated (fast-path requirement).
  2. At least one PQ leg is always populated (PQ-finality requirement).
  3. The set of populated cert legs matches the profile selector exactly — extra legs OR missing legs is malformed (see SPEC.md §Verification rule 2).
  4. Domain separation between legs is enforced via context strings (see SPEC.md §Domain separation).
  5. Validator set is shared across legs at the same epoch — each leg signs under the same set's primitive-specific public keys.

Profile selection

Per-chain, the profile is fixed by the FinalitySchemeID field on the chain's consensus config. Mid-chain profile rotation is a coordinated event:

  1. Both old and new profiles' primitives must run in parallel during the rotation window
  2. Cert-acceptance logic must accept either profile for blocks in the rotation window
  3. After the window closes, only the new profile is valid

This is documented in luxfi/consensus/config/pq_mode.go and the operational runbook lives at ~/work/lux/pulsar/DEPLOYMENT-RUNBOOK.md for the Pulsar-leg rotation specifically.

Naming notes

The profile names settled on:

  • Pulsar — single PQ kernel, floor
  • Aurora — Latin "dawn"; two lattice constructions
  • Polaris — the pole star; maximum-assurance navigation (supersedes the earlier "Syzygy" working name)

Primitives:

  • Pulsar — M-LWE threshold ML-DSA-65 (the namesake of the PQ-floor profile)
  • Corona — R-LWE threshold (Lux production fork of Boschini et al., eprint 2024/1113; the upstream academic reference name was "Corona", retired in Lux ecosystem)
  • Magnetar — SLH-DSA threshold (hash-based) (supersedes the earlier "Comet" working name)

No other profile or primitive names are in use. Anything labelled "Syzygy", "Comet", or "Corona" in older docs is superseded.

Cross-references

  • SPEC.md — wire format
  • PRIMITIVES.md — implementation versions
  • proofs/composition.tex — cross-primitive soundness theorem
  • luxfi/consensus/config/pq_mode.go — runtime selector
  • LP-020 — Quasar Consensus LP (Lux Proposals)
  • LP-105 — Lux stack lexicon