Jonas Nick
de54a1eff7
musig2: clean up ctx doc in include file
2024-01-23 16:04:45 +01:00
Sanket Kanjalkar
e2eb3fae40
Make *key_cache const in musig_pubkey_get
2024-01-07 07:44:11 -08:00
Jonas Nick
a9a5c24de2
Merge commits '56582094 427bc3cd 0cf2fb91 9c8c4f44 70be3cad f16a709f 464a9115 1d8f3675 afd8b23b 2bca0a5c 2d51a454 4e682626 a0f4644f 145078c4 7b7503da ec98fced 346a053d ' into temp-merge-1269
2023-07-24 13:46:43 +00:00
Jonas Nick
6c54db1987
Merge commits '2286f809 751c4354 477f02c4 e3f84777 5c789dcd 8c949f56 21ffe4b2 ' into temp-merge-1055
2023-07-18 12:51:17 +00:00
Jonas Nick
4ab4ec38a0
musig: add note about missing verification to partial_sign to doc
2023-05-11 17:50:18 +00:00
Jonas Nick
f50ad76004
musig: update version number of BIP
2023-05-11 17:50:06 +00:00
Jonas Nick
bd57a017aa
musig: include pubkey in secnonce and compare when signing
2023-03-03 12:55:00 +00:00
Jonas Nick
068e6a036a
musig: add test vectors from BIP MuSig
2023-02-13 14:03:51 +00:00
Jonas Nick
36621d13be
musig: update to BIP v1.0.0-rc.2 "Add ''pk'' arg to ''NonceGen''"
2023-02-13 14:03:51 +00:00
Jonas Nick
d717a4980b
musig: update to BIP v0.8 "Switch from X-only to plain pk inputs."
2023-02-13 14:03:51 +00:00
Jonas Nick
060887e9d7
musig: update to BIP v0.5.1 "Rename ordinary tweaking to plain"
2023-02-13 14:03:51 +00:00
Tim Ruffing
8fd97d8116
Merge ElementsProject/secp256k1-zkp#158 : Small musig improvements
...
d895b10c18b8aa19a77f0a80f318e1a2052e7c9b musig: mention musig.md in example (Jonas Nick)
588009d26ffc58864b6e9fc3f1ab2eae633476c3 musig: improve doc of partial_sig_verify regarding signing sessions (Jonas Nick)
b1094953c4497947222df12ef8f9adb2191e2b17 musig: remove superfluous comment (Jonas Nick)
Pull request description:
ACKs for top commit:
robot-dreams:
ACK d895b10c18b8aa19a77f0a80f318e1a2052e7c9b
real-or-random:
ACK d895b10c18b8aa19a77f0a80f318e1a2052e7c9b
Tree-SHA512: 35169240868500bb27e5a6b8779f090d3f33a6c0cb1a4574e6e53e9c52782f454fe7df6d49b68e0acdd174e25a756bf6267339f0d4e94f28d5ae49145f21e298
2022-01-25 10:53:38 +01:00
Jonas Nick
37107361a0
musig: allow ordinary, non-xonly tweaking
2022-01-21 17:07:06 +00:00
Jonas Nick
c519b46879
musig: add pubkey_get to obtain a full pubkey from a keyagg_cache
2022-01-21 17:07:06 +00:00
Jonas Nick
588009d26f
musig: improve doc of partial_sig_verify regarding signing sessions
2022-01-02 19:42:15 +00:00
Jonas Nick
ac1e36769d
musig: turn off multiexponentiation for now
...
Before turning it on we need to have a discussion about our confidence in the
correctness of the multiexponentiation code.
2021-12-17 13:47:43 +00:00
Jonas Nick
22c88815c7
musig: replace MuSig(1) with MuSig2
2021-12-17 13:47:23 +00:00
Jonas Nick
9124ce0d9c
musig: fix session_init argument NULL check
2021-08-18 14:02:29 +00:00
Jonas Nick
56014e8ca0
musig: change pubkey_combine arg to array of pointers to pks
...
... instead of taking an array of pubkeys directly
2021-07-14 19:59:38 +00:00
Jonas Nick
4bc46d836e
musig: optimize key aggregation using const 1 for 2nd key
2021-07-14 19:58:54 +00:00
Jonas Nick
2310849f50
musig: compute musig coefficient by hashing key instead of index
2021-07-14 19:41:38 +00:00
Jonas Nick
9b3d7bf536
extrakeys: add xonly_sort function
2021-07-14 19:41:38 +00:00
Jonas Nick
b9d91b3ecb
musig: add pubkey_tweak_add function to allow taproot tweaking
2020-11-30 15:40:09 +00:00
Jonas Nick
5b4eb18ec5
musig: shorten partial nonce byte array from 33 to 32 bytes
2020-11-13 16:05:37 +00:00
Jonas Nick
62f0b2d867
musig: make musig partial nonces byte arrays instead of "pubkeys"
2020-11-13 16:05:37 +00:00
Jonas Nick
73792e4a27
musig: represent a combined_nonce as an xonly_pubkey
2020-11-13 16:05:36 +00:00
Jonas Nick
2117e7466a
musig: improve variable naming and be consistent with schnorrsig module
...
session_initialize -> session_init
msg_is_set -> is_msg_set
is_negated -> pk_parity
nonce_is_negated -> nonce_parity
2020-11-13 16:05:36 +00:00
Jonas Nick
ebc31f1f9d
musig: add ARG_CHECKs to functions to help debuggability
2020-11-13 16:05:36 +00:00
Jonas Nick
ac2d0e6697
musig: add magic to session to detect if session is uninitalized
2020-11-13 16:05:36 +00:00
Jonas Nick
29b4bd85d7
musig: simplify state machine by adding explicit round to session struct
2020-11-13 16:05:36 +00:00
Jonas Nick
23900a0d86
Fix the MuSig module after integrating bip-schnorr updates
...
1. using xonly_pubkeys in MuSig for input public keys and the combined
pk. For that to work we need to store whether the MuSig aggregated point
has an even y in the session, may need to negate each signers secret
key and may need to negate each signers public key in
musig_partial_sig_verify.
2. using a tagged hash for the message hash.
3. use !fe_is_odd in place of fe_is_quad_var
2020-11-04 21:47:09 +00:00
Jonas Nick
96201b4f6e
Require message in musig protocol in an earlier state. In particular,
...
remove the set_msg function and require the message in get_public_nonce
at the latest.
2020-07-24 14:59:36 +02:00
Jonas Nick
b368a5d163
Fix ARG_NONNULL macro usage in musig include
2020-07-24 14:59:36 +02:00
Jonas Nick
bedff79848
Add cplusplus directive to musig include
2020-07-24 14:59:36 +02:00
Jonas Nick
d924027765
Add tweak32 parameter to musig_partial_sig_combine which allows to sign for p2c/taproot commitments
2020-07-24 14:59:36 +02:00
Andrew Poelstra
3424cb1fa3
musig: add user documentation
2020-07-24 14:59:36 +02:00
Jonas Nick
13ef445721
Add 3-of-3 MuSig example
2020-07-24 14:59:36 +02:00
Jonas Nick
b86c210747
Add MuSig module which allows creating n-of-n multisignatures and adaptor signatures.
2020-07-24 14:59:36 +02:00