지금 프로젝트를 보호하세요
최대 규모의 웹3 보안 제공업체로 프로젝트를 강화하세요.
CertiK 보안 전문가가 귀하의 요청을 검토 후 곧 연락드리겠습니다.

Threshold Cryptography V: Auxiliary Zero-knowledge Proofs

기술 블로그 ·기술적 분석 ·
Threshold Cryptography V: Auxiliary Zero-knowledge Proofs

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, $\Sigma$-protocol), a three-round interactive proof system for proving the knowledge of a secret without revealing it. It involves the following three steps:

  1. Commitment: The prover sends a commitment computed using randomness and public input.
  2. Challenge: The verifier issues a random challenge cc, typically derived via the Fiat–Shamir transformation using prior messages and public inputs to convert the interactive system into a non-interactive one.
  3. Response: The prover replies with a value zz 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 gGg \in G of large prime order qq, and a point hGh \in G.
  • Secret: The prover knows a secret xx with h=xgh=x \bullet g, that is, knows the discrete log with respect to the point hh.

The protocol operates in three rounds, as illustrated in the sigma protocol:

  1. Commitment: The prover samples random rZqr \in \mathbb{Z}_q^*, computes the commitment α=rg\alpha = r \bullet g and sends it to the verifier.
  2. Challenge: The verifier validates hh and α\alpha, then sends random c=H(q,g,α,h)Zqc = H(q, g, \alpha , h) \in \mathbb{Z}_q, where HH is a cryptographic hash function that serves as Fiat-Shamir transformation.
  3. Response: The prover computes z=r+cxz = r + c \cdot x mod qq.

Verifier checks that zg=α+chz \bullet g = \alpha + c \bullet h. If the equation holds, the verifier is convinced the prover knows the secret xx 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 NN that is square-free, that is, there is no prime number pp such that p2p^2 divides NN. 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].

Refer to GG18 [3], Page 10:

Proof 1

Refer to GRSB19 [5], Page 6, 7:

Proof 2

Mod Proof

In later refinements of threshold ECDSA, the Paillier modulus NN 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 N=pqN = p \cdot q such that p=3p=3 mod 4, q=3q=3 mod 4. At the same time, the construction guarantees that NN is coprime with its Euler totient ϕ(N)\phi(N), which implies that NN 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.

Refer to CGGMP21 [4], Page 31:

Proof 3

Factor Proof

In response to the vulnerabilities highlighted in Practical Key-Extraction Attacks in Leading MPC Wallets, tss-lib [1] adopts the small-factor proof to harden the security of the Paillier modulus. The proof ensures that the prover’s secret prime factors p,qp,q of the RSA modulus are not only unknown to other parties but also bounded within a range relative to \sqrt{N}$​​. By leveraging sigma protocol techniques with commitment parameters, the proof convinces verifiers that $p and qq are well-formed without disclosing them, thereby eliminating attack vectors that exploit improperly generated or undersized/oversized factors.

Refer to CGGMP21 [4], Page 60:

Proof 4

DLN Proof

DLN proof is a zero-knowledge proof that ensures the correct generation of Pedersen parameters (N,s,t)(N, s, t) such that s,tNs, t \in N^* by requiring the prover to demonstrate knowledge of an exponent λ\lambda such that s=tλs = t^\lambda mod NN. 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.

Refer to CGGMP21 [4], Page 32:

Proof 5

Conclusion

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.

References

  1. Binance: https://github.com/bnb-chain/tss-lib
  2. Binance: Binance Open-Sources Threshold Signature Scheme Library
  3. Rosario Gennaro, Steven Goldfeder, 2018: Fast Multiparty Threshold ECDSA with Fast Trustless Setup (GG18)
  4. Ran Canetti, Rosario Gennaro, Steven Goldfeder, Nikolaos Makriyannis, Udi Peled, 2021: UC Non-Interactive, Proactive, Threshold ECDSA with Identifiable Aborts (CGGMP21)
  5. Sharon Goldberg, Leonid Reyzin, Omar Sagga, and Foteini Baldimtsi, 2019, Efficient Noninteractive Certification of RSA Moduli and Beyond (GRSB19)
  6. Rosario Gennaro, Daniele Micciancio, Tal Rabin, 1998. An efficient non-interactive statistical zero-knowledge proof system for quasi-safe prime products (GMR98)
  7. JP Aumasson, Omer Shlomovits: Attacking Threshold Wallets
  8. Nikolaos Makriyannis Udi Peled: A Note on the Security of GG18
  9. Dmytro Tymokhanov, Omer Shlomovits: Alpha-Rays: Key Extraction Attacks on Threshold ECDSA Implementations
  10. Duy Hieu Nguyen, Anh Khoa Nguyen, Huu Giap Nguyen, Thanh Nguyen, Anh Quynh Nguyen: New Key Extraction Attacks on Threshold ECDSA Implementations
  11. Nikolaos Makriyannis, Oren Yomtov, Arik Galansky: Practical Key-Extraction Attacks in Leading MPC Wallets

관련 블로그

Hiding in Plain Sight: zERC20 and zk-Proof-of-Burn

Hiding in Plain Sight: zERC20 and zk-Proof-of-Burn

For years, the industry has struggled with this exact question. In this article, we are going to dive deep into an emerging privacy solution: zERC20. zERC20 is a pragmatic, immediate implementation of a concept known as plausible deniability (originally proposed in EIP-7503), which means the cryptographic evidence of an action equally supports a completely innocent explanation. For zERC20, depositing funds into the privacy protocol is mathematically indistinguishable from a user accidentally sending tokens to a dead address.

Zero-Knowledge Virtual Machines (ZKVMs) in Practice: A Technical Survey

Zero-Knowledge Virtual Machines (ZKVMs) in Practice: A Technical Survey

Zero-knowledge virtual machines (ZKVMs) are proof-generating replicas of familiar software stacks. Because they turn heavyweight replays into quick proof checks with optional privacy, ZKVMs already anchor privacy-preserving DeFi flows, compliance attestations, oracle feeds, and rollups.

Introducing Aleo: A Premier Platform for Private Blockchain Applications

Introducing Aleo: A Premier Platform for Private Blockchain Applications

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.