fastcrypto icon indicating copy to clipboard operation
fastcrypto copied to clipboard

Implementation of secp256k1 Group

Open themicp opened this issue 1 year ago • 0 comments

This PR implements the secp256k1 group by wrapping around the k256 crate. This enhancement enables the use of the DKG protocol in fastcrypto-tbls to produce shared keys on the secp256k1 curve.

Motivation: We would like to use the fastcrypto-tbls DKG protocol to produce shares for a key that can sign transactions on Bitcoin, which natively supports secp256k1. However, the DKG protocol implementation currently only supports the BLS12-381 curve. By implementing the secp256k1 group, we enable the DKG protocol to work in conjunction with a signature aggregation protocol (e.g., FROST) to produce aggregated signatures that can be natively verified on Bitcoin.

Changes:

  • Updated k256 to version 0.13.4
  • Implemented secp256k1 Group
  • Modified secp256k1 tests: Updated existing tests to align with the changes in the k256 interface
  • Enhanced dkg_v1 tests: Adjusted the tests to run with both BLS12381 and secp256k1 curves, ensuring that the DKG protocol functions correctly with the new implementation.

themicp avatar Oct 31 '24 11:10 themicp