You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Squashed 'src/secp256k1/' changes from 7a30cb0c9d9..14620d13125
14620d13125 rangeproof: add a "net blinding factor" API for Elements
d22774e248c Merge BlockstreamResearch/secp256k1-zkp#203: MuSig doc fixes
dd83e72d52d Add ordinary tweak info
d26100cab26 Exclude nonce_process from pre-processing steps
b7607f93f23 Fix reference to xonly_tweak_add
f7e9a8544f3 Merge BlockstreamResearch/secp256k1-zkp#201: rangeproof: add secp256k1_rangeproof_max_size function to estimate rangeproof size
6b6ced9839f rangeproof: add more max_size tests
34876ecb5fa rangeproof: add more static test vectors
310e5170619 rangeproof: add a bunch more testing
f1410cb67a2 rangeproof: add secp256k1_rangeproof_max_size function to estimate rangeproof size
c137ddbdff7 Merge BlockstreamResearch/secp256k1-zkp#200: build: automatically enable module dependencies
0202d839fb1 Merge BlockstreamResearch/secp256k1-zkp#199: surjectionproof: make sure that n_used_pubkeys > 0 in generate
5ac8fb035e8 surjectionproof: make sure that n_used_pubkeys > 0 in generate
7ff446df8b9 Merge BlockstreamResearch/secp256k1-zkp#198: rangeproof: add a test for all-zero blinding factors
5a40f3d99bb replace memcmp with secp256k1_memcmp_var throughout the codebase
92820d944b5 rangeproof: add a test for all-zero blinding factors
171b294a1c7 build: improve error message if --enable-experimental is missed
58ab152bb4b build: move all output concerning enabled modules at single place
1493113e61e build: automatically enable module dependencies
4fd7e1eabda Merge BlockstreamResearch/secp256k1-zkp#197: fix include paths in all the -zkp modules
347f96d94a6 fix include paths in all the -zkp modules
d1d6e47c17c Merge BlockstreamResearch/secp256k1-zkp#196: surjectionproof: fail to generate proofs when an input equals the output
d1175d265d5 surjectionproof: use secp256k1_memcmp_var rather than bare memcmp
bf18ff5a8c6 surjectionproof: fix generation to fail when any input == the output
4ff6e4274d4 surjectionproof: add test for existing behavior on input=output proofs
71a206fa5bb Merge BlockstreamResearch/secp256k1-zkp#194: extrakeys: rename swap/swap64 to fix OpenBSD 7.1 compilation
db648478c3c extrakeys: rename swap/swap64 to fix OpenBSD 7.1 compilation
git-subtree-dir: src/secp256k1
git-subtree-split: 14620d131250b141f4d3ab352fedac0aef45eb30
Copy file name to clipboardexpand all lines: src/modules/musig/musig.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ Therefore, users of the musig module must take great care to make sure of the fo
23
23
# Key Aggregation and (Taproot) Tweaking
24
24
25
25
Given a set of public keys, the aggregate public key is computed with `secp256k1_musig_pubkey_agg`.
26
-
A (Taproot) tweak can be added to the resulting public key with `secp256k1_xonly_pubkey_tweak_add`.
26
+
A (Taproot) tweak can be added to the resulting public key with `secp256k1_xonly_pubkey_tweak_add` and an ordinary tweak can be added with `secp256k1_ec_pubkey_tweak_add`.
27
27
28
28
# Signing
29
29
@@ -32,7 +32,7 @@ Essentially, the protocol proceeds in the following steps:
32
32
33
33
1. Generate a keypair with `secp256k1_keypair_create` and obtain the xonly public key with `secp256k1_keypair_xonly_pub`.
34
34
2. Call `secp256k1_musig_pubkey_agg` with the xonly pubkeys of all participants.
35
-
3. Optionally add a (Taproot) tweak with `secp256k1_musig_pubkey_tweak_add`.
35
+
3. Optionally add a (Taproot) tweak with `secp256k1_musig_pubkey_xonly_tweak_add` and an ordinary tweak with `secp256k1_musig_pubkey_ec_tweak_add`.
36
36
4. Generate a pair of secret and public nonce with `secp256k1_musig_nonce_gen` and send the public nonce to the other signers.
37
37
5. Someone (not necessarily the signer) aggregates the public nonce with `secp256k1_musig_nonce_agg` and sends it to the signers.
38
38
6. Process the aggregate nonce with `secp256k1_musig_nonce_process`.
@@ -42,10 +42,10 @@ Essentially, the protocol proceeds in the following steps:
42
42
43
43
The aggregate signature can be verified with `secp256k1_schnorrsig_verify`.
44
44
45
-
Note that steps 1 to 6 can happen before the message to be signed is known to the signers.
45
+
Note that steps 1 to 5 can happen before the message to be signed is known to the signers.
46
46
Therefore, the communication round to exchange nonces can be viewed as a pre-processing step that is run whenever convenient to the signers.
47
47
This disables some of the defense-in-depth measures that may protect against API misuse in some cases.
48
-
Similarly, the API supports an alternative protocol flow where generating the aggregate key (steps 1 to 3) is allowed to happen after exchanging nonces (steps 4 to 6).
48
+
Similarly, the API supports an alternative protocol flow where generating the aggregate key (steps 1 to 3) is allowed to happen after exchanging nonces (steps 4 to 5).
0 commit comments