In one of my previous roles, I was part of a cryptography team responsible for implementing threshold signatures for ECDSA. This work is particularly important for many blockchains—like Bitcoin and Ethereum—that use ECDSA, which unfortunately doesn’t natively support multi-signature or threshold signature schemes.

While Bitcoin has recently adopted Schnorr signatures (which do support native multisignatures and it is very simple which I like it), ECDSA remains dominant in the ecosystem. For threshold ECDSA, one of the most efficient and well-designed protocols to date is CGGMP21.

The protocol is detailed in the paper “UC Non-Interactive, Proactive, Threshold ECDSA with Identifiable Aborts.” The acronym CGGMP comes from the initials of the authors’ last names.

What sets CGGMP21 apart is its non-interactive design. The actual signing process can be completed efficiently without repeated rounds of interaction (in a pre-signing phase). It also features proactive security and identifiable aborts, making it resilient and robust for real-world use.

We had successfully implemented CGGMP21 internally, but unfortunately, the project remained closed-source and was never published. Considering how valuable it could be to the wider ecosystem.

Recently, I came across a new Rust implementation of CGGMP21 that is open-source. It’s exciting to see the community making this cutting-edge cryptography more accessible, and I highly recommend checking it out if you’re working on threshold signing for ECDSA.