mirror of
https://github.com/luxfi/pulsar.git
synced 2026-09-24 00:25:52 +00:00
pulsar: Mithril 3-round hyperball no-reconstruct threshold signer
mithril_rss_hyperball.go: SignHyperball runs the dealerless RSS ML-DSA-65 key with NO key reconstruction. Each active party holds only its balanced- partition share s1_(j), samples its own hyperball mask y_j (Box-Muller uniform-in-ball), and emits only z_j = y_j + c*s1_(j) under a leak-free Excess gate; the coordinator sums z = Σ z_j = y + c*s1 and recovers the hint from the PUBLIC w' = A*z − c*t1*2^d (BoundaryClear + FindHint). No party or coordinator ever forms full s1/s2/t0/y/w/w0/sk. K-parallel slots + maxRounds re-runs amortise acceptance; fail-closed self-verify before emit. blameSlot gives leak-free identification (stops at culprit so Σ T_j = t−s2 never forms). Explicit hyperballParty (private share) vs hyperballCoordinator (public aggregates only) types make the no-reconstruct boundary structural.
This commit is contained in: