In #13557#pullrequestreview-135905054 I recommended not including bip32 deriviation by default in PSBTs:
Bit of a privacy issue: let’s say person A and B are about to spend from a multisig address, sending everything to person A. Person A gives their address to person B, their wallet wallet creates a PSBT, but doesn’t sign it. Wallet A then calls
walletprocesspsbt
which signs it and spontaneously adds the master_fingerprint and bip32 path. Same issue withwalletcreatefundedpsbt
.Adding
bip32_derivs
should probably be opt-in.
In practice I find this default quite annoying because I forget it and end up with a confused hardware wallet.
More importantly, in the multisig example I provided, it’s actually essential for the other side to know the derivation details (in addition to an xpub). This allows them to check that change is going to an address you can still co-sign for (because the spending policy is unchanged except for an index).