mirror of
https://github.com/luxfi/pulsar.git
synced 2026-09-24 00:25:52 +00:00
docs: prune AI slop — delete transitional/meta .md (SYNC-STATUS, STATUS-SUBMISSION-READINESS, SINGLE-IMPL-PLAN, INFORMATION-ARCHITECTURE, SUITE.md, docs/magnetar.md); HANZO-CRYPTO-SUITE + ROADMAP moved to lps/; magnetar moved to luxfi/magnetar; refs updated
This commit is contained in:
@@ -46,7 +46,7 @@ implementation defects.
|
||||
- **Spec.** `~/work/lux/pulsar/SPEC.md` and
|
||||
`~/work/lux/pulsar/spec/pulsar.tex` (1,630 lines).
|
||||
- **Submission package.** `~/work/lux/pulsar/SUBMISSION.md`,
|
||||
`STATUS-SUBMISSION-READINESS.md`, `PROOF-CLAIMS.md`,
|
||||
`CHANGELOG.md`, `PROOF-CLAIMS.md`,
|
||||
`AXIOM-INVENTORY.md`, `BLOCKERS.md`.
|
||||
- **Machine-checked proofs.**
|
||||
- EasyCrypt: 13 files at `~/work/lux/pulsar/proofs/easycrypt/`
|
||||
@@ -212,12 +212,12 @@ implementation defects.
|
||||
exact `go test -coverpkg=...` invocation used to derive the
|
||||
claimed figure. Not blocking; not a security claim.
|
||||
|
||||
- **MIN-2.** `STATUS-SUBMISSION-READINESS.md` lists pulsar
|
||||
- **MIN-2.** `CHANGELOG.md` lists pulsar
|
||||
HEAD as `c2e01e3` (2026-05-18); the v1.0.7 algorithm commit is
|
||||
`174941a` on the `luxfi/pulsar` side. These are two different
|
||||
repos (submission framework vs algorithm source) so the divergence
|
||||
is expected, but the date stamp in
|
||||
`STATUS-SUBMISSION-READINESS.md` should be reverified at next
|
||||
`CHANGELOG.md` should be reverified at next
|
||||
edit since the algorithm commit shipped on 2026-05-18 as well.
|
||||
|
||||
- **MIN-3.** `BLOCKERS.md` "Constant-time Verify" row remains
|
||||
|
||||
@@ -58,7 +58,7 @@ satisfy at least items 1–4):
|
||||
entirely. v0.2 is the high-assurance target and EasyCrypt N1
|
||||
reduction is stated against it; v0.2 Jasmin sources type-check.
|
||||
Production migration v0.1 → v0.2 is on the roadmap (see
|
||||
`ROADMAP.md`).
|
||||
`~/work/lux/lps/ROADMAP-CRYPTO-STACK.md`).
|
||||
|
||||
### What v0.1 does NOT do
|
||||
|
||||
@@ -113,7 +113,7 @@ counter) indicate a missed cleanup path — page immediately.
|
||||
|
||||
## v0.1 → v0.2 migration plan
|
||||
|
||||
See `ROADMAP.md` §Pulsar v0.2 milestones. The migration is
|
||||
See `~/work/lux/lps/ROADMAP-CRYPTO-STACK.md` §Pulsar v0.2 milestones. The migration is
|
||||
backward-incompatible at the wire level (v0.2 partial-signature
|
||||
encoding differs) but byte-equivalent at the output (final FIPS 204
|
||||
signature is identical). Coordinated validator-set rollover is
|
||||
|
||||
@@ -1,308 +0,0 @@
|
||||
# Hanzo Crypto Suite — full inventory + packaging status
|
||||
|
||||
> Comprehensive inventory of every cryptographic construction in
|
||||
> the Lux / Hanzo / Zoo / Pars ecosystem, with packaging-status,
|
||||
> LP cross-references, and submission-readiness gap analysis.
|
||||
>
|
||||
> The Hanzo PQ Threshold Suite (`SUITE.md`) is **one subset** of this
|
||||
> broader inventory. This document is the master index.
|
||||
|
||||
## Quick orientation
|
||||
|
||||
| Category | Tiers | This document section |
|
||||
|---|---|---|
|
||||
| **Post-quantum threshold signatures** | Pulsar, Magnetar, Corona | §1 |
|
||||
| **Classical threshold signatures** | FROST, CGGMP21, LSS, BLS | §2 |
|
||||
| **Hybrid PQ signature wrappers** | X-Wing-for-Signatures (proposed) | §3 |
|
||||
| **Key encapsulation** | ML-KEM, X-Wing | §4 |
|
||||
| **Zero-knowledge / accountability** | Z-Chain PQ, P3Q precompile | §5 |
|
||||
| **FHE / confidential compute** | TFHE on F-Chain, BFV, CKKS | §6 |
|
||||
| **EVM-native PQ migration** | C-Chain + X-Chain → PQ-native | §7 |
|
||||
|
||||
**Consensus consumer.** The PQ threshold primitives in §1 (Pulsar,
|
||||
Corona, Magnetar) compose into the Lux Quasar PQ consensus suite via
|
||||
cert profiles (`Pulsar` / `Aurora` / `Polaris`). The brand-level spec
|
||||
+ profile registry + composition proofs live at
|
||||
[`luxfi/quasar`](https://github.com/luxfi/quasar); the consensus-engine
|
||||
binding lives at
|
||||
[`luxfi/consensus/protocol/quasar/`](https://github.com/luxfi/consensus/tree/main/protocol/quasar).
|
||||
|
||||
## §1 PQ threshold signatures — Hanzo PQ Threshold Suite
|
||||
|
||||
Master index: `SUITE.md`. Single canonical home: `~/work/lux/pulsar/`.
|
||||
|
||||
| Tier | Construction | LP | Repo | Spec | Proofs | NIST submission | Status |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 1 | **Pulsar** (Threshold ML-DSA) | LP-019 ref'd | `~/work/lux/pulsar/` (single canonical home) | ✅ SPEC.md + spec/pulsar.tex + IETF draft | ✅ EC 13/13, Lean 5/5 | ✅ v0.1 ready | **NIST-MPTC-submission ready** |
|
||||
| 1b | **Corona** (Threshold R-LWE) | LP-020 | `~/work/lux/corona/` | partial DESIGN.md | partial DKG proofs | ❌ v0.2 target | implementation mature, packaging needed |
|
||||
| 3 | **Magnetar** (Threshold SLH-DSA) | TBD | none | `docs/magnetar.md` placeholder | ❌ | ❌ research-only | research-direction sketch |
|
||||
| 4 | **LSS** (Linear Shamir) | LP-019 + LP-141 | `~/work/lux/lps/`, `~/work/lux/mpc/` | LP-019 sections | none mechanized | ❌ wrapper-only | spec exists, no submission package |
|
||||
|
||||
**Gap to "all tiers submission-ready"**:
|
||||
- Corona: full SUBMISSION.md + SPEC.md + PROOF-CLAIMS.md + AXIOM-INVENTORY.md + PATENTS.md package mirroring Pulsar. Estimate: 2-3 weeks.
|
||||
- Magnetar: research-paper + initial DKG prototype. Estimate: 2-3 months.
|
||||
- LSS: standalone IETF draft + reference vectors. Estimate: 2 weeks.
|
||||
|
||||
## §2 Classical threshold signatures
|
||||
|
||||
Used for bridging to non-PQ chains (Bitcoin secp256k1, Ethereum
|
||||
legacy, Cosmos Ed25519, Solana, etc.). Specified in
|
||||
**LP-019: Threshold MPC for Bridge Signing** (`~/work/lux/lps/LP-019-threshold-mpc.md`).
|
||||
|
||||
| Scheme | Curve | Use case | LP | Implementation | Submission package status |
|
||||
|---|---|---|---|---|---|
|
||||
| **FROST** | Ed25519 / secp256k1 (Schnorr) | Cosmos, Bitcoin Schnorr | LP-019 | `~/work/lux/mpc/` | LP-spec mature; IETF draft `draft-irtf-cfrg-frost` exists upstream; Lux profile gap |
|
||||
| **CGGMP21** | secp256k1 (ECDSA) | Ethereum, Bitcoin legacy | LP-019 | `~/work/lux/mpc/` | LP-spec mature; submission package gap |
|
||||
| **LSS wrapper** | n/a (linear Shamir over any of the above) | dynamic resharing | LP-019 + LP-141 | `~/work/lux/mpc/`, `~/work/lux/lps/LP-141` | LP-spec mature; submission package gap |
|
||||
| **BLS** | BLS12-381 | aggregated sigs, Quasar consensus | LP-020 | `~/work/lux/crypto/`, `~/work/lux/bls/` | spec mature; submission package gap |
|
||||
|
||||
**Per user direction "100% up to spec"**: each of FROST, CGGMP21,
|
||||
LSS, BLS needs:
|
||||
1. Equivalent of `./SUBMISSION.md` (cover sheet).
|
||||
2. Equivalent of `./SPEC.md` (text spec) — partially in LP-019.
|
||||
3. Equivalent of `./PATENTS.md` (FROST and CGGMP21 are
|
||||
academically published; need defensive grant statement).
|
||||
4. Implementation-correctness proof (EC + Lean) — currently absent for FROST/CGGMP21.
|
||||
5. Constant-time analysis — partial for FROST.
|
||||
6. Test vectors — KAT format aligned with `./vectors/`.
|
||||
|
||||
Estimated total: 8-12 weeks per scheme.
|
||||
|
||||
## §3 Hybrid PQ signature wrappers — "X-Wing for Signatures"
|
||||
|
||||
> **User direction**: "ala X-Wing but for older crypto wallets"
|
||||
|
||||
X-Wing (LP-115) is a hybrid PQ KEM combining X25519 + ML-KEM-768.
|
||||
For SIGNATURES, the analogous construct is a hybrid PQ-sig wrapper
|
||||
that combines classical (Ed25519 / ECDSA) + PQ (ML-DSA / SLH-DSA)
|
||||
into a single concatenated signature.
|
||||
|
||||
**Proposed name**: `X-WING-SIG` (or `X-WING-DSA`).
|
||||
|
||||
**Construction sketch**:
|
||||
```
|
||||
HybridSig(sk_classical, sk_pq, M)
|
||||
= Sign_classical(sk_classical, "X-WING-SIG-v0||" ++ M)
|
||||
|| Sign_pq(sk_pq, "X-WING-SIG-v0||" ++ M)
|
||||
|
||||
HybridVerify(pk_classical, pk_pq, M, sig)
|
||||
= Verify_classical(pk_classical, "X-WING-SIG-v0||" ++ M, sig[..classical_len])
|
||||
∧ Verify_pq(pk_pq, "X-WING-SIG-v0||" ++ M, sig[classical_len..])
|
||||
```
|
||||
|
||||
**Security claim**: forgery requires breaking BOTH the classical
|
||||
AND PQ scheme. Useful for transitional deployment where:
|
||||
- Legacy wallets cannot upgrade to PQ-only (e.g., hardware HSMs
|
||||
pinned to ECDSA).
|
||||
- Defense-in-depth against either scheme being broken.
|
||||
- FIPS compliance during the migration window.
|
||||
|
||||
**LP status**: not yet drafted. Recommended LP-NNN slot:
|
||||
"LP-XXX: X-WING-SIG hybrid signature wrapper".
|
||||
|
||||
**Submission-package status**: none. Estimated effort to draft:
|
||||
- Spec: 1-2 weeks.
|
||||
- Implementation (Go reference + Rust crate): 1 week.
|
||||
- Lean proof (composition theorem: hybrid_secure iff classical_secure ∨ pq_secure): 2-3 weeks.
|
||||
- Test vectors: 1 week.
|
||||
|
||||
**Threshold variant**: trivially threshold-izable as
|
||||
"FROST × Pulsar" — run threshold FROST and Pulsar in parallel,
|
||||
concatenate outputs. Documented in `~/work/lux/lps/LP-019` future
|
||||
revision.
|
||||
|
||||
## §4 Key encapsulation
|
||||
|
||||
| Scheme | Standard | LP | Implementation | Status |
|
||||
|---|---|---|---|---|
|
||||
| **ML-KEM-768** | FIPS 203 | LP-012 | `~/work/lux/crypto/mlkem` | production |
|
||||
| **X-Wing** (hybrid X25519 + ML-KEM) | draft IRTF CFRG | LP-115 | `~/work/lux/crypto/xwing` | production |
|
||||
| **X-Wing+** (Lux-extended profile) | n/a | LP-115 follow-up | `~/work/lux/crypto/xwing+` | production |
|
||||
|
||||
LP-115 has the X-Wing KEM spec. No threshold KEM (not a typical
|
||||
threshold primitive).
|
||||
|
||||
## §5 ZK / accountability layer — Z-Chain PQ + P3Q precompile
|
||||
|
||||
### §5.1 Z-Chain PQ
|
||||
|
||||
**LP-063: Z-Chain** + **LP-169: Z-Chain PQ Identity Rollup**.
|
||||
|
||||
Z-Chain is a Lux-original ZK rollup providing:
|
||||
- Asynchronous identifiable abort for Pulsar (when synchronous
|
||||
network assumption fails).
|
||||
- ZK-proof-backed key registry (HIP-0078).
|
||||
- Privacy-preserving identity layer.
|
||||
|
||||
**Construction**: Groth16 proofs over the PQ-signature aggregation
|
||||
identity, posted to Z-Chain rollup, verifiable by L1.
|
||||
|
||||
**Status**:
|
||||
- LP-063: spec mature.
|
||||
- LP-169: PQ identity rollup spec mature.
|
||||
- Implementation: `~/work/lux/zchain/` (if exists; verify).
|
||||
- Submission package: not in scope for v0.1 Pulsar — separate
|
||||
Lux artifact.
|
||||
|
||||
### §5.2 P3Q precompile (EVM, slot 0x012205)
|
||||
|
||||
**P3Q** = "Post-Quantum Pulsar Proof", an EVM precompile at slot
|
||||
`0x012205` providing on-chain verification of Pulsar threshold
|
||||
signatures.
|
||||
|
||||
**Reference**: per the Lux global guidance, P3Q is a new primitive
|
||||
at its own slot, not bolted onto existing ZK or Pulsar.
|
||||
|
||||
**LP**: covered partially by LP-078 (EVM precompiles); needs a
|
||||
dedicated LP-XXX for the precompile specification (input format,
|
||||
gas cost, error cases).
|
||||
|
||||
**Implementation**: in `~/work/lux/evm/precompiles/` (verify
|
||||
path).
|
||||
|
||||
**Submission package**: not applicable (precompile, not standalone
|
||||
algorithm). The Pulsar signature verified by P3Q is the same byte
|
||||
string as a FIPS 204 ML-DSA signature, so any FIPS 204 verifier
|
||||
inside the EVM precompile suffices.
|
||||
|
||||
## §6 FHE / confidential compute
|
||||
|
||||
**LP-013: FHE GPU**, **LP-066: TFHE**, **LP-067: Confidential ERC-20**,
|
||||
**LP-068: Private Teleport**.
|
||||
|
||||
| Scheme | Use case | LP | Status |
|
||||
|---|---|---|---|
|
||||
| **TFHE** (CGGI bootstrapped, gate-level) | Generic confidential compute | LP-066 | LP-spec mature; F-Chain host (LP-134) |
|
||||
| **BFV** | Vector ops (privacy-preserving inference) | LP-013 sections | partial |
|
||||
| **CKKS** | Approximate-arithmetic (ML inference) | LP-013 sections | partial |
|
||||
|
||||
**Threshold FHE**: threshold key generation for TFHE bootstrapping
|
||||
keys is hosted on F-Chain (LP-134 split — M-Chain hosts MPC
|
||||
ceremonies, F-Chain hosts FHE). Specified in LP-019 + LP-141.
|
||||
|
||||
**Pulsar ↔ FHE composition**: not directly composed. FHE provides
|
||||
confidential compute on encrypted data; Pulsar provides
|
||||
authenticated threshold signatures on plaintext messages. They
|
||||
operate at different layers.
|
||||
|
||||
**Submission-package status**: TFHE is research-grade; no NIST
|
||||
submission target.
|
||||
|
||||
## §7 EVM-native PQ migration
|
||||
|
||||
> **User direction**: "should shift all native lux c/x chain and
|
||||
> evm native PQ"
|
||||
|
||||
**LP-012: PQ Crypto GPU**, **LP-078: EVM precompiles**.
|
||||
|
||||
Current Lux native chains:
|
||||
- **C-Chain** (EVM-compatible): uses ECDSA for transaction signing.
|
||||
- **X-Chain** (UTXO): uses ECDSA / Ed25519 hybrid.
|
||||
|
||||
**Target**: native PQ signing using Pulsar / ML-DSA at the wallet
|
||||
+ transaction layer.
|
||||
|
||||
**Migration paths**:
|
||||
|
||||
1. **Soft migration via X-Wing-Sig** (§3 above): wallets sign
|
||||
transactions with hybrid (ECDSA + ML-DSA); validators accept
|
||||
either-or-both signatures during transition.
|
||||
|
||||
2. **Hard fork to PQ-native**: protocol change requiring all
|
||||
validators to verify ML-DSA exclusively. Breaks legacy wallets.
|
||||
Requires coordinated migration window.
|
||||
|
||||
3. **Per-account opt-in**: introduce a new account type that
|
||||
requires PQ signing; legacy accounts continue with ECDSA;
|
||||
block bridge encourages opt-in.
|
||||
|
||||
**Submission-package implications**: P3Q precompile (§5.2) is the
|
||||
on-chain verifier interface. If wallets migrate to native PQ,
|
||||
P3Q's gas cost becomes the bottleneck.
|
||||
|
||||
**LP status**: migration plan not yet drafted. Recommended LP-XXX:
|
||||
"LP-XXX: C-Chain / X-Chain PQ-native migration plan".
|
||||
|
||||
## Suite-wide standards conformance matrix
|
||||
|
||||
| Construction | NIST standard | IETF draft | EasyCrypt proof | Lean proof | Jasmin CT | Test vectors | LP |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| Pulsar | FIPS 204 (parent) | draft-hanzo-pulsar-threshold-mldsa-00 | ✅ 13/13 | ✅ 5/5 | ✅ 3/3 | ✅ | LP-019 |
|
||||
| Corona | none (Lux-original) | TBD | partial | TBD | TBD | partial | LP-020 |
|
||||
| Magnetar | FIPS 205 (parent) | none | none | none | none | none | TBD |
|
||||
| LSS | none | TBD | none | none | none | partial | LP-019 + LP-141 |
|
||||
| FROST | draft-irtf-cfrg-frost (upstream) | upstream | none in Lux | none | none | upstream KATs | LP-019 |
|
||||
| CGGMP21 | none | none | none | none | none | partial | LP-019 |
|
||||
| X-Wing-Sig | none (proposed) | TBD | TBD | TBD | TBD | TBD | TBD |
|
||||
| ML-KEM | FIPS 203 | RFC drafts | n/a (KEM) | n/a | partial | upstream | LP-012 |
|
||||
| X-Wing | draft IRTF | draft-irtf-cfrg-xwing | n/a | n/a | partial | upstream | LP-115 |
|
||||
| Z-Chain PQ | none (Lux-original) | none | none | partial Lean | none | none | LP-063 + LP-169 |
|
||||
| P3Q precompile | n/a | n/a | n/a | n/a | n/a | partial | LP-078 (partial) |
|
||||
| TFHE | academic | none | none | none | none | upstream | LP-066 |
|
||||
|
||||
**Honest summary**:
|
||||
- Pulsar is the only construction with FULL submission-grade
|
||||
packaging.
|
||||
- All others have varying degrees of LP-level spec maturity but
|
||||
lack the matching SUBMISSION.md + PROOF-CLAIMS.md +
|
||||
AXIOM-INVENTORY.md + TCB + IETF draft + PATENTS.md package.
|
||||
- Bringing the full suite to Pulsar-grade packaging is a 6-12
|
||||
month coordinated effort.
|
||||
|
||||
## Recommended next-quarter work plan
|
||||
|
||||
| Q | Work |
|
||||
|---|---|
|
||||
| Q3 2026 | Pulsar NIST MPTC submission (Nov 16 deadline) |
|
||||
| Q4 2026 | Corona equivalent packaging (matching Pulsar) |
|
||||
| Q1 2027 | FROST + CGGMP21 submission packages (Lux-profile IETF drafts + EC proof scaffolding) |
|
||||
| Q2 2027 | X-Wing-Sig LP + draft + reference impl |
|
||||
| Q3 2027 | Magnetar research paper + initial DKG impl |
|
||||
| Q4 2027 | Z-Chain PQ identity rollup audit + LP-169 finalization |
|
||||
| 2028+ | Full mechanized closure of codec axioms + Lean ↔ EC translation tooling |
|
||||
|
||||
## Information-architecture invariants
|
||||
|
||||
All Hanzo Crypto Suite documents MUST satisfy:
|
||||
|
||||
1. **Canonical algorithm wiring**: `~/work/lux/lps/CRYPTO-CANONICAL.md`
|
||||
2. **Per-construction LP**: `~/work/lux/lps/LP-NNN-*.md`
|
||||
3. **Per-construction repo**: `~/work/lux/<construction>/`
|
||||
4. **Per-construction submission package** (when production-ready):
|
||||
`<repo>/SUBMISSION.md`, `<repo>/SPEC.md`, `<repo>/PATENTS.md`,
|
||||
`<repo>/PROOF-CLAIMS.md`, `<repo>/AXIOM-INVENTORY.md`,
|
||||
`<repo>/TRUSTED-COMPUTING-BASE.md`, `<repo>/FIPS-TRACEABILITY.md`
|
||||
(if FIPS-anchored), `<repo>/docs/evaluation.md`,
|
||||
`<repo>/docs/ietf-draft.md`.
|
||||
5. **Master suite index**: `./SUITE.md` (for the PQ
|
||||
Threshold Suite) + `./HANZO-CRYPTO-SUITE.md`
|
||||
(this doc, for the broader inventory).
|
||||
|
||||
## Why this matters
|
||||
|
||||
The user's direction is clear: every novel cryptographic
|
||||
construction in the Lux ecosystem should reach Pulsar-grade
|
||||
documentation + proof artifacts BEFORE claiming production
|
||||
readiness. This document is the gap-analysis showing what work
|
||||
remains.
|
||||
|
||||
Be honest in claims:
|
||||
- DO say: "Pulsar is submission-ready for NIST MPTC v0.1."
|
||||
- DO say: "Corona has a mature LP and implementation; submission
|
||||
packaging is on the v0.2 roadmap."
|
||||
- DO say: "X-Wing-Sig is a proposed direction; no LP exists yet."
|
||||
- DO NOT say: "The Hanzo Crypto Suite is 100% NIST-ratified" —
|
||||
only Pulsar v0.1 is submission-ready.
|
||||
- DO NOT say: "Magnetar is production-ready threshold SLH-DSA" —
|
||||
research-only.
|
||||
|
||||
---
|
||||
|
||||
**Document metadata**
|
||||
|
||||
- Name: `HANZO-CRYPTO-SUITE.md`
|
||||
- Version: v0.1
|
||||
- Date: 2026-05-18
|
||||
- Scope: full Lux/Hanzo crypto inventory; broader than
|
||||
`SUITE.md` (which covers PQ threshold only).
|
||||
- Maintainer: `[email protected]`
|
||||
@@ -1,194 +0,0 @@
|
||||
# INFORMATION-ARCHITECTURE — Hanzo PQ Threshold Suite + Lux Crypto
|
||||
|
||||
> Cross-repo taxonomy showing where each artifact lives. Updated
|
||||
> 2026-05-18 to reflect the v0.1 submission package + the broader
|
||||
> Lux crypto landscape (Corona, KMS, MPC, LPs).
|
||||
|
||||
## TL;DR — where to read what
|
||||
|
||||
| If you want to read about... | Read here |
|
||||
|---|---|
|
||||
| **NIST MPTC submission for Pulsar** | `./SUBMISSION.md` + `NIST-SUBMISSION.md` |
|
||||
| **Hanzo PQ Threshold Suite overview** | `./SUITE.md` |
|
||||
| **Pulsar protocol spec** | `./SPEC.md` (text) + `./spec/pulsar.pdf` (formal) |
|
||||
| **Pulsar IETF / CFRG draft** | `./docs/ietf-draft-skeleton.md` |
|
||||
| **What's proved vs not proved** | `./PROOF-CLAIMS.md` |
|
||||
| **Residual EC axioms** | `./AXIOM-INVENTORY.md` |
|
||||
| **TCB / what to trust** | `./TRUSTED-COMPUTING-BASE.md` |
|
||||
| **Op → FIPS 204 § map** | `./FIPS-TRACEABILITY.md` |
|
||||
| **Patent grant** | `./PATENTS.md` |
|
||||
| **Patent claim drafts (internal)** | `./docs/patent-claims.md` |
|
||||
| **Per-version proof changelog** | `./CHANGELOG.md` |
|
||||
| **Performance + correctness evaluation** | `./docs/evaluation.md` |
|
||||
| **Magnetar (Tier 3 SLH-DSA research)** | `./docs/magnetar.md` |
|
||||
| **Lux canonical crypto wiring** | `lps/CRYPTO-CANONICAL.md` |
|
||||
| **Specific protocol LPs** | `lps/LP-NNN-*.md` (e.g., LP-019 threshold MPC) |
|
||||
|
||||
## Three-axis information hierarchy
|
||||
|
||||
The Lux crypto information landscape has three independent axes.
|
||||
Choose your entry point based on what you're doing:
|
||||
|
||||
### Axis 1 — by construction / primitive (cryptographic axis)
|
||||
|
||||
```
|
||||
PQ signatures (NIST-standardized)
|
||||
├── ML-DSA (FIPS 204)
|
||||
│ ├── Single-party: cloudflare/circl, libjade (external impls)
|
||||
│ ├── THRESHOLD: PULSAR (Tier 1, Hanzo suite) ← `./`
|
||||
│ └── DOCS: SUBMISSION, SPEC, IETF, PROOF, PATENTS in ./
|
||||
│
|
||||
├── SLH-DSA (FIPS 205)
|
||||
│ ├── Single-party: FIPS 205 reference (external)
|
||||
│ └── THRESHOLD: MAGNETAR (Tier 3 research) ← `./docs/magnetar.md`
|
||||
│
|
||||
└── Module-LWE / Ring-LWE (Lux-original)
|
||||
├── Single-party: N/A (FIPS 204 covers it)
|
||||
└── THRESHOLD: CORONA (Tier 1b sibling) ← `~/work/lux/corona/`
|
||||
|
||||
Classical signatures
|
||||
├── ECDSA (secp256k1)
|
||||
│ └── THRESHOLD: CGGMP21 ← `lps/LP-019` + `~/work/lux/mpc/`
|
||||
├── Schnorr / Ed25519
|
||||
│ └── THRESHOLD: FROST ← `lps/LP-019` + `~/work/lux/mpc/`
|
||||
└── BLS
|
||||
└── THRESHOLD: standard BLS aggregation ← `lps/LP-NNN` (TBD)
|
||||
|
||||
Hybrid / composition
|
||||
└── HANZO PQ THRESHOLD SUITE ← `./SUITE.md` (master index)
|
||||
|
||||
Secret-sharing wrapper
|
||||
└── LSS (Linear Shamir Secret Sharing) ← `lps/LP-019` + `lps/LP-141`
|
||||
```
|
||||
|
||||
### Axis 2 — by audience / consumer (use-case axis)
|
||||
|
||||
```
|
||||
NIST submission reviewer
|
||||
├── Entry: ./SUBMISSION.md
|
||||
├── Specs: ./SPEC.md, spec/pulsar.pdf
|
||||
├── Trust: PROOF-CLAIMS, AXIOM-INVENTORY, TCB
|
||||
├── Validation: vectors/, docs/evaluation.md
|
||||
└── IP: PATENTS.md
|
||||
|
||||
IETF / CFRG editor
|
||||
├── Entry: ./docs/ietf-draft-skeleton.md
|
||||
├── Cross-ref: ./SUITE.md (overview)
|
||||
└── Conversion: mmark / kramdown-rfc → xml2rfc XML
|
||||
|
||||
Lux protocol developer (writing a new precompile, etc.)
|
||||
├── Entry: lps/CRYPTO-CANONICAL.md (wiring + algorithm list)
|
||||
├── Per-protocol: lps/LP-NNN-*.md
|
||||
├── Implementation: `~/work/lux/<repo>/` (e.g., pulsar/, corona/)
|
||||
└── Bindings: lps/LP-012 (PQ GPU), LP-013 (FHE)
|
||||
|
||||
Lux validator operator
|
||||
├── Entry: lps/LP-015-validator-key-management.md
|
||||
├── DKG ceremony: lps/LP-019-threshold-mpc.md
|
||||
└── Operations: lps/LP-141-threshold-vm.md
|
||||
|
||||
Attorney / patent reviewer
|
||||
├── Public-facing: ./PATENTS.md
|
||||
├── Claim drafts (internal): ./docs/patent-claims.md
|
||||
└── Prior-art map: docs/patent-claims.md §1.4 (per claim group)
|
||||
|
||||
Auditor (cryptographic review)
|
||||
├── Spec: ./spec/pulsar.pdf
|
||||
├── Proofs: ./proofs/easycrypt/ + ~/work/lux/proofs/lean/
|
||||
├── Bridge doc: ./proofs/lean-easycrypt-bridge.md
|
||||
├── Trust: TRUSTED-COMPUTING-BASE.md
|
||||
└── Validation: scripts/check-high-assurance.sh
|
||||
|
||||
Application developer (calling Pulsar from Go / Rust)
|
||||
├── Reference impl: ./ref/go/pkg/pulsar/
|
||||
├── Spec subset: SPEC.md §7 (signing) + §8 (verification)
|
||||
└── Bindings (future): per language target
|
||||
|
||||
External cryptographer (peer review)
|
||||
├── Honest framing: PROOF-CLAIMS.md
|
||||
├── Residual trust: AXIOM-INVENTORY.md
|
||||
└── External-facing: spec/pulsar.pdf + Lean side at ~/work/lux/proofs/lean/
|
||||
```
|
||||
|
||||
### Axis 3 — by Lux organizational structure (governance axis)
|
||||
|
||||
```
|
||||
luxfi/ (open-source NIST-submission entity)
|
||||
├── ./ ← this repo (NIST submission)
|
||||
├── corona/ ← R-LWE sibling (open-source)
|
||||
├── crypto/ ← canonical Go crypto entry
|
||||
├── mpc/ ← general MPC infrastructure
|
||||
├── kms/ ← key-management service
|
||||
└── proofs/ ← Lean / EC / Tamarin / Halmos proofs
|
||||
|
||||
luxcpp/ (high-performance C++ + GPU crypto entry)
|
||||
└── crypto/ ← C++ + CUDA/Metal/WGSL backends
|
||||
|
||||
lps/ (Lux Proposal System)
|
||||
├── LP-001..LP-199 ← canonical protocol specs
|
||||
├── CRYPTO-CANONICAL.md ← cross-repo wiring summary
|
||||
└── LP-019, LP-020, LP-141 ← threshold-MPC, Quasar, ThresholdVM
|
||||
|
||||
hanzo/ (downstream consumers)
|
||||
├── platform/ ← Hanzo PaaS (consumes Pulsar at MPC layer)
|
||||
└── various AI/llm/etc.
|
||||
|
||||
zoo/, pars/, spc/ ← per-org subnets, may consume Pulsar
|
||||
```
|
||||
|
||||
## Cross-axis navigation
|
||||
|
||||
A reader can hop axes:
|
||||
- **From Axis 1 (Pulsar construction) to Axis 3 (governance)**:
|
||||
`./` is the open-source NIST-submission home; downstream
|
||||
consumers (hanzo/, lps/, etc.) reference it for production use.
|
||||
- **From Axis 2 (NIST reviewer) to Axis 1 (construction)**:
|
||||
SUBMISSION.md points to SPEC.md which describes Pulsar's place in
|
||||
the Tier-1/2/3 suite.
|
||||
- **From Axis 3 (LP-019 reader) to Axis 1 (Pulsar / Magnetar)**:
|
||||
LP-019 tags Pulsar precompile at 0x000B; reader follows to
|
||||
`./` for the actual NIST submission package.
|
||||
|
||||
## How the suite scales
|
||||
|
||||
For each new tier construction:
|
||||
|
||||
1. Add a row to `SUITE.md` §Tiers.
|
||||
2. Add a corresponding tier-N entry to `INFORMATION-ARCHITECTURE.md`
|
||||
Axis 1.
|
||||
3. If production-grade: spin up a parallel doc package
|
||||
(SUBMISSION, SPEC, PROOF-CLAIMS, AXIOM-INVENTORY,
|
||||
FIPS-TRACEABILITY, PATENTS, TCB, evaluation).
|
||||
4. If research-grade: a single `docs/<tier>.md` placeholder
|
||||
suffices (per `docs/magnetar.md` template).
|
||||
5. Cross-reference from the relevant LP-NNN in `lps/`.
|
||||
|
||||
## Consistency rules
|
||||
|
||||
To prevent drift across repos / LPs / docs:
|
||||
|
||||
1. **Canonical algorithm wiring lives in `lps/CRYPTO-CANONICAL.md`**.
|
||||
All other docs cross-reference; no other doc owns this.
|
||||
2. **Protocol specs live in `lps/LP-NNN`** as the authoritative
|
||||
versioned spec. Submission-package SPEC.md files reference
|
||||
the LP-NNN.
|
||||
3. **Implementation lives in the relevant repo** (`./`,
|
||||
`corona/`, etc.). Spec docs reference `ref/` paths.
|
||||
4. **Proof artifacts live in `~/work/lux/proofs/`** (Lean) and
|
||||
the relevant repo's `proofs/` (EasyCrypt + Jasmin). Bridge
|
||||
docs maintain the cross-prover correspondence.
|
||||
5. **Submission-package docs (this repo)** are NIST-submission-shaped
|
||||
and reference the canonical specs + implementations + proofs.
|
||||
6. **Patent grants** live with the repo that originated the
|
||||
construction (Pulsar's grant in `./PATENTS.md`;
|
||||
Corona's grant will live in `~/work/lux/corona/PATENTS.md`
|
||||
when packaged).
|
||||
|
||||
---
|
||||
|
||||
**Document metadata**
|
||||
|
||||
- Name: `INFORMATION-ARCHITECTURE.md`
|
||||
- Version: v0.1
|
||||
- Date: 2026-05-18
|
||||
- Cross-references: `SUITE.md`, `~/work/lux/lps/CRYPTO-CANONICAL.md`
|
||||
-1602
File diff suppressed because it is too large
Load Diff
@@ -1,75 +0,0 @@
|
||||
# SINGLE-IMPL-PLAN — COMPLETED 2026-05-18
|
||||
|
||||
> **Status: COMPLETED.** The plan to collapse the two parallel
|
||||
> implementation trees into one canonical home at `luxfi/pulsar`
|
||||
> landed in commits `20f87d8` (file-by-file merge of submission-grade
|
||||
> code into the canonical Go reference), `174941a` (uniform identity
|
||||
> stage on the large-committee path), `443c725` (cryptographer
|
||||
> sign-off), and the consolidation that produced this revision (merge
|
||||
> of the entire submission framework — spec, proofs, Jasmin, KAT,
|
||||
> cut tool, submission docs — into `luxfi/pulsar`).
|
||||
>
|
||||
> This file is kept as a historical record. The "two-repo" arrangement
|
||||
> it describes no longer exists.
|
||||
|
||||
## Final state
|
||||
|
||||
The `luxfi/pulsar` repository is now the **single canonical home**:
|
||||
|
||||
| Concern | Where it lives |
|
||||
|---|---|
|
||||
| Canonical Go reference implementation | `ref/go/pkg/pulsar/` |
|
||||
| Canonical KAT generator | `ref/go/cmd/genkat/` |
|
||||
| Canonical LaTeX spec | `spec/pulsar.tex` + supplements |
|
||||
| Mechanised proofs (EasyCrypt) | `proofs/easycrypt/` |
|
||||
| Lean ↔ EC bridge | `proofs/lean-easycrypt-bridge.md` |
|
||||
| Jasmin (low-level CT) sources | `jasmin/lib/`, `jasmin/ml-dsa-65/`, `jasmin/threshold/` |
|
||||
| Constant-time evidence (dudect) | `ct/dudect/` |
|
||||
| Reproducible benchmarks | `bench/` |
|
||||
| KAT vectors | `vectors/` |
|
||||
| Cross-validation (Class N1 interop) | `test/interoperability/` |
|
||||
| Submission cover sheet | `SUBMISSION.md` |
|
||||
| Cut tool | `scripts/cut-submission.sh` |
|
||||
| High-assurance / Lean-bridge gates | `scripts/check-high-assurance.sh`, `scripts/check-lean-bridge.sh` |
|
||||
|
||||
## What this plan resolved
|
||||
|
||||
The original (now-historical) divergence between the two trees:
|
||||
|
||||
| Tree | Files | Notes |
|
||||
|---|---:|---|
|
||||
| `luxfi/pulsar-mptc/ref/go/pkg/pulsar/` | 28 | submission focus: identifiable abort, identity stage, N1 byte-equality test, fuzz, zeroize |
|
||||
| `luxfi/pulsar/ref/go/pkg/pulsar/` | 37 | production focus: large-scale variants, round abstraction, batch verify, shamir over GF(q), precompile e2e |
|
||||
|
||||
Both trees' divergent work has been merged into the single canonical
|
||||
`luxfi/pulsar/ref/go/pkg/pulsar/`. Identifiable abort, identity
|
||||
stage (CR-7 + CR-8), N1 byte-equality test, fuzz harness, and
|
||||
zeroize are all present and applied uniformly on both the small
|
||||
(GF(257)) and large (GF(q)) committee paths. Large-scale variants,
|
||||
batch verify, round abstraction, generic-field Shamir, and the
|
||||
precompile e2e remain.
|
||||
|
||||
## Closure criteria — all met
|
||||
|
||||
- [x] Single canonical `ref/go/pkg/pulsar/` in `luxfi/pulsar` (no
|
||||
duplicate impl in `luxfi/pulsar-mptc`).
|
||||
- [x] CR-6 / CR-7 / CR-8 closed uniformly on small + large paths.
|
||||
- [x] N1 byte-equality verified by 19/19 interop subtests vs
|
||||
cloudflare/circl FIPS 204.
|
||||
- [x] EC theorems admit-free (13/13); Lean ↔ EC bridge 5/5.
|
||||
- [x] KATs deterministic; round-trip replay byte-identical.
|
||||
- [x] Cryptographer sign-off APPROVED WITH GATES (CRYPTOGRAPHER-SIGN-OFF.md).
|
||||
- [x] Submission framework (spec, proofs, Jasmin, KAT, cut tool,
|
||||
submission docs) merged into `luxfi/pulsar`; `luxfi/pulsar-mptc`
|
||||
archived / redirected.
|
||||
|
||||
---
|
||||
|
||||
**Document metadata**
|
||||
|
||||
- Name: `SINGLE-IMPL-PLAN.md`
|
||||
- Status: COMPLETED
|
||||
- Date completed: 2026-05-18
|
||||
- Final commit: this consolidation merges the submission framework
|
||||
into the canonical `luxfi/pulsar`; previous milestones recorded in
|
||||
the commit log (`git log` in `luxfi/pulsar`).
|
||||
@@ -21,7 +21,7 @@ This spec does NOT cover:
|
||||
- Verifier implementations (see `ref/go/pkg/pulsar/verify.go` for the
|
||||
Pulsar reference call into `cloudflare/circl`'s FIPS 204 verifier).
|
||||
- Magnetar (Tier 3 threshold SLH-DSA research profile) — see
|
||||
`docs/magnetar.md`.
|
||||
`https://github.com/luxfi/magnetar`.
|
||||
- Corona (R-LWE sibling) — see `~/work/lux/corona/`.
|
||||
|
||||
## §2 Terminology
|
||||
@@ -190,4 +190,4 @@ NIST-standardized PQ signature schemes.
|
||||
- Name: `SPEC.md`
|
||||
- Version: v0.1
|
||||
- Date: 2026-05-18
|
||||
- Companion docs: `spec/pulsar.tex` (PDF), `docs/ietf-draft-skeleton.md` (IETF), `SUITE.md` (suite index).
|
||||
- Companion docs: `spec/pulsar.tex` (PDF), `docs/ietf-draft-skeleton.md` (IETF), `https://github.com/luxfi/quasar/blob/main/PRIMITIVES.md` (suite index).
|
||||
|
||||
@@ -1,364 +0,0 @@
|
||||
# STATUS — Submission readiness per category
|
||||
|
||||
> Authoritative status of every Hanzo Crypto Suite category against
|
||||
> the NIST MPTC 2026-11-16 deadline (and adjacent submission tracks:
|
||||
> IETF / CFRG, FIPS 140-3 module, ACVP / CAVP, IETF KEM RFCs).
|
||||
>
|
||||
> Companion to `SUITE.md` (PQ-threshold tiers), `HANZO-CRYPTO-SUITE.md`
|
||||
> (full inventory), `ROADMAP.md` (multi-year plan), and
|
||||
> `SYNC-STATUS.md` (cross-repo audit).
|
||||
>
|
||||
> Date: 2026-05-18.
|
||||
|
||||
## TL;DR — what is submission-ready RIGHT NOW
|
||||
|
||||
| Track | Deadline | Ready? | Notes |
|
||||
|---|---|---|---|
|
||||
| **NIST MPTC v0.1 — Pulsar Tier 1** | 2026-11-16 | **YES** | All 14 artifacts shipped (spec, ref impl, KAT, EC 13/13, Lean 5/5, jasmin-ct 3/3, IETF draft, 10 submission docs) |
|
||||
| NIST MPTC v0.2 — Corona Tier 1b | not yet announced | **NO** | Implementation mature; submission package missing |
|
||||
| NIST MPTC v0.3 — Magnetar Tier 3 | not yet announced | **NO** | Research-only; no construction yet |
|
||||
| NIST MPTC v0.4 — LSS wrapper | not yet announced | **NO** | LP-019 spec mature; standalone package missing |
|
||||
| IETF / CFRG drafts (per construction) | rolling | **Pulsar only** | `draft-hanzo-pulsar-threshold-mldsa-00` drafted |
|
||||
| FIPS 140-3 module validation | n/a (lab) | **NO for any** | Requires NVLAP-accredited lab engagement |
|
||||
| ACVP / CAVP algorithm validation | n/a (lab) | **NO for any** | Requires NIST CAVP harness submission |
|
||||
| IETF KEM RFCs (X-Wing, ML-KEM) | upstream | partial | We consume upstream — Lux-profile draft TBD |
|
||||
|
||||
## §1 PQ threshold signatures (Hanzo PQ Threshold Suite)
|
||||
|
||||
### §1.1 Pulsar — **NIST MPTC v0.1 SUBMISSION READY** ✅
|
||||
|
||||
`~/work/lux/pulsar/` HEAD `c2e01e3` (2026-05-18).
|
||||
|
||||
| Artifact | Location | Status |
|
||||
|---|---|---|
|
||||
| Cover sheet | `SUBMISSION.md` | ✅ |
|
||||
| 1-page exec summary | `NIST-SUBMISSION.md` | ✅ |
|
||||
| Standalone spec | `SPEC.md` + `spec/pulsar.tex` | ✅ |
|
||||
| Suite index | `SUITE.md` | ✅ |
|
||||
| Suite-wide inventory | `HANZO-CRYPTO-SUITE.md` | ✅ |
|
||||
| Info architecture | `INFORMATION-ARCHITECTURE.md` | ✅ |
|
||||
| Patent grant | `PATENTS.md` | ✅ |
|
||||
| Patent claim drafts | `docs/patent-claims.md` (21 claims, 5 groups) | ✅ |
|
||||
| Trust accounting | `AXIOM-INVENTORY.md` + `PROOF-CLAIMS.md` + `TRUSTED-COMPUTING-BASE.md` | ✅ |
|
||||
| FIPS 204 traceability | `FIPS-TRACEABILITY.md` | ✅ |
|
||||
| Per-version proof log | `CHANGELOG.md` (v4-v13) | ✅ |
|
||||
| Multi-year roadmap | `ROADMAP.md` | ✅ |
|
||||
| Cross-repo sync | `SYNC-STATUS.md` | ✅ |
|
||||
| IETF Internet-Draft | `docs/ietf-draft-skeleton.md` (`draft-hanzo-pulsar-threshold-mldsa-00`) | ✅ |
|
||||
| Experimental evaluation | `docs/evaluation.md` (NIST IR 8214C §6) | ✅ |
|
||||
| Reference implementation | `ref/go/pkg/pulsar/` | ✅ 89.7% coverage |
|
||||
| KAT vectors | `vectors/` | ✅ deterministic |
|
||||
| EasyCrypt theories | `proofs/easycrypt/` | ✅ 13/13 compile, 0 admit |
|
||||
| Lean ↔ EC bridge | `proofs/lean-easycrypt-bridge.md` | ✅ 5/5 bridges, CI-guarded |
|
||||
| Jasmin constant-time | `jasmin/{lib,ml-dsa-65,threshold}/` | ✅ 3/3 CI green |
|
||||
| Class N1 interop | `test/interoperability/n1_class_test.go` | ✅ 19/19 subtests vs cloudflare/circl |
|
||||
| Build/test/bench/SBOM | `scripts/` | ✅ |
|
||||
| License | `LICENSE` (Apache-2.0) | ✅ |
|
||||
|
||||
**Open items before 2026-11-16 (Lux-controlled, achievable)**:
|
||||
|
||||
1. **Encoding section freeze** in `spec/pulsar.tex` — wire formats
|
||||
pinned at DD-008 (end of August 2026).
|
||||
2. **dudect timing-channel results** pinned in `ct/dudect/results/`.
|
||||
3. **Cross-validation against ≥2 of** {BoringSSL FIPS, AWS-LC,
|
||||
OpenSSL 3.0 PQ provider, pq-crystals Dilithium reference}.
|
||||
4. **Five algorithmic spec caveats** identified in red-team audit:
|
||||
- adaptive corruption (UNSUPPORTED → spec must say static-only)
|
||||
- cross-domain isolation Pulsar/Corona (WEAK → both share lattice hardness)
|
||||
- constant-time Verify (assertion vs measurement)
|
||||
- Z-Chain Groth16 / P3Q migration claim alignment
|
||||
- 2-round optimality clarification vs Raccoon
|
||||
5. **Patent filing(s)** for the 21 claim drafts — must precede or
|
||||
accompany submission (target Q3 2026).
|
||||
|
||||
### §1.2 Corona — **NOT SUBMISSION-READY** (v0.2 target)
|
||||
|
||||
`~/work/lux/corona/`.
|
||||
|
||||
| Artifact | Status |
|
||||
|---|---|
|
||||
| DESIGN.md | partial |
|
||||
| SUBMISSION.md | missing |
|
||||
| SPEC.md | missing |
|
||||
| IETF draft | missing |
|
||||
| Reference implementation | ✅ full Go |
|
||||
| EC proofs | partial (DKG only) |
|
||||
| Lean bridges | TBD |
|
||||
| Jasmin CT | TBD |
|
||||
| Test vectors | ✅ |
|
||||
| PATENTS.md | missing |
|
||||
| Trust accounting | missing |
|
||||
|
||||
**Left to ship submission-ready package**: 6-8 weeks of focused work.
|
||||
|
||||
### §1.3 Magnetar — **RESEARCH ONLY**
|
||||
|
||||
`docs/magnetar.md` placeholder. No construction. No implementation. No
|
||||
proofs. Threshold SLH-DSA is an open research direction (per-signature
|
||||
MPC over hash trees is materially harder than threshold ML-DSA).
|
||||
|
||||
**Left to ship**: 2-3 months for an initial DKG prototype + paper.
|
||||
Not on the 2026-11-16 critical path.
|
||||
|
||||
### §1.4 LSS (Linear Shamir wrapper) — **PARTIAL**
|
||||
|
||||
Spec lives in LP-019 + LP-141. Implementation in `~/work/lux/mpc/`.
|
||||
|
||||
| Artifact | Status |
|
||||
|---|---|
|
||||
| LP spec | ✅ LP-019 + LP-141 |
|
||||
| Standalone IETF draft | missing |
|
||||
| Reference vectors | partial |
|
||||
| EC + Lean proofs | missing |
|
||||
| Patent grant | covered by LP-019 |
|
||||
|
||||
**Left to ship**: 2 weeks for standalone IETF draft + KAT vectors;
|
||||
the wrapper does not require a standalone NIST MPTC submission
|
||||
(LSS-over-Pulsar is covered inside Pulsar's `§9 Reshare protocol`).
|
||||
|
||||
## §2 Classical threshold signatures
|
||||
|
||||
### §2.1 FROST (Ed25519 / secp256k1 Schnorr) — **NOT SUBMISSION-READY**
|
||||
|
||||
Implementation in `~/work/lux/mpc/`. IETF draft `draft-irtf-cfrg-frost`
|
||||
exists upstream — Lux profile gap.
|
||||
|
||||
| Artifact | Status |
|
||||
|---|---|
|
||||
| LP spec | ✅ LP-019 |
|
||||
| Upstream IETF draft | ✅ `draft-irtf-cfrg-frost` |
|
||||
| Lux-profile IETF draft | missing |
|
||||
| Reference implementation | ✅ (consumes upstream KATs) |
|
||||
| EC + Lean proofs | missing in Lux |
|
||||
| Constant-time analysis | partial |
|
||||
| Lux-specific KAT vectors | missing |
|
||||
| Patent grant / clearance | missing |
|
||||
|
||||
**Left to ship**: 8-12 weeks (Lux-profile draft + EC scaffolding +
|
||||
KATs + CT analysis).
|
||||
|
||||
### §2.2 CGGMP21 (secp256k1 ECDSA) — **NOT SUBMISSION-READY**
|
||||
|
||||
Implementation in `~/work/lux/mpc/`.
|
||||
|
||||
| Artifact | Status |
|
||||
|---|---|
|
||||
| LP spec | ✅ LP-019 |
|
||||
| IETF draft | missing |
|
||||
| Reference implementation | ✅ |
|
||||
| EC + Lean proofs | missing |
|
||||
| Constant-time analysis | missing |
|
||||
| KAT vectors | partial |
|
||||
| Patent clearance (CCS '21) | missing |
|
||||
|
||||
**Left to ship**: 8-12 weeks.
|
||||
|
||||
### §2.3 BLS (BLS12-381 aggregate) — **PARTIAL**
|
||||
|
||||
`~/work/lux/crypto/bls/`. Used everywhere (Quasar consensus
|
||||
classical-fast-path).
|
||||
|
||||
| Artifact | Status |
|
||||
|---|---|
|
||||
| LP spec | ✅ LP-020 |
|
||||
| IETF draft | upstream (`draft-irtf-cfrg-bls-signature`) |
|
||||
| Reference implementation | ✅ |
|
||||
| EC + Lean proofs | partial Lean (`lean/Crypto/BLS.lean`) |
|
||||
| Constant-time analysis | upstream (blst) |
|
||||
| KAT vectors | ✅ |
|
||||
| Patent grant | missing |
|
||||
|
||||
**Left to ship**: 4 weeks for Lux-profile package.
|
||||
|
||||
## §3 Hybrid PQ signature wrappers — X-Wing-Sig
|
||||
|
||||
**NOT SPECIFIED. NOT IMPLEMENTED.** Design direction documented in
|
||||
`docs/x-wing-sig.md`. No LP yet.
|
||||
|
||||
| Artifact | Status |
|
||||
|---|---|
|
||||
| Design direction | ✅ `docs/x-wing-sig.md` |
|
||||
| LP draft | missing |
|
||||
| Reference implementation | missing |
|
||||
| Composition proof | missing |
|
||||
| KAT vectors | missing |
|
||||
| IETF draft | missing |
|
||||
|
||||
**Left to ship to v0.1 LP**: ~2 months (per design doc estimate).
|
||||
|
||||
## §4 Key encapsulation
|
||||
|
||||
### §4.1 ML-KEM-768 — production-ready (consume FIPS 203)
|
||||
|
||||
We CONSUME the NIST-standardized FIPS 203 directly via
|
||||
`~/work/lux/crypto/mlkem/`. No Lux submission needed (NIST is
|
||||
already done).
|
||||
|
||||
### §4.2 X-Wing (X25519 + ML-KEM-768 hybrid) — production-ready (consume upstream)
|
||||
|
||||
We CONSUME the IRTF CFRG draft `draft-irtf-cfrg-xwing` via
|
||||
`~/work/lux/crypto/xwing/`. Specified in LP-115. No Lux NIST submission
|
||||
needed.
|
||||
|
||||
### §4.3 X-Wing+ (Lux-extended profile) — **NEEDS PROFILE LP**
|
||||
|
||||
Lux extension at `~/work/lux/crypto/xwing+/`. LP follow-up to LP-115
|
||||
not yet drafted. ~2 weeks for the profile LP.
|
||||
|
||||
## §5 ZK / accountability
|
||||
|
||||
### §5.1 Z-Chain PQ identity rollup — separate Lux artifact
|
||||
|
||||
LP-063 (Z-Chain) + LP-169 (Z-Chain PQ identity rollup). Mature LPs.
|
||||
Not a NIST submission target (Lux-original construction). Implementation
|
||||
in `~/work/lux/zchain/`.
|
||||
|
||||
| Artifact | Status |
|
||||
|---|---|
|
||||
| LP-063 spec | ✅ mature |
|
||||
| LP-169 spec | ✅ mature |
|
||||
| Reference implementation | ✅ |
|
||||
| Audit | gap |
|
||||
| Submission package | n/a (not standardization-tracked) |
|
||||
|
||||
### §5.2 P3Q precompile (EVM slot 0x012205) — **PARTIAL**
|
||||
|
||||
LP-078 covers EVM precompiles broadly; dedicated P3Q LP not yet
|
||||
drafted. Precompile reuses any FIPS 204 verifier (the signature
|
||||
verified by P3Q is byte-equal to single-party ML-DSA).
|
||||
|
||||
| Artifact | Status |
|
||||
|---|---|
|
||||
| Dedicated P3Q LP | missing |
|
||||
| Precompile implementation | partial (in `evm/precompiles/`) |
|
||||
| Gas-cost model | gap |
|
||||
| Test vectors | partial |
|
||||
|
||||
**Left to ship**: ~4 weeks for dedicated P3Q LP + gas model + KAT.
|
||||
|
||||
## §6 FHE / confidential compute
|
||||
|
||||
**LP-013** (FHE GPU), **LP-066** (TFHE), **LP-067** (Confidential ERC-20),
|
||||
**LP-068** (Private Teleport). All mature LPs. No NIST submission target
|
||||
(FHE is not currently a NIST standardization category; consume open-
|
||||
source TFHE / OpenFHE / Lattigo).
|
||||
|
||||
| Scheme | Status |
|
||||
|---|---|
|
||||
| TFHE (CGGI) | LP-spec mature; F-Chain host |
|
||||
| BFV | partial |
|
||||
| CKKS | partial |
|
||||
| Threshold FHE | LP-019 + LP-141; ceremonies on M-Chain |
|
||||
|
||||
**Left to ship**: paper-grade publication only; nothing for NIST.
|
||||
|
||||
## §7 EVM-native PQ migration (C-Chain + X-Chain)
|
||||
|
||||
**NOT YET DRAFTED.** No LP. Three migration paths sketched in
|
||||
`HANZO-CRYPTO-SUITE.md §7`:
|
||||
|
||||
1. Soft migration via X-Wing-Sig (depends on §3).
|
||||
2. Hard fork to PQ-native.
|
||||
3. Per-account opt-in.
|
||||
|
||||
**Left to ship**: LP-XXX draft (~4 weeks), then 4-8 weeks of
|
||||
implementation per chain, then coordinated rollout.
|
||||
|
||||
## External tracks (NOT under Lux's direct control)
|
||||
|
||||
| Track | Owner | Lux's input | Status |
|
||||
|---|---|---|---|
|
||||
| NIST MPTC ratification | NIST | Submit v0.1 package by 2026-11-16; respond to reviewer feedback | Inputs ready; multi-year process |
|
||||
| IETF / CFRG publication | IETF | Submit `draft-hanzo-pulsar-threshold-mldsa-00`; iterate at IETF meetings | Draft ready; submit on schedule |
|
||||
| ACVP / CAVP algorithm validation | NIST + accredited lab | Lab engagement + CAVP harness | Not yet engaged |
|
||||
| FIPS 140-3 module validation | NIST + accredited lab | Lab engagement; module-boundary documentation | Not yet engaged |
|
||||
| IETF KEM RFCs (X-Wing, ML-KEM) | IRTF CFRG | Consume upstream drafts; contribute review | Consuming |
|
||||
|
||||
## Aggregate gap analysis
|
||||
|
||||
| Category | LP | Spec | Ref Impl | Proofs | KAT | Package | IETF | Total readiness |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| **Pulsar (Tier 1)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | **100% NIST-MPTC-ready** |
|
||||
| Corona (Tier 1b) | ✅ | partial | ✅ | partial | ✅ | ❌ | ❌ | 50% |
|
||||
| Magnetar (Tier 3) | ❌ | placeholder | ❌ | ❌ | ❌ | ❌ | ❌ | 5% |
|
||||
| LSS (Tier 4) | ✅ | LP-only | ✅ | ❌ | partial | ❌ | ❌ | 35% |
|
||||
| FROST | ✅ | LP-only | ✅ | ❌ | upstream | ❌ | upstream | 45% |
|
||||
| CGGMP21 | ✅ | LP-only | ✅ | ❌ | partial | ❌ | ❌ | 40% |
|
||||
| BLS | ✅ | LP-only | ✅ | partial Lean | ✅ | ❌ | upstream | 60% |
|
||||
| X-Wing-Sig | ❌ | design direction | ❌ | ❌ | ❌ | ❌ | ❌ | 10% |
|
||||
| ML-KEM (consume) | ✅ | upstream FIPS 203 | ✅ | n/a | upstream | n/a | upstream | 100% (consume) |
|
||||
| X-Wing (consume) | ✅ | upstream draft | ✅ | n/a | upstream | n/a | upstream | 100% (consume) |
|
||||
| X-Wing+ Lux profile | ❌ | gap | ✅ | ❌ | ❌ | ❌ | ❌ | 25% |
|
||||
| Z-Chain PQ | ✅ | ✅ | ✅ | partial | ❌ | ❌ | n/a | 55% |
|
||||
| P3Q precompile | partial | gap | partial | n/a | partial | n/a | n/a | 30% |
|
||||
| TFHE / BFV / CKKS | ✅ | LP-spec mature | partial | ❌ | upstream | n/a (no NIST track) | n/a | 50% |
|
||||
| EVM-native PQ migration | ❌ | gap | n/a | n/a | n/a | n/a | n/a | 5% |
|
||||
|
||||
## What's left, by priority
|
||||
|
||||
### Critical path to 2026-11-16 (Pulsar v0.1 submission)
|
||||
|
||||
1. Encoding section freeze in `spec/pulsar.tex` — **Lux, 2 weeks**.
|
||||
2. dudect CT results pinned — **Lux, 1 week**.
|
||||
3. Cross-validation against ≥2 FIPS 204 verifiers — **Lux, 1 week**.
|
||||
4. Patent filing for 21 claim drafts — **Lux + attorneys, 8 weeks**.
|
||||
5. Final NIST submission cut — **Lux, 1 day at tag**.
|
||||
|
||||
### v0.2 (Q4 2026 — Q1 2027)
|
||||
|
||||
6. Corona equivalent packaging — **Lux, 6-8 weeks**.
|
||||
7. LSS standalone IETF draft + KAT — **Lux, 2 weeks**.
|
||||
8. X-Wing+ Lux-profile LP — **Lux, 2 weeks**.
|
||||
9. P3Q dedicated LP + gas model + KAT — **Lux, 4 weeks**.
|
||||
|
||||
### v0.3 (Q1 — Q2 2027)
|
||||
|
||||
10. FROST Lux-profile draft + EC scaffolding + KAT + CT — **Lux, 8-12 weeks**.
|
||||
11. CGGMP21 submission package — **Lux, 8-12 weeks**.
|
||||
12. BLS Lux-profile package — **Lux, 4 weeks**.
|
||||
13. X-Wing-Sig LP + impl + composition proof + KAT — **Lux, 2 months**.
|
||||
14. EVM-native PQ migration LP draft — **Lux, 4 weeks**.
|
||||
|
||||
### v0.4 (Q3 2027 — onwards)
|
||||
|
||||
15. Magnetar research paper + initial DKG prototype — **Lux, 2-3 months**.
|
||||
16. Z-Chain PQ identity rollup audit — **Lux + auditor, 4-8 weeks**.
|
||||
17. FHE submission-equivalent docs (paper-track only) — **Lux, 4 weeks each**.
|
||||
|
||||
### External (no fixed timeline — track only)
|
||||
|
||||
18. NIST MPTC reviewer feedback iteration — **NIST, 6-18 months**.
|
||||
19. IETF / CFRG publication for `draft-hanzo-pulsar-threshold-mldsa` — **IETF, 12-36 months**.
|
||||
20. ACVP / CAVP algorithm validation engagement — **lab, 3-6 months**.
|
||||
21. FIPS 140-3 module validation — **lab, 6-12 months**.
|
||||
|
||||
## Honest claims
|
||||
|
||||
- **DO say**: "Pulsar (Tier 1) is NIST MPTC v0.1 submission-ready as
|
||||
of 2026-05-18; the package will be cut from a tag on `main` on
|
||||
2026-11-16."
|
||||
- **DO say**: "Every other Hanzo Crypto Suite member has an LP and an
|
||||
implementation; the matching submission-grade documentation +
|
||||
proof package is on the v0.2 — v0.4 roadmap."
|
||||
- **DO say**: "External tracks (NIST ratification, IETF publication,
|
||||
FIPS 140-3 module validation, ACVP / CAVP) are outside Lux's
|
||||
direct control; submission inputs are ready, decision timeline is
|
||||
the standards body's."
|
||||
- **DO NOT say**: "The Hanzo Crypto Suite is 100% NIST-ratified" — only
|
||||
Pulsar v0.1 is submission-ready, and submission is not ratification.
|
||||
- **DO NOT say**: "Magnetar is production-ready threshold SLH-DSA" —
|
||||
research-only.
|
||||
- **DO NOT say**: "FIPS 140-3 validated" for any module — no engagement
|
||||
is underway.
|
||||
|
||||
---
|
||||
|
||||
**Document metadata**
|
||||
|
||||
- Name: `STATUS-SUBMISSION-READINESS.md`
|
||||
- Version: v0.1
|
||||
- Date: 2026-05-18
|
||||
- Companion to: `SUITE.md`, `HANZO-CRYPTO-SUITE.md`, `ROADMAP.md`,
|
||||
`SYNC-STATUS.md`
|
||||
- Re-run cadence: monthly through 2026-11-16; quarterly thereafter
|
||||
- Owner: `[email protected]`
|
||||
@@ -1,153 +0,0 @@
|
||||
# Hanzo PQ Threshold Suite — index
|
||||
|
||||
> Master index for the **Hanzo PQ Threshold Suite**: a coordinated
|
||||
> set of post-quantum threshold-signing protocols anchored to NIST
|
||||
> standards (FIPS 204 ML-DSA, FIPS 205 SLH-DSA) and Lux's R-LWE
|
||||
> sibling (Corona).
|
||||
>
|
||||
> **Consensus consumer.** The primitives below feed the Lux Quasar
|
||||
> PQ consensus suite. Cert-profile composition (`Pulsar` / `Aurora` /
|
||||
> `Polaris`), wire-format spec, and cross-primitive composition
|
||||
> proofs live at [`luxfi/quasar`](https://github.com/luxfi/quasar)
|
||||
> (umbrella) and [`luxfi/consensus/protocol/quasar/`](https://github.com/luxfi/consensus/tree/main/protocol/quasar)
|
||||
> (consensus-engine binding).
|
||||
|
||||
## Tiers
|
||||
|
||||
| Tier | Name | Primitive | Status | Home |
|
||||
|---|---|---|---|---|
|
||||
| **Tier 1** | **Pulsar** | FIPS 204 ML-DSA (M-LWE) | **v0.1 — NIST MPTC submission-ready** | `~/work/lux/pulsar/` (this repo) |
|
||||
| Tier 1b | **Corona** | R-LWE (sibling) | Production reference + DKG impl | `~/work/lux/corona/` |
|
||||
| Tier 2 | SLH-DSA single-party compatibility | FIPS 205 SLH-DSA | Standard-verifier-compatible | Out-of-scope this suite (use FIPS 205 directly) |
|
||||
| **Tier 3** | **Magnetar** | FIPS 205 SLH-DSA via MPC | **Research-track — not for v0.1 production** | `docs/magnetar.md` (this repo) |
|
||||
| Tier 4 | **LSS** | Linear Shamir's Secret Sharing | Wrapper enabling dynamic resharing across Tiers 1 + 1b | `~/work/lux/lps/LP-019-threshold-mpc.md` |
|
||||
|
||||
## Naming
|
||||
|
||||
| Identifier | Means |
|
||||
|---|---|
|
||||
| `HANZO-PQ-THRESHOLD-SUITE-v0.1` | The suite version covered by this index |
|
||||
| `PULSAR-THRESHOLD-ML-DSA-{44,65,87}` | Pulsar parameter sets (NIST cat 2/3/5) |
|
||||
| `MAGNETAR-THRESHOLD-SLH-DSA-SHAKE-{192s,256s}` | Magnetar parameter sets (FIPS 205 SHAKE profile) |
|
||||
| `CORONA-THRESHOLD-RING-LWE-{44,65,87}` | Corona parameter sets (Lux R-LWE) |
|
||||
|
||||
## Submission packaging per tier
|
||||
|
||||
Each tier targets the **same submission-grade documentation package**
|
||||
(SUBMISSION.md cover sheet, SPEC.md / IETF draft, EC + Lean proof
|
||||
artifacts, PATENTS.md, AXIOM-INVENTORY.md, PROOF-CLAIMS.md,
|
||||
FIPS-TRACEABILITY.md, TRUSTED-COMPUTING-BASE.md, test vectors,
|
||||
docs/evaluation.md). Status by tier:
|
||||
|
||||
| Doc | Pulsar | Corona | Magnetar | LSS |
|
||||
|---|---|---|---|---|
|
||||
| Cover sheet (`SUBMISSION.md`) | ✅ | partial (`~/work/lux/corona/DESIGN.md`) | placeholder | LP-019 (LPS) |
|
||||
| Standalone spec (`SPEC.md`) | ✅ | TBD | TBD | LP-019 (LPS) |
|
||||
| IETF draft | ✅ `docs/ietf-draft-skeleton.md` | TBD | TBD | TBD |
|
||||
| Reference impl | ✅ `ref/go/` | ✅ `~/work/lux/corona/` (full Go) | ❌ research-only | ✅ `~/work/lux/lps/` LP-019 + LP-141 |
|
||||
| EC proofs | ✅ 13/13 compile | partial (DKG only) | ❌ | ❌ |
|
||||
| Lean bridges | ✅ 5/5 | TBD | TBD | TBD |
|
||||
| Jasmin CT | ✅ 3/3 | TBD | ❌ | ❌ |
|
||||
| Test vectors | ✅ `vectors/` | ✅ `~/work/lux/corona/` | ❌ | partial |
|
||||
| PATENTS | ✅ | TBD | TBD | covered by `~/work/lux/lps/PATENTS-OVERVIEW.md` if it exists |
|
||||
| Trust accounting | ✅ AXIOM-INVENTORY + PROOF-CLAIMS + TCB | TBD | TBD | TBD |
|
||||
|
||||
**Equivalent-packaging roadmap** (post v0.1 submission):
|
||||
- v0.2 (Q1 2027): Corona full submission package matching Pulsar's
|
||||
structure; Corona is the R-LWE sibling so the proof technique
|
||||
largely transfers.
|
||||
- v0.3 (Q2 2027): Magnetar research draft + initial proof-of-concept
|
||||
DKG (SLH-DSA is hash-based — threshold construction is materially
|
||||
different; expect research-paper-grade artifact, not
|
||||
production-grade).
|
||||
- v0.4 (Q3 2027): LSS full IETF draft (currently LP-019 in `~/work/lux/lps/`).
|
||||
|
||||
## Information architecture
|
||||
|
||||
```
|
||||
~/work/lux/
|
||||
├── ./ ← Tier 1, this repo (NIST MPTC submission target)
|
||||
│ ├── SUBMISSION.md ← NIST cover sheet
|
||||
│ ├── SUITE.md ← THIS file (master index)
|
||||
│ ├── SPEC.md ← standalone protocol spec
|
||||
│ ├── PATENTS.md ← royalty-free grant
|
||||
│ ├── AXIOM-INVENTORY.md
|
||||
│ ├── PROOF-CLAIMS.md
|
||||
│ ├── FIPS-TRACEABILITY.md
|
||||
│ ├── TRUSTED-COMPUTING-BASE.md
|
||||
│ ├── NIST-SUBMISSION.md ← 1-page executive summary
|
||||
│ ├── CHANGELOG.md ← per-version proof artifact log
|
||||
│ ├── docs/
|
||||
│ │ ├── ietf-draft-skeleton.md ← Tier 1 IETF draft
|
||||
│ │ ├── magnetar.md ← Tier 3 research placeholder
|
||||
│ │ ├── patent-claims.md ← attorney prep (21 claims)
|
||||
│ │ └── evaluation.md ← NIST IR 8214C §6
|
||||
│ ├── spec/pulsar.tex/.pdf
|
||||
│ ├── ref/go/
|
||||
│ ├── proofs/easycrypt/
|
||||
│ ├── jasmin/threshold/
|
||||
│ └── vectors/
|
||||
│
|
||||
├── corona/ ← Tier 1b R-LWE sibling
|
||||
│ ├── DESIGN.md, CONSTANT-TIME-REVIEW.md
|
||||
│ ├── cli/, cmd/, dkg/, dkg2/, ...
|
||||
│ └── (v0.2 target: parallel SUBMISSION/SPEC/PATENTS structure)
|
||||
│
|
||||
├── kms/ ← key-management service (consumer)
|
||||
├── mpc/ ← general MPC infrastructure (consumer)
|
||||
│
|
||||
└── lps/ ← Lux Proposal System (LP-NNN canonical specs)
|
||||
├── CRYPTO-CANONICAL.md ← master crypto wiring doc
|
||||
├── LP-012-pq-crypto-gpu.md ← PQ crypto GPU acceleration
|
||||
├── LP-019-threshold-mpc.md ← Threshold MPC (FROST, CGGMP21, LSS)
|
||||
├── LP-020-quasar-consensus.md ← Quasar consensus PQ-signature usage
|
||||
├── LP-134-chain-topology.md ← M-Chain (MPC) + F-Chain (FHE) split
|
||||
└── LP-141-threshold-vm.md ← Threshold VM substrate
|
||||
```
|
||||
|
||||
## Cross-references between tiers
|
||||
|
||||
- **Pulsar ↔ Corona**: parallel constructions (M-LWE vs R-LWE);
|
||||
each produces byte-identical signatures to its respective NIST
|
||||
standard. Quasar consensus (LP-020) uses BOTH as parallel
|
||||
options selectable per-chain.
|
||||
- **Pulsar ↔ Magnetar**: orthogonal primitives (lattice vs
|
||||
hash-based); Magnetar deployment is for paranoid scenarios where
|
||||
ML-DSA is broken but SLH-DSA remains secure.
|
||||
- **Pulsar ↔ LSS**: LSS provides the dynamic-resharing wrapper.
|
||||
Pulsar's own §9 reshare protocol is conceptually equivalent to
|
||||
LSS's zero-secret refresh.
|
||||
- **Corona ↔ LSS**: LSS works over any linear secret-sharing
|
||||
scheme; Corona shares are linear in R_q^l, so LSS applies.
|
||||
|
||||
## Suite-level invariants
|
||||
|
||||
All Tier 1 / Tier 1b constructions in the Hanzo PQ Threshold Suite
|
||||
MUST satisfy:
|
||||
|
||||
1. **Standard-verifier compatibility**: signatures verify under
|
||||
the underlying NIST standard's unmodified verifier.
|
||||
2. **Public-DKG**: no trusted dealer; all share generation
|
||||
publicly verifiable.
|
||||
3. **Identifiable abort**: synchronous-network blame with
|
||||
third-party-verifiable evidence.
|
||||
4. **Public-key preservation across resharing**: long-lived public
|
||||
identity, rotating custodians.
|
||||
5. **Submission-grade documentation**: every primitive PROOF or
|
||||
IMPLEMENTATION axiom enumerated in an AXIOM-INVENTORY-equivalent
|
||||
document with explicit closure plan.
|
||||
|
||||
## v0.1 submission scope
|
||||
|
||||
This v0.1 submission ships **Pulsar Tier 1 only**. Corona, Magnetar,
|
||||
and LSS exist in the suite but are not packaged for the 2026 NIST
|
||||
MPTC submission. Their packaging is on the v0.2-v0.4 roadmap above.
|
||||
|
||||
---
|
||||
|
||||
**Document metadata**
|
||||
|
||||
- Name: `SUITE.md`
|
||||
- Version: v0.1
|
||||
- Date: 2026-05-18
|
||||
- Maintainer: `[email protected]`
|
||||
@@ -1,90 +0,0 @@
|
||||
# SYNC-STATUS — single canonical pulsar
|
||||
|
||||
> Cross-repo sync audit. As of the consolidation tagged below, the
|
||||
> previous two-repo arrangement (`luxfi/pulsar` production library
|
||||
> + `luxfi/pulsar-mptc` NIST submission framework) is collapsed
|
||||
> into a single canonical home at `github.com/luxfi/pulsar`.
|
||||
>
|
||||
> Audit date: 2026-05-18.
|
||||
|
||||
## TL;DR
|
||||
|
||||
| Question | Answer |
|
||||
|---|---|
|
||||
| Where does the canonical Pulsar implementation live? | `github.com/luxfi/pulsar` — single repo, single module path. |
|
||||
| Where does the NIST submission framework live? | Same repo. Cover sheet (`SUBMISSION.md`), spec (`spec/`), proofs (`proofs/`), Jasmin (`jasmin/`), KATs (`vectors/`), cut tool (`scripts/cut-submission.sh`) are all in-tree. |
|
||||
| Does `~/work/lux/proofs/` have an index? | Yes — `~/work/lux/proofs/INDEX.md` regenerated 2026-05-18. |
|
||||
| Does `~/work/lux/papers/` have an index? | Yes — `~/work/lux/papers/INDEX.md` regenerated 2026-05-18. |
|
||||
| Do the LPs match the v0.1 submission package? | LP-180 may still reference legacy `pulsar-m` / `pulsarm` naming and should be refreshed; `LP-073` is current; `CRYPTO-CANONICAL.md` lists `luxfi/pulsar` as the canonical NIST-submission home. |
|
||||
|
||||
## Repository layout
|
||||
|
||||
```
|
||||
~/work/lux/
|
||||
├── pulsar/ ← Single canonical home for Pulsar
|
||||
│ ├── SUBMISSION.md NIST-SUBMISSION.md Cover sheets
|
||||
│ ├── SPEC.md SUITE.md SYNC-STATUS.md Companion docs
|
||||
│ ├── PATENTS.md AXIOM-INVENTORY.md PROOF-CLAIMS.md
|
||||
│ ├── FIPS-TRACEABILITY.md TRUSTED-COMPUTING-BASE.md
|
||||
│ ├── HANZO-CRYPTO-SUITE.md INFORMATION-ARCHITECTURE.md
|
||||
│ ├── ROADMAP.md CHANGELOG.md README.md
|
||||
│ ├── docs/ ietf-draft-skeleton, magnetar, evaluation,
|
||||
│ │ patent-claims, x-wing-sig, design-decisions,
|
||||
│ │ family-architecture, threat-model,
|
||||
│ │ nist-mptc-category, patent-notes-draft
|
||||
│ ├── spec/ pulsar.tex + 9 supplements (.tex / .bib)
|
||||
│ ├── ref/go/ Canonical Go reference implementation
|
||||
│ ├── proofs/easycrypt/ EC theories (13/13 admit-free + 4 cited axioms)
|
||||
│ ├── proofs/lean-easycrypt-bridge.md
|
||||
│ ├── jasmin/lib/ jasmin/ml-dsa-65/ jasmin/threshold/
|
||||
│ ├── ct/dudect/ Constant-time analysis sources
|
||||
│ ├── bench/ Reproducible benchmark harness
|
||||
│ ├── scripts/ build + test + gen-vectors + bench + cut +
|
||||
│ │ check-high-assurance + check-lean-bridge +
|
||||
│ │ nightly + sbom + extract-jasmin-ec
|
||||
│ ├── test/interoperability/ Class N1 cross-validation vs cloudflare/circl
|
||||
│ ├── vectors/ KAT vectors
|
||||
│ └── CRYPTOGRAPHER-SIGN-OFF.md
|
||||
│
|
||||
├── proofs/ ← All non-Pulsar mechanized proofs
|
||||
│ ├── INDEX.md
|
||||
│ ├── lean/ .lean files (Crypto/ Consensus/ ...)
|
||||
│ ├── tla/ TLA+ specs + MC harnesses
|
||||
│ ├── tamarin/ .spthy protocols
|
||||
│ ├── halmos/ Solidity symbolic-exec suites
|
||||
│ └── property/ Go property tests
|
||||
│
|
||||
└── papers/ ← LaTeX papers (publication-grade)
|
||||
├── INDEX.md
|
||||
└── ...
|
||||
```
|
||||
|
||||
## What this consolidation closes
|
||||
|
||||
Prior to 2026-05-18 the artifacts split between two repos:
|
||||
|
||||
| Artifact | Old location | New location |
|
||||
|---|---|---|
|
||||
| Canonical Go implementation | `luxfi/pulsar/ref/go/pkg/pulsar/` | unchanged |
|
||||
| Cover sheet (`SUBMISSION.md`) | `luxfi/pulsar-mptc/SUBMISSION.md` | `luxfi/pulsar/SUBMISSION.md` |
|
||||
| LaTeX spec (formal) | both | `luxfi/pulsar/spec/` |
|
||||
| EasyCrypt + Lean bridge | `luxfi/pulsar-mptc/proofs/` | `luxfi/pulsar/proofs/` |
|
||||
| Jasmin sources | `luxfi/pulsar-mptc/jasmin/` | `luxfi/pulsar/jasmin/` |
|
||||
| dudect harness | both (stub vs full) | `luxfi/pulsar/ct/dudect/` |
|
||||
| Cut tool | `luxfi/pulsar-mptc/scripts/cut-submission.sh` | `luxfi/pulsar/scripts/cut-submission.sh` |
|
||||
| Submission docs (16 files) | `luxfi/pulsar-mptc/*.md` | `luxfi/pulsar/*.md` |
|
||||
| Class N1 interop test | `luxfi/pulsar-mptc/test/interoperability/` | `luxfi/pulsar/test/interoperability/` |
|
||||
|
||||
The `luxfi/pulsar-mptc` repository is archived/redirected to
|
||||
`luxfi/pulsar` post-consolidation.
|
||||
|
||||
## Cross-repo coherence checks (CI-guarded)
|
||||
|
||||
These scripts must remain green for every push to `main`:
|
||||
|
||||
| Script | What it checks |
|
||||
|---|---|
|
||||
| `scripts/check-high-assurance.sh` | EasyCrypt admit count = 0 on all theorems; refinement scaffolding present; cited-axiom list matches `AXIOM-INVENTORY.md`. |
|
||||
| `scripts/check-lean-bridge.sh` | The 5 named Lean ↔ EC algebraic bridges are present in `~/work/lux/proofs/lean/` and referenced from `proofs/lean-easycrypt-bridge.md`. |
|
||||
| `scripts/gen_vectors.sh` (with `--replay-only`) | Regenerated KATs are byte-identical to committed `vectors/*.json`. |
|
||||
| `test/interoperability/n1_class_test.go` | Every committed KAT verifies under both the in-tree pulsar verifier and cloudflare/circl FIPS 204 verifier (19/19 subtests). |
|
||||
@@ -1,124 +0,0 @@
|
||||
# Magnetar — Public-DKG MPC Threshold SLH-DSA (research profile)
|
||||
|
||||
> **Tier 3 of the Hanzo PQ Threshold Suite.** Research-track
|
||||
> construction for threshold FIPS 205 SLH-DSA via MPC. **NOT
|
||||
> production-ready. NOT part of the v0.1 NIST MPTC submission.**
|
||||
|
||||
## What this document is
|
||||
|
||||
A placeholder + design-direction sketch for a future research-grade
|
||||
public-DKG threshold construction over FIPS 205 SLH-DSA. The Hanzo
|
||||
PQ Threshold Suite includes Magnetar to signal architectural intent
|
||||
without overclaiming maturity.
|
||||
|
||||
## What this document is NOT
|
||||
|
||||
- Not a specification. The protocol is unfixed.
|
||||
- Not a security claim. The protocol has not been analyzed.
|
||||
- Not an implementation. No `ref/go/`-equivalent exists for Magnetar.
|
||||
- Not a NIST submission. Submitting threshold SLH-DSA as if it
|
||||
were standardized would be inaccurate.
|
||||
|
||||
## Why Magnetar exists conceptually
|
||||
|
||||
SLH-DSA is hash-based and stateless (FIPS 205). Its security rests
|
||||
on different assumptions from ML-DSA: collision/preimage resistance
|
||||
of the underlying hash (SHA-2 or SHAKE), with no lattice
|
||||
assumption.
|
||||
|
||||
A threshold profile of SLH-DSA gives a defense-in-depth signature:
|
||||
even if ML-DSA's lattice assumption is broken in the future,
|
||||
Magnetar's hash-based threshold provides a fallback.
|
||||
|
||||
## Why this is hard
|
||||
|
||||
Unlike threshold schemes for discrete-log-style or lattice-based
|
||||
signatures, SLH-DSA does NOT decompose into a linear-aggregation
|
||||
identity. The signing process is a tree of hash computations
|
||||
(Merkle tree of hash-based one-time signatures), where the
|
||||
"secret" is a SHAKE seed and "signing" involves traversing the
|
||||
tree based on the message hash.
|
||||
|
||||
Threshold SLH-DSA constructions in the literature typically require:
|
||||
- MPC over hash computations (slow; SHAKE computed inside MPC).
|
||||
- Distributed seed generation with VSS.
|
||||
- Per-signature MPC ceremony.
|
||||
|
||||
None of these match the elegance of FROST-style aggregation that
|
||||
Pulsar uses for ML-DSA. Magnetar is a research-grade direction,
|
||||
not an obvious specification target.
|
||||
|
||||
## Suggested research direction
|
||||
|
||||
1. **Distributed seed generation**: Lux-style Pedersen-VSS over
|
||||
the SHAKE seed space (32 or 64 bytes for FIPS 205 SHAKE
|
||||
profiles).
|
||||
|
||||
2. **Per-signature MPC**: a multi-party Generic-Group-Model
|
||||
ceremony to compute the SLH-DSA signature components without
|
||||
any single party reconstructing the seed.
|
||||
|
||||
3. **Hash precomputation amortization**: precompute layers of the
|
||||
FORS / W-OTS+ Merkle tree in batched MPC sessions to amortize
|
||||
the per-signature ceremony cost.
|
||||
|
||||
4. **Identifiable abort**: same TLV-encoded evidence format as
|
||||
Pulsar §10, with per-MPC-round per-party state.
|
||||
|
||||
5. **Public-key preservation across resharing**: standard
|
||||
zero-secret-refresh applied to the SHAKE seed shares.
|
||||
|
||||
## Parameter-set candidates
|
||||
|
||||
If the research direction matures into a specification, the
|
||||
following parameter sets are candidates (matching FIPS 205 §4):
|
||||
|
||||
| Identifier | NIST Category | sig bytes | Notes |
|
||||
|---|---|---|---|
|
||||
| `MAGNETAR-THRESHOLD-SLH-DSA-SHAKE-128s` | 1 | 7856 | small/slow |
|
||||
| `MAGNETAR-THRESHOLD-SLH-DSA-SHAKE-192s` | 3 | 16224 | RECOMMENDED if Magnetar matures |
|
||||
| `MAGNETAR-THRESHOLD-SLH-DSA-SHAKE-256s` | 5 | 29792 | high security |
|
||||
|
||||
Note that SLH-DSA signatures are LARGE compared to ML-DSA
|
||||
(7-30 KB vs 2-5 KB). The per-signature MPC cost will dominate
|
||||
deployment economics.
|
||||
|
||||
## Why we do not ship Magnetar in v0.1
|
||||
|
||||
1. **No mature construction**: published threshold-SLH-DSA work is
|
||||
limited and not well-reviewed.
|
||||
2. **MPC complexity**: per-signature MPC dwarfs the per-signature
|
||||
cost of Pulsar.
|
||||
3. **Signature size**: 7-30 KB per signature is operationally
|
||||
expensive on-chain.
|
||||
4. **Standardization status**: NIST has not signalled threshold
|
||||
SLH-DSA as a near-term MPTC target.
|
||||
|
||||
Magnetar will be re-evaluated for v0.2-v0.4 submission consideration
|
||||
based on community / NIST direction.
|
||||
|
||||
## Honest framing for users
|
||||
|
||||
> Magnetar is the **research-track** member of the Hanzo PQ
|
||||
> Threshold Suite. It is intended for paranoid scenarios where
|
||||
> ML-DSA's lattice security assumption is broken in the future and
|
||||
> a hash-based fallback is needed. It is NOT recommended for
|
||||
> production use today. Use **Pulsar (Tier 1)** for production
|
||||
> threshold post-quantum signing.
|
||||
|
||||
## Contact
|
||||
|
||||
For research collaboration on Magnetar:
|
||||
- Email: `[email protected]`
|
||||
- Public discussion:
|
||||
<https://github.com/luxfi/pulsar/discussions> (label: `magnetar`)
|
||||
|
||||
---
|
||||
|
||||
**Document metadata**
|
||||
|
||||
- Name: `docs/magnetar.md`
|
||||
- Version: v0.1 (placeholder)
|
||||
- Date: 2026-05-18
|
||||
- Status: **Research direction, not specification.** No production
|
||||
use. No NIST submission claim.
|
||||
Reference in New Issue
Block a user