fix(corona): relabel Corona/Pulsar as Module-LWE, not Ring-LWE

Corona is a Module-LWE threshold signature (Ringtail/Raccoon line,
ePrint 2024/1113; module dims M=8, N=7 over Z_q[X]/(X^256+1), rank>1).
Pulsar is Module-LWE (FIPS-204 ML-DSA). Neither is Ring-LWE; the "M"
in ML-KEM/ML-DSA is Module.

Fixes the 0x012206 slot-map comments (p3q, magnetar, starkfri,
modules/registerer), the Corona precompile doc comments, the registry
CORONA description string, and the README/LLM/corona-README docs.
Comments, strings, and docs only — no identifier, precompile address,
selector, gas value, or on-chain digest changed.
This commit is contained in:
zeekay
2026-06-27 16:33:22 -07:00
parent 2cfc65ba3f
commit 865ec71ef2
9 changed files with 12 additions and 12 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ All crypto-heavy precompiles have GPU fast paths via `github.com/luxfi/accel` an
node. Removed; awaiting a real accel SLH-DSA kernel.
- `frost/` -- `accelcrypto.BatchVerify(SigECDSA, ...)` for Schnorr verification
- `cggmp21/` -- `accelcrypto.BatchVerify(SigECDSA, ...)` for ECDSA verification
- `corona/` -- `accellattice.NTTForward()` for polynomial deserialization (Ring-LWE threshold; renamed from Corona in LP-4200)
- `corona/` -- `accellattice.NTTForward()` for polynomial deserialization (Module-LWE threshold; renamed from Corona in LP-4200)
- `blake3/` -- `accelcrypto.Hash(HashBlake3, ...)` for hash256 and Merkle tree batch hashing
- `fhe/` -- `accelfhe.Add/Sub/Multiply` in `performFHEOperation()` GPU fast path
+1 -1
View File
@@ -21,7 +21,7 @@ Geth provides `NewPrecompileAdapter()` to wrap these into geth-compatible precom
|---------|---------|-------------|-----|
| `frost` | `0x0800...0002` | FROST Schnorr threshold verify (secp256k1/Ed25519) | 50k + 5k/signer |
| `cggmp21` | `0x0800...0003` | CGGMP21 threshold ECDSA verify (secp256k1) | 75k + 10k/signer |
| `Corona` | `0x0200...000B` | Ring-LWE lattice threshold verify (post-quantum) | 150k + 10k/party |
| `Corona` | `0x0200...000B` | Module-LWE lattice threshold verify (post-quantum) | 150k + 10k/party |
### Curves & Signatures
+1 -1
View File
@@ -20,7 +20,7 @@ The Pulsar Threshold precompile enables verification of lattice-based threshold
Pulsar implements a threshold signature scheme based on:
- **Lattice Cryptography**: LWE problem hardness
- **Ring Learning With Errors**: Polynomial ring operations
- **Module Learning With Errors**: Polynomial ring operations
- **Threshold Secret Sharing**: Shamir's secret sharing over rings
- **Two-Round Protocol**: Efficient distributed key generation and signing
+3 -3
View File
@@ -19,8 +19,8 @@ import (
)
var (
// ContractCoronaThresholdAddress is the address of the Corona Ring-LWE threshold signature precompile.
// LP-4200 unified PQCrypto block (Ring-LWE threshold): 0x012206.
// ContractCoronaThresholdAddress is the address of the Corona Module-LWE threshold signature precompile.
// LP-4200 unified PQCrypto block (Module-LWE threshold, Ringtail/Raccoon): 0x012206.
// Was 0x020000...000B which collides with FHE precompile space (0x0200...0080+).
ContractCoronaThresholdAddress = common.HexToAddress("0x0000000000000000000000000000000000012206")
@@ -65,7 +65,7 @@ const (
type coronaThresholdPrecompile struct{}
// Address returns the address of the Corona Ring-LWE threshold signature precompile
// Address returns the address of the Corona Module-LWE threshold signature precompile
func (p *coronaThresholdPrecompile) Address() common.Address {
return ContractCoronaThresholdAddress
}
+1 -1
View File
@@ -16,7 +16,7 @@
// 0x012204 = Pulsar (Module-LWE threshold FIPS 204, byte-equal)
// 0x012205 = P3Q (rollup-commit PQ verifier; kind-byte dispatch
// to Pulsar/Corona/Magnetar — see precompile/p3q, LP-218)
// 0x012206 = Corona (Ring-LWE threshold signatures)
// 0x012206 = Corona (Module-LWE threshold signatures)
// 0x012207 = Magnetar ← this precompile (hash-based threshold FIPS 205)
// 0x012208 = HQC (code-based KEM, family-disjoint backup)
// 0x012220 = STARK-FRI (strict-PQ STARK / FRI — see precompile/starkfri, LP-221)
+1 -1
View File
@@ -156,7 +156,7 @@ var (
// 0x12204 = Pulsar (Module-LWE threshold, FIPS 204 byte-equal)
// 0x12205 = P3Q (rollup-commit PQ verifier; kind-byte dispatch
// to Pulsar/Corona/Magnetar — LP-218)
// 0x12206 = Corona (Ring-LWE threshold)
// 0x12206 = Corona (Module-LWE threshold)
// 0x12207 = Magnetar (hash-based threshold, FIPS 205 byte-equal)
// 0x12208 = HQC (code-based KEM, family-disjoint backup)
// 0x12220 = STARK-FRI (strict-PQ STARK / FRI verifier — LP-221)
+2 -2
View File
@@ -28,7 +28,7 @@
// 0x012203 = SLH-DSA (hash-based signature, FIPS 205)
// 0x012204 = Pulsar (Module-LWE threshold, FIPS 204 byte-equal)
// 0x012205 = P3Q ← this precompile (LP-218 rollup-commit verifier)
// 0x012206 = Corona (Ring-LWE threshold)
// 0x012206 = Corona (Module-LWE threshold, Ringtail/Raccoon)
// 0x012207 = Magnetar (SLH-DSA threshold, FIPS 205 byte-equal)
// 0x012208 = HQC (code-based KEM, family-disjoint backup)
//
@@ -169,7 +169,7 @@ const (
// libraries land (see LP-220 §"Per-kind specs").
const (
KindPulsar uint8 = 0x01 // FIPS 204 ML-DSA (Module-LWE threshold, byte-equal)
KindCorona uint8 = 0x02 // Ring-LWE threshold (Corona eprint 2024/1113)
KindCorona uint8 = 0x02 // Module-LWE threshold (Corona eprint 2024/1113)
KindMagnetar uint8 = 0x03 // FIPS 205 SLH-DSA (hash-based threshold)
)
+1 -1
View File
@@ -533,7 +533,7 @@ var AllPrecompiles = []PrecompileInfo{
// Threshold/MPC (P=5) → LP-5xxx
{FROSTCChain, "FROST", "Schnorr threshold signatures", 25000, []string{"C", "Q"}, "LP-5xxx"},
{CGGMP21CChain, "CGGMP21", "ECDSA threshold signatures", 50000, []string{"C", "Q"}, "LP-5xxx"},
{CoronaCChain, "CORONA", "Threshold Ring-LWE signatures (PQ)", 75000, []string{"C", "Q"}, "LP-5xxx"},
{CoronaCChain, "CORONA", "Threshold Module-LWE signatures (PQ)", 75000, []string{"C", "Q"}, "LP-5xxx"},
{LSSCChain, "LSS", "Lux Secret Sharing", 10000, []string{"C", "Q"}, "LP-5xxx"},
{DKGCChain, "DKG", "Distributed Key Generation", 100000, []string{"C", "Q"}, "LP-5xxx"},
+1 -1
View File
@@ -22,7 +22,7 @@
// 0x012203 = SLH-DSA (hash-based signature, FIPS 205)
// 0x012204 = Pulsar (Module-LWE threshold FIPS 204, byte-equal)
// 0x012205 = P3Q (Post-Quantum Pulsar Proof — see precompile/p3q)
// 0x012206 = Corona (Ring-LWE threshold)
// 0x012206 = Corona (Module-LWE threshold)
// 0x012207 = Magnetar (SLH-DSA threshold, FIPS 205 byte-equal)
// 0x012208 = HQC (code-based KEM, family-disjoint backup)
// 0x012220 = STARK-FRI ← this precompile (strict-PQ STARK / FRI / SHAKE)