fireblocks / mpc-lib

GNU General Public License v3.0
147 stars 86 forks source link

Issue when run test #5

Closed phongho01 closed 5 months ago

phongho01 commented 8 months ago

I clone this repo to test library, but when run ecdsa_online_test.cpp file, it throws error. /test: symbol lookup error: ./test: undefined symbol: secp256k1_ecdsa_recoverable_signature_parse_compact. I also have other questions

  1. what is the purpose of derived key? And what are differences from public key that was generated before creating share keys?
  2. What section of code that compute signature of parties to final signature?
  3. What is the purposes of chaincode data ?
nadav-fireblocks commented 6 months ago

You probably don't have libsecp256k1 installed properly.

We've recently added support for: running tests in Docker for multiple platforms, the code can be built using either Makefile or CMake, and its recommended to follow our GitHub Actions as an example of that.

To answer your other questions, further context might be required.

Derived keys, which you may encounter in hd_derive.cpp normally refer to BIP32 and to BIP44. BIP32 also explains what is a "chain code".

These definitions are all compliant to what is commonly knows as a "Hierarchical Deterministic (HD) Wallet"

As for this question:

What section of code that compute signature of parties to final signature?

The computation of the final signature itself is concluded in the final round of MPC, and it depends on results of prior rounds of MPC.

As for pointing to the section of code, the answer changes between different signing protocols. The most classical example can be seen here get_cmp_signature.