1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-08-24 18:47:19 +00:00

BIP-327: correct PartialSigAgg session-value unpacking and a typo (#2260)

* BIP-327: correct PartialSigAgg session-value unpacking and a typo

Co-authored-by: Jon Atack <jon@atack.com>
This commit is contained in:
SatsAndSports
2026-08-19 22:53:39 +02:00
committed by GitHub
parent c2008a0663
commit eba8e50cb6

View File

@@ -10,7 +10,7 @@
License: BSD-3-Clause
Discussion: 2022-04-05: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-April/020198.html [bitcoin-dev] MuSig2 BIP
2022-10-11: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-October/021000.html [bitcoin-dev] MuSig2 BIP
Version: 1.0.3
Version: 1.0.4
</pre>
== Introduction ==
@@ -483,7 +483,7 @@ Algorithm ''PartialSigVerify(psig, pubnonce<sub>1..u</sub>, pk<sub>1..u</sub>, t
** The tweaks ''tweak<sub>1..v</sub>'': ''v'' 32-byte arrays
** The tweak modes ''is_xonly_t<sub>1..v</sub>'' : ''v'' booleans
** The message ''m'': a byte array<ref name="mlen" />
** The index of the signer ''i'' in the of public nonces and individual public keys with ''0 < i &le; u''
** The index of the signer ''i'' in the public nonces and individual public keys with ''0 < i &le; u''
* Let ''aggnonce = NonceAgg(pubnonce<sub>1..u</sub>)''; fail if that fails
* Let ''session_ctx = (aggnonce, u, pk<sub>1..u</sub>, v, tweak<sub>1..v</sub>, is_xonly_t<sub>1..v</sub>, m)''
* Run ''PartialSigVerifyInternal(psig, pubnonce<sub>i</sub>, pk<sub>i</sub>, session_ctx)''
@@ -513,7 +513,7 @@ Algorithm ''PartialSigAgg(psig<sub>1..u</sub>, session_ctx)'':
** The number ''u'' of signatures with ''0 < u < 2^32''
** The partial signatures ''psig<sub>1..u</sub>'': ''u'' 32-byte arrays
** The ''session_ctx'': a [[#session-context|Session Context]] data structure
* Let ''(Q, _, tacc, _, _, R, e) = GetSessionValues(session_ctx)''; fail if that fails
* Let ''(Q, _, tacc, _, R, e) = GetSessionValues(session_ctx)''; fail if that fails
* For ''i = 1 .. u'':
** Let ''s<sub>i</sub> = int(psig<sub>i</sub>)''; fail if ''s<sub>i</sub> &ge; n'' and blame signer ''i'' for invalid partial signature.
* Let ''g = 1'' if ''has_even_y(Q)'', otherwise let ''g = -1 mod n''
@@ -782,6 +782,8 @@ An exception to this rule is <code>MAJOR</code> version zero (0.y.z) which is fo
The <code>MINOR</code> version is incremented whenever the inputs or the output of an algorithm changes in a backward-compatible way or new backward-compatible functionality is added.
The <code>PATCH</code> version is incremented for other changes that are noteworthy (bug fixes, test vectors, important clarifications, etc.).
* '''1.0.4''' (2026-08-19):
** Fix two minor bugs in the specification of ''PartialSigAgg''.
* '''1.0.3''' (2026-01-05):
** Fix minor bugs in the specification of ''DeterministicSign''.
* '''1.0.2''' (2024-07-22):