Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various MuSig Improvements #155

Open
2 of 11 tasks
jonasnick opened this issue Dec 21, 2021 · 0 comments
Open
2 of 11 tasks

Various MuSig Improvements #155

jonasnick opened this issue Dec 21, 2021 · 0 comments

Comments

@jonasnick
Copy link
Contributor

jonasnick commented Dec 21, 2021

API

  • Make aborts identifiable, so that signers can be blamed if they send garbage. In particular, this means updating the partial_sig_agg failure case to return the index of the offending sig.
  • Allow signing variable length messages (i.e. with length != 32) as proposed for BIP-340 by adding an msglen argument to all function currently only taking an msg32.
  • Support sign-to-contract (@dr-orlovsky)
  • Consider adding a flag to the secp256k1_musig_partial_sign interface. If true it would do a partial signature verification before returning (H/T @robot-dreams).i
  • Consider treating pre_sig64 argument of musig_adapt and musig_extract_adaptor as secret (for constant-timeness test)

Internal

  • musig_nonce_gen currently rejects session_id32=0 if there's no seckey. This check could be stronger and reject weak entropy counters, for example in a endianness-independent way by checking that the middle 16-bytes are not all 0 (H/T @robot-dreams).
  • Unify handling of cryptographically unreachable code, i.e., always use VERIFY_CHECK instead of returning 0.
  • Keep up to date with test vectors from the MuSig spec (Update musig module to BIP MuSig2 v1.0.0-rc.3 #211)
  • Strengthen nonce generation by feeding addresses of arguments to the function (Strengthen MuSig nonce gen by feeding addresses of args #152)
  • Reenable efficient multiexponentiation (ecmult_multi) in pubkey_agg when confidence in its implementation is higher.
  • Fix TODO items: "use multiexp to compute -s*G + e*mu*pubkey + aggnonce[0] + b*aggnonce[1]" and "Cache mu".
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant