TSS Arrives On Starkware

Dfns open-sources its STARK curve implementation to enable the use of threshold signatures for apps on Starknet and Starkex.

Denis Varlakov
Denis Varlakov

We’re thrilled to share our open-source Rust implementation of the STARK curve for threshold signatures, compatible with Dfns’ out-of-the-box threshold ECDSA implementation: cggmp21.

This toolkit will help developers currently building apps and services on Starkware and Starknet to enhance key management using multi-party computation and threshold signatures.

Our CGGMP21 implementation has been audited by Kudelski Security.

What is the STARK curve?

STARK is an elliptic curve that powers Starknet, used to sign most transactions on this chain. It’s different from many blockchains which typically opt for more widely-used curves like secp256k1 / ed25519.

The STARK curve aims at improving the efficiency and security of zk-STARK proofs while maintaining some level of compatibility with existing cryptographic tools. Here’s a quick breakdown of the curve’s benefits:

  • Efficiency: Compared to other elliptic curves, the STARK curve is designed to be more efficient for the specific computations needed in zk-STARK proofs. This can lead to faster proof generation and verification, crucial for scalability on the Ethereum.
  • Security: The STARK curve is built with security in mind. Its parameters are chosen to resist known attacks that could compromise the validity of zk-STARK proofs.
  • Compatibility: While not the primary goal, the STARK curve design aims for some level of compatibility with existing cryptographic schemes. This might make it easier to integrate with other cryptographic tools and libraries.

How to use our library

The STARK curve is seamlessly integrated into the Dfns cryptographic library ecosystem, with the Stark elliptic curve arithmetic implementation forming its backbone. For a more user-friendly experience, we recommend utilizing our generic_ec crate, which offers an ergonomic API designed for general elliptic-curve cryptography tasks. The Stark curve is accessible through generic_ec::curves::Stark when the curve-stark feature is activated.

For those leveraging Dfns’ implementation of threshold ECDSA, generating Stark keys and producing signatures compatible with Starknet is straightforward. This feature is available via cggmp21::supported_curves::Stark, again ensuring the curve-stark feature is enabled.

Intellectual property

Our implementation of the STARK curve is available and free to use, double licensed under MIT and Apache 2.0.

References

Contact us