Let's consider a scenario: I have a master xprv named xprv1, and I derived an xprv named xprv2 at m/99/88h. Now, I want to use xprv2 to create a new multi-sig wallet, intending to use m/99/88h/0/* as my keys.
As per the specification, I am required to place the full path (e.g., m/99/88h/0/0) at the BIP32 derivation path, and the fingerprint of xprv1 as the master fingerprint.
This introduces a couple of challenges:
- If the signing device only has xprv2 (not the root xprv1), I cannot find the matching BIP32 derivation to sign.
- Cosigners cannot verify signatures of xpub2 due to the same problem mentioned above.
Questions:
- Why is this rule of providing the full path from the master key enforced in Output Descriptor BIP380 (as key origin information) and PSBT BIP174?
- Is it a strict rule (MUST) or an optional one?
- Are we allowed to use 0/0 as the path and the fingerprint of xprv2 as the master fingerprint?
Note: The JavaScript BIP32 library does not permit the use of the fingerprint of xprv2 as the master fingerprint.
- Are both paths (m/99/88h/0/0 and 99/88h/0/0) considered valid? I have observed both in a few PSBTs generated by different libraries.
- If the answer to the above is yes, what is the purpose of the master key marker 'm'?