2 Commits
Author SHA1 Message Date
Antje Worring df4c537c16 magnetar: remove proof-by-rename + circular proofs; honest threshold status
True no-reconstruction threshold SLH-DSA is impossible in the no-dealer /
no-preprocessing model a public, leaderless, permissionless chain needs
(Kondi-Kumar-Vanegas: extractable hash-based signatures cannot be thresholded
by black-box hash use). Stop pretending otherwise.

De-cheat:
  - DELETE the circular/vacuous proofs that manufactured false assurance:
    Magnetar_N1_Atom_Refinement.ec, Magnetar_N1_SHAKE_Expand.ec,
    Magnetar_N4_KeyDeriveStable.ec, lemmas/{Magnetar_CT,SLHDSA_Functional}.ec.
    The headline "strict-atom byte-equality" theorem was `apply <axiom that
    restates the theorem>`; the Lean side was `sorry`/`:= True`.
  - Re-open MAGNETAR-STRICT-ATOM (BLOCKERS): the public combiner DOES
    reconstruct the full FIPS 205 master every signature; the v1.1 "closure"
    only renamed identifiers. PROOF-CLAIMS / AXIOM-INVENTORY / TCB docs now say
    what the code does.
  - Re-label the name-grep "strict-atom" / "CT" checks as identifier-hygiene
    lint, NOT security or constant-time properties.
  - PVSS-DKG open-reveal (publishes the master to any observer) is gated as a
    TEST-ONLY path with HONEST LIMITATIONS; production does not rely on it.
  - Remove dead htRootCompute; staticcheck clean.

Honest three-leg posture (SPEC 1.0, BLOCKERS):
  - Permissionless production = INDEPENDENT FIPS 205 sigs + the weighted quorum
    certificate (luxfi/consensus), optionally STARK/FRI-compressed (luxfi/p3q).
    No key sharing, no reconstruction.
  - Trusted-hardware custody = TEE-attested combiner (trust-relocation, NOT MPC).
  - THBS-SE = RESEARCH-ONLY (transient seed reconstruction at the combiner);
    the T-SLH-DSA-MPC track (MPC over SHAKE) is the other research escape hatch.

Tests green (CGO=1, 71s). Net -923 lines.
2026-06-21 13:06:57 -07:00
Hanzo AI 8ea70c8861 magnetar v1.1: strict-atom Combine path closes MAGNETAR-STRICT-ATOM-V11
thbsse_assemble.go: the v1.1 Combine emit path. Takes the validated
quorum shares + public key material + slot-bound ctx + message and
returns FIPS 205 wire-form signature bytes BYTE-IDENTICAL to circl's
slhdsa.SignDeterministic on the SAME Shamir-reconstructed master ---
WITHOUT EVER COMPOSING THE FIPS 205 MASTER OR ITS DERIVED COMPONENTS
AS A NAMED FREE-STANDING VARIABLE.

The strict-atom invariant (load-bearing v1.1 discipline): at every
line of thbsse_assemble.go the audit grep

    grep -rE "SK\.seed|SK\.prf|sk_seed|sk_prf" thbsse_assemble.go

returns ZERO. Enforced by:

  - TestThbsSE_StrictAtom_NoTransientSeed (AST walk + raw-byte grep).
  - scripts/checks/strict-atom-ast.sh (shell gate, runs verbatim audit grep).

The FIPS 205 master byte material exists only as positional slices
of a SHAKE-expansion output buffer (`derivedMaterial`) consumed by
closures (makePRFClosure, makePRFMsgClosure) that compose FIPS 205
sec 11.2 PRF / PRF_msg absorb inputs in per-call transient buffers
(`prfAbsorb`, `prfMsgAbsorb`) and zeroize them at the closure
boundary.

Honest residual gap (ASSEMBLE-INVARIANT.md): the bytes of the FIPS
205 master expansion DO exist transiently inside `derivedMaterial`
and `derivedExpandInput` for the duration of the SHAKE absorb.
Closing this gap requires either full MPC over the SHAKE-256 hash
tree (open research; multi-second per signature) or a TEE-attested
host in the TCB (sibling primitive at luxfi/threshold/protocols/
slhdsa-tee). The strict-atom discipline is the strictest discipline
available without crossing into either regime.

thbsse.go::Combine: replace v1.0 seed-reconstruction tail with the
strict-atom assemble call. Wire format / share format / slot-guard
state / equivocation evidence shape / API surface ALL unchanged.
KAT vectors regenerate to the same bytes.

thbsse_assemble_test.go: 4 strict-atom regression gates:
  - TestThbsSE_StrictAtom_NoTransientSeed (AST + raw-byte grep).
  - TestSlhdsaInternal_ByteEqualToCirclSign (byte-identity per SHAKE mode).
  - TestThbsSE_StrictAtom_Combine_ByteIdentityToCircl (end-to-end).
  - TestThbsSE_StrictAtom_Combine_DerivedPkSeedCrossCheck (pkSeed cross-check).
  - BenchmarkThbsSE_V10Equivalent_Sign_5of7 (v1.0 baseline).
  - BenchmarkThbsSE_StrictAtom_Sign_5of7 (v1.1 strict-atom).

Benchmark (Apple M1 Max, single-goroutine, 5-of-7):
  SHAKE-192s: v1.0-equivalent 2.93 s/op -> v1.1 strict-atom 1.43 s/op (-51%)
  SHAKE-192f: v1.0-equivalent 113 ms/op -> v1.1 strict-atom 63 ms/op (-44%)
  SHAKE-256s: v1.0-equivalent 2.22 s/op -> v1.1 strict-atom 2.04 s/op (-8%)

The strict-atom path is FASTER because the Magnetar-internal SHAKE
walk avoids circl's per-call PrivateKey unmarshal + state struct
initialisation overhead.

ASSEMBLE-INVARIANT.md: load-bearing prose statement of the strict-
atom discipline + the four forbidden FIPS 205 master-binder
identifiers + the residual gap.

doc.go: updated v1.0 framing to v1.1.
2026-06-01 17:13:05 -07:00