Zero-knowledge proofs (ZKPs) are foundational to the security of the threshold ECDSA in GG18 [3]. They allow each participant to demonstrate knowledge of secret values, such as private key shares or random factors with range, without disclosing them to other parties.
In this post, we analyze the specific ZKP constructions implemented in Binance’s tss-lib [1]. These proofs address previously identified weaknesses in the Multiplicative-to-Additive (MtA) protocol, Paillier encryption parameters, and auxiliary RSA modulus generation. Our discussion is grounded in the improvements formalized by the specifications in CGGMP21 [4], which strengthen the robustness of threshold ECDSA against known attacks.
Sigma Protocol
The auxiliary zero-knowledge proofs in threshold ECDSA are based on a standard sigma protocol (aka,
KaTeX can only parse string typed expression
Σ-protocol), a three-round interactive proof system for proving the knowledge of a secret without revealing it. It involves the following three steps:
Commitment: The prover sends a commitment computed using randomness and public input.
Challenge: The verifier issues a random challenge
KaTeX can only parse string typed expression
c, typically derived via the Fiat–Shamir transformation using prior messages and public inputs to convert the interactive system into a non-interactive one.
Response: The prover replies with a value
KaTeX can only parse string typed expression
z that encodes the secret and the challenge.
The verifier then checks a predefined relation over the commitment, challenge, and response to verify knowledge of the secret.
Range Proofs in MtA Protocol
In our recent post, Threshold Cryptography IV, we discussed how the Multiplicative-to-Additive (MtA) protocol incorporates range proofs constructed using the sigma protocol. These range proofs are critical to ensuring that encrypted secret shares are well-formed and lie within the expected domain. Without them, an adversary could craft malformed ciphertexts that subvert the security assumptions of the protocol. In fact, the absence of range proofs has been directly linked to real-world vulnerabilities, as demonstrated in Attacking Threshold Wallets, A Note on the Security of GG18, and further explored in Alpha-Rays: Key Extraction Attacks on Threshold ECDSA Implementations.
Schnorr Proof
Schnorr proof is a special case of the sigma protocol that is intended to prove knowledge of the discrete logarithm, for example, on elliptic curves.
Public: A generator
KaTeX can only parse string typed expression
g∈G of large prime order
KaTeX can only parse string typed expression
q, and a point
KaTeX can only parse string typed expression
h∈G.
Secret: The prover knows a secret
KaTeX can only parse string typed expression
x with
KaTeX can only parse string typed expression
h=x∙g, that is, knows the discrete log with respect to the point
KaTeX can only parse string typed expression
h.
The protocol operates in three rounds, as illustrated in the sigma protocol:
Commitment: The prover samples random
KaTeX can only parse string typed expression
r∈Zq∗, computes the commitment
KaTeX can only parse string typed expression
α=r∙g and sends it to the verifier.
Challenge: The verifier validates
KaTeX can only parse string typed expression
h and
KaTeX can only parse string typed expression
α, then sends random
KaTeX can only parse string typed expression
c=H(q,g,α,h)∈Zq, where
KaTeX can only parse string typed expression
H is a cryptographic hash function that serves as Fiat-Shamir transformation.
Response: The prover computes
KaTeX can only parse string typed expression
z=r+c⋅x mod
KaTeX can only parse string typed expression
q.
Verifier checks that
KaTeX can only parse string typed expression
z∙g=α+c∙h. If the equation holds, the verifier is convinced the prover knows the secret
KaTeX can only parse string typed expression
x without learning it. Schnorr proofs are widely used in the threshold ECDSA to prove one party knows a secret without revealing it to others.
Paillier Proof
As part of the distributed key generation in GG18 [3], each party must generate a Paillier public key
KaTeX can only parse string typed expression
N that is square-free, that is, there is no prime number
KaTeX can only parse string typed expression
p such that
KaTeX can only parse string typed expression
p2 divides
KaTeX can only parse string typed expression
N. Ensuring this property is critical, since a non-square-free modulus could undermine the semantic security guarantees of the encryption scheme. To enforce correctness, each party produces a Paillier proof that certifies the validity of its modulus to all other participants. The tss-lib [1] implementation adopts the construction from GRSB19 [5], which refines earlier techniques introduced in GMR98 [6].
In later refinements of threshold ECDSA, the Paillier modulus
KaTeX can only parse string typed expression
N is required not only to be square-free but to satisfy the stronger condition of being a Paillier–Blum modulus. This property is enforced via the mod proof, a zero-knowledge proof that certifies correct parameter generation. Specifically, the proof demonstrates that the prover knows a factorization
KaTeX can only parse string typed expression
N=p⋅q such that
KaTeX can only parse string typed expression
p=3 mod 4,
KaTeX can only parse string typed expression
q=3 mod 4. At the same time, the construction guarantees that
KaTeX can only parse string typed expression
N is coprime with its Euler totient
KaTeX can only parse string typed expression
ϕ(N), which implies that
KaTeX can only parse string typed expression
N is square-free. By requiring this structure, the Mod proof strengthens the hardness assumptions underlying Paillier encryption and mitigates attacks stemming from weak or malformed moduli.
DLN proof is a zero-knowledge proof that ensures the correct generation of Pedersen parameters
KaTeX can only parse string typed expression
(N,s,t) such that
KaTeX can only parse string typed expression
s,t∈N∗ by requiring the prover to demonstrate knowledge of an exponent
KaTeX can only parse string typed expression
λ such that
KaTeX can only parse string typed expression
s=tλ mod
KaTeX can only parse string typed expression
N. This guarantees that the parameters are properly linked and prevents adversaries from injecting malformed or trapdoored values, which could otherwise lead to key extraction attacks. Missing or incorrectly implemented DLN proofs, as highlighted in New Key Extraction Attacks on Threshold ECDSA Implementations, have been shown to open the door to practical exploits. By enforcing well-formed Pedersen commitments, the DLN proof enhances the trustworthiness of the auxiliary setup in threshold ECDSA and reduces the attack surface, resulting from improperly generated public parameters.
This post wraps up our series on threshold cryptography, where we explored the auxiliary zero-knowledge proofs in GG18 [3] and their implementation in Binance’s tss-lib [1]. These proofs are essential for realizing the MtA protocol and Paillier encryption scheme, providing assurance in parameter correctness and secure message authentication in threshold ECDSA.
At CertiK, our cryptography team is actively engaged in research and development across applied cryptography, including threshold cryptography, zero-knowledge proofs, and post-quantum cryptography schemes. If your project requires a security review in any of these areas, we’d be glad to connect. From threshold cryptography to post-quantum security, CertiK helps you Elevate Your Web3 Journey.
Aleo Systems has created a Layer 1 blockchain named Aleo with a focus on privacy achieved through the use of zero-knowledge proofs (ZKPs) and other cryptographic methods. Unlike most popular blockchains where data used and created by transactions can be viewed by an external observer, Aleo provides the ability to hide such information.
In this post, we provide a detailed examination of the MtA protocol, which utilizes the additively homomorphic properties of the Paillier encryption scheme to facilitate the exchange of encrypted secret shares among the participating parties.
8/10/2025
Elevate Your Web3 Journey
Ready to take the next step? Connect with our sales team to request your free quote and secure your project today!