diff --git a/backend/mpc-system/services/service-party-app/tss-party/main.go b/backend/mpc-system/services/service-party-app/tss-party/main.go index 75dd00cb..43023996 100644 --- a/backend/mpc-system/services/service-party-app/tss-party/main.go +++ b/backend/mpc-system/services/service-party-app/tss-party/main.go @@ -597,9 +597,13 @@ func executeSign( // Create peer context and parameters // For signing with T parties from an N-party keygen: // - The peer context contains only the T signing parties - // - threshold parameter should be T-1 (since we need T parties to sign, threshold = T-1) + // - IMPORTANT: partyCount must be the original N from keygen, NOT current signers count + // - threshold must be the original T from keygen, NOT T-1 + // This matches how pkg/tss/signing.go creates parameters in server-party: + // params := tss.NewParameters(tss.S256(), peerCtx, selfTSSID, config.TotalParties, config.Threshold) + // where TotalParties=N from keygen and Threshold=T from keygen peerCtx := tss.NewPeerContext(sortedPartyIDs) - params := tss.NewParameters(tss.S256(), peerCtx, selfTSSID, len(sortedPartyIDs), thresholdT-1) + params := tss.NewParameters(tss.S256(), peerCtx, selfTSSID, thresholdN, thresholdT) // Create channels outCh := make(chan tss.Message, thresholdT*10)