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
Copy file name to clipboardExpand all lines: bip-0373.mediawiki
+10-9Lines changed: 10 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,8 +15,8 @@
15
15
16
16
===Abstract===
17
17
18
-
This document proposes additional fields for BIP 174 PSBTv0 and BIP 370 PSBTv2 that allow for BIP
19
-
327 MuSig2 Multi-Signature data to be included in a PSBT of any version. These will be fields for
18
+
This document proposes additional fields for [[bip-0174.mediawiki|BIP 174]] PSBTv0 and [[bip-0370.mediawiki|BIP 370]] PSBTv2 that allow for
19
+
[[bip-0327.mediawiki|BIP 327]] MuSig2 Multi-Signature data to be included in a PSBT of any version. These will be fields for
20
20
the participants' keys, the public nonces, and the partial signatures produced with MuSig2.
21
21
22
22
===Copyright===
@@ -25,7 +25,7 @@ This BIP is licensed under the Creative Commons CC0 1.0 Universal license.
25
25
26
26
===Motivation===
27
27
28
-
BIP 327 specifies a way to create BIP 340 compatible public keys and signatures using the MuSig2
28
+
[[bip-0327.mediawiki|BIP 327]] specifies a way to create [[bip-0340.mediawiki|BIP 340]] compatible public keys and signatures using the MuSig2
29
29
Multi-Signature scheme. The existing PSBT fields are unable to support MuSig2 as it introduces new
30
30
concepts and additional rounds of communication. Therefore new fields must be defined to allow PSBTs
31
31
to carry the information necessary to produce a valid signature with MuSig2.
@@ -52,7 +52,8 @@ The new per-input types are defined as follows:
52
52
| rowspan="2"| 0, 2
53
53
|-
54
54
| The MuSig2 aggregate public key (compressed) <ref>'''Why the compressed aggregate public key instead of x-only?'''
55
-
BIP 32 public keys can be derived from a BIP 327 MuSig2 aggregate public key (see: [[bip-0328.mediawiki|BIP 328]]).
55
+
[[bip-0032.mediawiki|BIP 32]] public keys can be derived from a [[bip-0327.mediawiki|BIP 327]] MuSig2 aggregate public key
56
+
(see: [[bip-0328.mediawiki|BIP 328]]).But since BIP 32 requires public keys to include their evenness byte, [[bip-0327.mediawiki|BIP 327]] MuSig2 aggregate public key (see: [[bip-0328.mediawiki|BIP 328]]).
56
57
But since BIP 32 requires public keys to include their evenness byte, BIP 327 MuSig2 aggregate public keys must
57
58
include their evenness byte as well. Furthermore, PSBT_IN_TAP_BIP32_DERIVATION fields include fingerprints to identify
58
59
master keys, and these fingerprints require the y-coordinate of the public key, so x-only serialization can't be used.
@@ -74,7 +75,7 @@ required for aggregation. If sorting was done, then the keys must be in the sort
74
75
| rowspan="2"| 0, 2
75
76
|-
76
77
| The compressed public key of the participant providing this nonce, followed by the compressed aggregate public
77
-
key the participant is providing the nonce for, followed by the BIP 341 tapleaf hash of
78
+
key the participant is providing the nonce for, followed by the [[bip-0341.mediawiki|BIP 341]] tapleaf hash of
78
79
the Taproot leaf script that will be signed. If the aggregate key is the Taproot internal key or the
79
80
Taproot output key, then the tapleaf hash must be omitted. The compressed participant public key must be
80
81
the Taproot output key or found in a script. It is not the internal key nor the aggregate public key that
@@ -90,7 +91,7 @@ it was derived from, if it was derived from an aggregate key.
90
91
| rowspan="2"| 0, 2
91
92
|-
92
93
| The compressed public key of the participant providing this partial signature, followed by the
93
-
compressed public key the participant is providing the signature for, followed by the BIP 341 tapleaf hash
94
+
compressed public key the participant is providing the signature for, followed by the [[bip-0341.mediawiki|BIP 341]] tapleaf hash
94
95
of the Taproot leaf script that will be signed. If the aggregate key is the Taproot internal key or
95
96
the Taproot output key, then the tapleaf hash must be omitted. Note that the compressed participant public key must be
96
97
the Taproot output key or found in a script. It is not the internal key nor the aggregate public key that
@@ -162,7 +163,7 @@ to produce a signature for, if the signer does not find an existing
162
163
the <tt>NonceGen</tt> algorithm (or one of its variations) to produce a public
163
164
nonce that is added in a <tt>PSBT_IN_MUSIG2_PUB_NONCE</tt> field. However
164
165
signers must keep in mind that '''improper nonce usage can compromise private
165
-
keys.''' Please see BIP 327 for best practices on nonce generation and usage.
166
+
keys.''' Please see [[bip-0327.mediawiki|BIP 327]] for best practices on nonce generation and usage.
166
167
167
168
Once all signers have added their <tt>PSBT_IN_MUSIG2_PUB_NONCE</tt> fields, each signer will perform
168
169
the <tt>NonceAgg</tt> algorithm followed by the <tt>Sign</tt> algorithm in order to produce the
@@ -173,15 +174,15 @@ Signers must remember to apply any relevant tweaks such as a tweak that is the r
173
174
BIP 32 unhardened derivation with the aggregate public key as the parent key.
174
175
175
176
If all other signers have provided a <tt>PSBT_IN_MUSIG2_PARTIAL_SIG</tt>, then the final signer may
176
-
perform the <tt>PartialSigAgg</tt> algorithm and produce a BIP 340 compatible signature that can be
177
+
perform the <tt>PartialSigAgg</tt> algorithm and produce a [[bip-0340.mediawiki|BIP 340]] compatible signature that can be
177
178
placed into a <tt>PSBT_IN_TAP_KEY_SIG</tt> or a <tt>PSBT_IN_TAP_SCRIPT_SIG</tt>.
178
179
179
180
===Finalizer===
180
181
181
182
A finalizer may perform the same <tt>PartialSigAgg</tt> step as the final signer if it has not
182
183
already been done.
183
184
184
-
Otherwise, the resulting signature is a BIP 340 compatible signature and finalizers should treat it
185
+
Otherwise, the resulting signature is a [[bip-0340.mediawiki|BIP 340]] compatible signature and finalizers should treat it
0 commit comments