mirror of
https://github.com/luxfi/pulsar.git
synced 2026-09-24 00:25:52 +00:00
The v0.1 GF(257) threshold-signing instantiation (ThresholdSigner / Round1 / Round2 / Combine) Lagrange-reconstructed the master seed in aggregator memory and called FIPS 204 SignTo once — i.e. a quorum's full ML-DSA signing key materialised in a single process. That reconstruct-then-sign ceremony was the H-1 footgun. Its only production reach was consensus's quasar wave_signer (deleted), via the threshold/protocols/pulsar alias (Combine re-export dropped in the threshold repo). The one and only threshold-signing path is now the v0.3 algebraic ceremony (threshold_v03.go / orchestrate.go), whose Lagrange-linearity-of-z aggregation produces the FIPS 204 signature WITHOUT reconstructing the secret in any party's memory. Removed: - threshold.go: ThresholdSigner, NewThresholdSigner, Round1, Round2, Combine (kept the shared transcript/committee/CT helpers + error set consumed by the v0.3 and GF(q) paths; dropped now-unused crypto/rand + io imports and dead ErrNilSession). - types.go: Round1Message, Round2Message wire types. - round.go: dead RoundSigShare (was the wave_signer carrier). - threshold_test.go, n1_byte_equality_test.go: pure-v0.1 suites. - round_test.go / bench_test.go / precompile_e2e_test.go: excised the v0.1 sign cases, kept RoundContext/ApproxRoundSecurity/DKG/Large/v0.3. - cmd/genkat: dropped v0.1 threshold-sign KAT generation + helper. - ct/dudect/combine_ct.go + dudect_combine.c: dead CT harness for the removed Combine path. - shared_dkg_test.go: relocated the non-v0.1 DKG test helpers (runDKG / runDKGWithIdentities) that threshold_test.go had hosted. Verified: GOWORK=off go build ./... exit 0; go vet clean; go test ./ref/go/pkg/pulsar/ exit 0 (DKG, reshare, v0.3, KAT replay, large-committee all green).