mirror of
https://github.com/luxfi/quasar.git
synced 2026-10-30 15:20:26 +00:00
4.1 KiB
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 viaFinalitySchemeIDinluxfi/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:
- BLS classical leg is always populated (fast-path requirement).
- At least one PQ leg is always populated (PQ-finality requirement).
- The set of populated cert legs matches the profile selector
exactly — extra legs OR missing legs is malformed (see
SPEC.md§Verification rule 2). - Domain separation between legs is enforced via context
strings (see
SPEC.md§Domain separation). - 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:
- Both old and new profiles' primitives must run in parallel during the rotation window
- Cert-acceptance logic must accept either profile for blocks in the rotation window
- 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 formatPRIMITIVES.md— implementation versionsproofs/composition.tex— cross-primitive soundness theoremluxfi/consensus/config/pq_mode.go— runtime selector- LP-020 — Quasar Consensus LP (Lux Proposals)
- LP-105 — Lux stack lexicon