mirror of
https://github.com/luxfi/corona.git
synced 2026-09-24 00:25:54 +00:00
README: independent library + Double-Lattice composition with pulsar
Corona (Ring-LWE) and Pulsar (Module-LWE) are independently usable threshold ML-DSA libraries — no shared types, no import line between them. Each can be selected as a chain's sole PQ threshold layer. The academic Corona upstream (Boschini et al, ePrint 2024/1113) is referenced as luxfi/nasua (historical reference fork, trusted-dealer DKG, not for public-chain use). Corona is the production track that adds the lifecycle the academic fork lacks (Pedersen DKG over R_q + proactive resharing + identifiable abort). Lux primary-network QuasarCert layers both lattice families as a Double-Lattice PQ defence with optional BLS classical fast-path and per-validator ML-DSA-65 rolled up via STARK/FRI through P3Q.
This commit is contained in:
@@ -5,9 +5,20 @@
|
||||
See [LP-105 §Claims and evidence](https://github.com/luxfi/lps/blob/main/LP-105-lux-stack-lexicon.md#claims-and-evidence) for the canonical claims/evidence table and the ten architectural commitments — single source of truth.
|
||||
|
||||
**Corona** is the Lux **Ring-LWE** post-quantum threshold signature library
|
||||
for **Quasar consensus**, derived from [daryakaviani/corona](https://github.com/daryakaviani/corona) (academic 2-round threshold signature from R-LWE) with the protocol additions needed to operate on a **leaderless open public chain**.
|
||||
for **Quasar consensus**. The 2-round threshold construction line traces back
|
||||
to Boschini–Kaviani–Lai–Malavolta–Takahashi–Tibouchi's academic R-LWE paper
|
||||
(ePrint 2024/1113); the academic codebase lives at
|
||||
[`luxfi/nasua`](https://github.com/luxfi/nasua) (historical reference fork,
|
||||
trusted-dealer DKG only — not for public-chain use). Corona adds the
|
||||
production lifecycle that fork lacked: Pedersen DKG over `R_q` with proper
|
||||
hiding, proactive resharing for epoch validator rotation, identifiable
|
||||
abort, and the integration surface Quasar consumes.
|
||||
|
||||
The Module-LWE sibling library — byte-equal to FIPS 204 single-party ML-DSA per the Class N1 manifesto — lives at [`luxfi/pulsar`](https://github.com/luxfi/pulsar).
|
||||
The **Module-LWE sibling library** lives at [`luxfi/pulsar`](https://github.com/luxfi/pulsar).
|
||||
Pulsar's threshold signature output is byte-equal to FIPS 204 single-party
|
||||
ML-DSA (NIST MPTC Class N1). The two libraries are independent — there is
|
||||
no import line between them — and Quasar consumes them as parallel kernels
|
||||
selected per-chain via `FinalitySchemeID`.
|
||||
|
||||
## Version note
|
||||
|
||||
@@ -35,11 +46,14 @@ Brand-paired with Pulsar (Module-LWE) and Quasar (the consensus that
|
||||
consumes both): the same family of threshold-finality light, observed at
|
||||
a different layer.
|
||||
|
||||
## Relationship to upstream Corona
|
||||
## Relationship to academic Nasua (formerly upstream Corona)
|
||||
|
||||
The upstream repo at `daryakaviani/corona` is an **academic proof-of-concept** ("not ready for production use" per its README). Corona is the production track:
|
||||
[`luxfi/nasua`](https://github.com/luxfi/nasua) holds the academic
|
||||
2-round R-LWE threshold construction (Boschini et al, ePrint 2024/1113)
|
||||
as a **historical reference fork** — "not ready for production use" per
|
||||
its origin. Corona is the production track:
|
||||
|
||||
| Layer | Upstream Corona | Corona |
|
||||
| Layer | Academic Nasua | Corona |
|
||||
|---|---|---|
|
||||
| 2-round threshold sign | ✅ same byte-equal protocol | ✅ inherited |
|
||||
| Trusted-dealer Gen | ✅ for fixed federation | ✅ retained for bridge MPC |
|
||||
@@ -47,6 +61,27 @@ The upstream repo at `daryakaviani/corona` is an **academic proof-of-concept** (
|
||||
| **Pedersen DKG over R_q** with proper hiding | ❌ not specified | 🚧 **corona/dkg2/** (this fork) |
|
||||
| Per-validator triple-sign integration with Quasar | ❌ N/A | 🚧 **corona/consensus/** integration |
|
||||
|
||||
## Composition with Pulsar as optional layered PQ defense
|
||||
|
||||
Corona is independently usable: a chain can pick Ring-LWE Corona as its
|
||||
sole PQ threshold layer, no cross-dependency on Pulsar. Lux primary-
|
||||
network QuasarCert combines both lattice families as a **Double Lattice**
|
||||
layered defence so a break in one family does not break finality:
|
||||
|
||||
```
|
||||
QuasarCert {
|
||||
BLS — optional classical fast-path (BLS-12-381 aggregate)
|
||||
Corona — Ring-LWE threshold ML-DSA (this repo)
|
||||
Pulsar — Module-LWE threshold ML-DSA (luxfi/pulsar)
|
||||
MLDSARollup — per-validator ML-DSA-65 rolled up via STARK/FRI (P3Q)
|
||||
}
|
||||
```
|
||||
|
||||
Each layer is checkable independently with no shared code; selecting
|
||||
the layer happens at chain-construction time via the `FinalitySchemeID`
|
||||
axis on the chain's `ChainSecurityProfile`. The pure-PQ profile drops
|
||||
BLS entirely and runs on `Corona + Pulsar`.
|
||||
|
||||
## Layout
|
||||
|
||||
- `sign/` — 2-round threshold signing (byte-equal with upstream)
|
||||
|
||||
Reference in New Issue
Block a user