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:
2026-05-18 21:59:04 -07:00
parent 712abc1df3
commit 2408584468
11 changed files with 7 additions and 2917 deletions
+3 -3
View File
@@ -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
+2 -2
View File
@@ -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
-308
View File
@@ -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]`
-194
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
-75
View File
@@ -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`).
+2 -2
View File
@@ -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).
-364
View File
@@ -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]`
-153
View File
@@ -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]`
-90
View File
@@ -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). |
-124
View File
@@ -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.