Multisig Is Broken. Here’s How MPC and FROST Fix It.
Introduction
There is frequent confusion in the blockchain and wallet ecosystem between multisignature schemes such as MuSig2 and true Threshold Signature Schemes (TSS) implemented using Multi-Party Computation (MPC). Both approaches allow multiple participants to jointly authorize a transaction and produce a single valid signature. However, their security models, cryptographic assumptions, and trust guarantees differ substantially.
This article compares MuSig2, TSS, and MPC from both a mathematical and implementation perspective.
Background: The WazirX Multisig Case
WazirX, one of India’s largest exchanges, used a multisignature scheme to secure its wallets. Their custody model relied on multiple keyholders, with transactions requiring approval from a set of signers.
In practice, this was an N-of-N (or M-of-N) multisig setup, where multiple independent private keys had to sign before funds could move. This design protected against unilateral compromise but also created bottlenecks and operational risks and WazirX hack (July 2024) did happen. Around $230M was drained from their multisig wallet.
Lessons from WazirX
- Operational rigidity: In a pure multisig (like MuSig2 or simple M-of-N), if one signer is unavailable or compromised, the system can stall.
- Transparency: On-chain multisig schemes expose signer sets and thresholds, which can reduce privacy and sometimes create attack surfaces.
- Not MPC: Despite being called “multisig security,” the model did not involve distributed key generation or threshold signatures. Each keyholder still had a complete private key.
Schnorr/Ed25519 Signature Recap
At the core, both MuSig2 and TSS build on Schnorr-style signatures (Ed25519 is a Schnorr variant). A standard signature is: s = r + k * x
x: private key scalarX = g^x: public keyr: random nonceR = g^r: public nonce pointk = H(X || R || message): challenge hash
The final signature is (R, s) and is verified by checking:
g^s == R + k * X1. MuSig2: N-of-N Multisignature Aggregation
Key Generation
Each participant generates a full keypair (x_i, X_i). These are independent and equivalent to any standard Ed25519 keypair.
Public Key Aggregation
All public keys are collected and combined: X_agg = Σ (a_i * X_i)where coefficients a_i are computed via a hash of all public keys to prevent rogue-key attacks.
Nonce Generation
Each participant generates a nonce r_i and publishes R_i = g^r_i. These are combined: R = Σ R_i
Partial Signatures
Each participant computes: s_i = r_i + k * a_i * x_i, where k = H(X_agg || R || message).
Signature Aggregation
The final signature is: s = Σ s_i, σ = (R, s)
Characteristics
- Each participant holds a complete private key.
- Security is enforced by requiring all
Nparticipants (N-of-N). - No secret sharing or threshold reconstruction.
- Output is indistinguishable from a normal Ed25519 signature.
2. Classic Threshold Signatures (TSS with VSS/DKG)
Key idea
One logical private key x is split into shares x_i using secret sharing. Signing is done by locally computing γ_i = r_i + k * x_i and then interpolating.
Key Generation
Dealer-based TSS
- A trusted dealer generates
x. - Splits it into shares
x_iusing Shamir or Feldman VSS. - Distributes shares and deletes
x.
Weakness: you must trust the dealer not to keep or leak
x.
Dealerless DKG (Feldman/Pedersen VSS)
- Each party proposes randomness and commitments.
- Shamir-style polynomials are combined to define one global key
x. - Each party receives their share
x_i. - Public key
X = g^xis derived collectively.
No one ever explicitly knows the full
x.
Nonce Generation
- Each party generates a nonce share
r_i. - Nonce point:
R = g^(Σ r_i).
Signing
- Each party computes:
γ_i = r_i + k * x_i - A combiner uses Lagrange interpolation over the subset of signers to reconstruct:
s = Σ λ_i * γ_i,whereλ_iare interpolation coefficients.
Properties
- Works with
t-of-nflexibility. - Heavy on communication (verification of shares, polynomial proofs).
- Each signature requires a fresh round of communication.
- Signers reveal partials that a combiner interpolates into
s.
3. MPC-DKG with FROST (Flexible Round-Optimized Schnorr Threshold Signatures)
Key idea
FROST is not just “secret sharing + interpolation.” It is an interactive MPC protocol designed for Schnorr/Ed25519 signatures that:
- Distributes the key during DKG.
- Produces signatures in a way that minimizes communication.
- Ensures robustness against rogue key and nonce reuse attacks.
Key Generation (FROST DKG)
- Each participant samples a polynomial and commits to it.
- Shares are exchanged and verified (like Pedersen VSS).
- At the end, each participant has:
- A private share
x_i. - Knowledge of the collective public key
X = g^x.
Security: no one ever constructs
xexplicitly.
Nonce Generation
- FROST requires deterministic, verifiable nonces.
- Each signer produces multiple nonces in advance and publishes commitments.
- For each signing session, a subset of nonces is used (to avoid reuse attacks).
Signing
- Each signer computes their partial:
γ_i = r_i + k * x_i,just like classic TSS, but with carefully bound coefficients and commitments. - An aggregator collects partial signatures, verifies them, and computes:
s = Σ γ_i, σ = (R, s),Verification is identical to Schnorr.
Distinctions from “plain” TSS
- Round efficiency: FROST is designed to minimize signing rounds (two rounds per signature: nonce commitments and signature shares).
- Robustness: Handles dropped or malicious signers gracefully.
- Security proofs: FROST is formally proven secure against concurrent sessions, rogue-key attacks, and nonce misuse.
- Interoperability: The output signature is indistinguishable from a standard Schnorr/Ed25519 signature.
4. Why FROST is preferred in modern MPC wallets
No trusted dealer.
Get kartikkktomarrr’s stories in your inbox
Join Medium for free to get updates from this writer.
Threshold flexibility.
Compact and indistinguishable signatures.
Protocol designed to run at scale (fast, resilient).
Strong formal security proofs.
MPC vs MuSig2
The terms are often blurred:
- MuSig2 is a multisignature scheme. It is not MPC, even though multiple parties participate.
- MPC/TSS explicitly ensures no single party ever has the private key. This requires distributed key generation and verifiable secret sharing.
- In MuSig2, the private keys are independent; in TSS, the shares are fragments of the same private key
Conclusion
MuSig2, Threshold Signatures, and MPC are often conflated, but they serve different purposes and offer distinct guarantees. MuSig2 is an efficient multisignature aggregation scheme: it compresses multiple signatures into one, but requires every participant to hold a complete private key and to be online for signing. Classic Threshold Signature Schemes, built using verifiable secret sharing and interpolation, allow t-of-n flexibility, but involve heavy communication and are less efficient in practice. Modern MPC protocols such as FROST combine the strengths of both: no trusted dealer, threshold signing, resilience against faults, and efficiency with only two rounds of signing. For this reason, MPC-based FROST protocols have become the preferred foundation for secure and scalable wallet infrastructures.
Common Mislabeling
Many repositories and systems in the ecosystem (including some labeled “TSS” for Solana) actually implement MuSig2. They require N-of-N participants and use each node’s full private key. True threshold MPC, with DKG and t-of-n flexibility, is more complex and stronger in security guarantees.
References
Further Reading and Code
For those interested in exploring a working implementation, I have built an open-source repository that demonstrates MPC with FROST in practice: mpc-frost (GitHub Repo)
This repo contains a Rust-based implementation of distributed key generation and threshold signing using FROST, showing how MPC differs from multisig at the code level.






