From eba8e50cb66d436c65c6bc8b0a175b643effe9d3 Mon Sep 17 00:00:00 2001 From: SatsAndSports Date: Wed, 19 Aug 2026 22:53:39 +0200 Subject: [PATCH] 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 --- bip-0327.mediawiki | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bip-0327.mediawiki b/bip-0327.mediawiki index 2ed08ba7..117d6c7b 100644 --- a/bip-0327.mediawiki +++ b/bip-0327.mediawiki @@ -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 == Introduction == @@ -483,7 +483,7 @@ Algorithm ''PartialSigVerify(psig, pubnonce1..u, pk1..u, t ** The tweaks ''tweak1..v'': ''v'' 32-byte arrays ** The tweak modes ''is_xonly_t1..v'' : ''v'' booleans ** The message ''m'': a byte array -** The index of the signer ''i'' in the of public nonces and individual public keys with ''0 < i ≤ u'' +** The index of the signer ''i'' in the public nonces and individual public keys with ''0 < i ≤ u'' * Let ''aggnonce = NonceAgg(pubnonce1..u)''; fail if that fails * Let ''session_ctx = (aggnonce, u, pk1..u, v, tweak1..v, is_xonly_t1..v, m)'' * Run ''PartialSigVerifyInternal(psig, pubnoncei, pki, session_ctx)'' @@ -513,7 +513,7 @@ Algorithm ''PartialSigAgg(psig1..u, session_ctx)'': ** The number ''u'' of signatures with ''0 < u < 2^32'' ** The partial signatures ''psig1..u'': ''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 ''si = int(psigi)''; fail if ''si ≥ 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 MAJOR version zero (0.y.z) which is fo The MINOR 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 PATCH 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):