Subject: [bitcoin-dev] MuSig2 derivation, descriptor, and PSBT field BIPs

From: Ava Chow <[email-masked]>
Date: Mon, 15 Jan 2024 23:29:46 +0000

Hi All,

In October I sent the MuSig2 descriptor and PSBT field BIPs to the list. 
Since then, I've made a few changes to the BIPs and am looking for 
feedback on these.

The most significant change is the addition of third BIP which describes 
how the synthetic xpubs are constructed and derived. This is split from 
the descriptors BIP as I felt that the PSBT fields BIP needed to 
reference this process too, and referencing the descriptors BIP for that 
seemed a bit odd.

Otherwise, the descriptors BIP is unchanged, although I am open to 
Salvatore's suggestion of dropping the ranged derivation within the 
expression and only allow ranged derivation of the aggregate pubkey itself.

I've also made a change to the PSBT fields BIP where the aggregate 
pubkey is included as a plain pubkey rather than as xonly. I think this 
change is necessary for to make discovering derived keys easier. The 
derivation paths for derived keys contain the fingerprint of the parent 
(i.e. the aggregate pubkey) and the fingerprint requires the evenness 
bit to be serialized. So the aggregate pubkey in the PSBT fields need to 
contain that evenness information in order for something looking at only 
the PSBT to be able to determine whether a key is derived from an 
aggregate pubkey also specified in the PSBT.

The full text of the BIPs can be found at the following:
* Derivation: 
https://github.com/achow101/bips/blob/musig2/bip-musig2-derivation.mediawiki
* Descriptors: 
https://github.com/achow101/bips/blob/musig2/bip-musig2-descriptors.mediawiki
* PSBT: 
https://github.com/achow101/bips/blob/musig2/bip-musig2-psbt.mediawiki

Thanks,
Ava Chow