5 Commits
Author SHA1 Message Date
zeekayandHanzo Dev 733b315ce2 threshold: demote to interface + registry only (BLS impl → luxfi/threshold)
The native BLS Scheme impl (threshold/bls/) moved to
luxfi/threshold/scheme/bls so all threshold-signature implementations
live in one module. crypto/threshold now holds only the shared contract
(Scheme/Signer/Aggregator/Verifier/registry/session/errors/adapter) that
crypto/signer + hsm depend on — the one low-level seam that must stay
here to avoid a crypto<->threshold module cycle.

signer_test repoints its BLS registration to the new path. No
production crypto code changes.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-07-03 14:34:58 -07:00
zeekayandHanzo Dev 7181e9ccbc threshold/bls: genuine dealerless Pedersen-VSS DKG (RunDKG)
Replaces the stub trusted-dealer keygen with a real dealerless DKG:
each party samples its own degree-(t-1) polynomial + Feldman
commitments; party j's share = Σ_i f_i(j+1); group key = Σ_i C_{i,0}.
No party ever forms the group secret — it exists only as the sum of
independent contributions. Every cross-party VSS share is
Feldman-verified (A·f(j) == Σ jᵏ·C_k); a bad share fails the ceremony
identifying the emitter.

Tested (CGO, BLS12-381 via circl): 3-of-5 shares sign, aggregate via
Lagrange, and verify under the emergent group key; two disjoint signer
subsets both verify (proving one shared polynomial); bad params
rejected.

NOTE: per the threshold-consolidation directive this scheme's canonical
home is moving to luxfi/threshold, and dealerless keygen is being
routed through the purpose-built luxfi/dkg engine — see the
threshold-architecture consolidation plan. This lands the tested
no-dealer property now; the engine swap follows.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-07-03 12:47:21 -07:00
Hanzo AI 83eea3a764 crypto: remove dangerous stubs, fix BLS DKG
- Delete mpc/mpc.go (fake curve arithmetic x=k*2, y=k*3)
- cggmp21 Finalize() returns error instead of simulated values
- BLS DKG NewDKG() returns error directing to threshold/protocols/frost
2025-12-27 11:15:50 -08:00
Zach Kelling a67025abb7 style: fix gofmt formatting issues in threshold and aggregated packages 2025-12-20 22:43:34 -08:00
Zach Kelling fef62f9f4e feat(threshold): add generic threshold signature framework with BLS support
- Add threshold package with generic interfaces for threshold signatures
- Implement BLS threshold signatures with proper Shamir secret sharing
  and Lagrange interpolation (polynomial degree t-1 for t-of-n)
- Add threshold scheme registry for multiple signature schemes
- Add session management for coordinated signing
- Add signer package with unified interface
- Remove obsolete corona/corona.go (moved to threshold repo)
- Remove obsolete unified/signer_simple.go (replaced by signer package)
- Update aggregated package for threshold integration
2025-12-17 14:33:12 -08:00