Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HD Multisig derivation standard #1072

Merged
merged 25 commits into from Jul 20, 2021
Merged
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion bip-0048.mediawiki
Expand Up @@ -84,7 +84,7 @@ Hardened derivation is used at this level.
===Script===

This level splits the key space into two separate <code>script_type</code>(s). To provide
backward and forward compatibility.
backward compatibility.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have originally added the script_type level for forward compatibility. Specifically to avoid a BIP44/49/84 scenario, that is, to avoid creating a new BIP every time we wanted to use new type of scripts -- instead I thought it's easier to maintain a list of script types.

from spesmilo/electrum#4352 (comment) :

The advantage would be that when new script types come later (e.g. Schnorr-like sigs), no new BIP would be needed.

There is another solution, which is to e.g. hash a descriptor or similar of the script type template to arrive at a derivation path level; then a single BIP would be enough; though that might make disaster-recovery problematic -- but this too requires its own script_type level.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, arguably there is no backward compatibility provided at all. What exactly is this backward compatible with?
I guess you mean the wallets that are using this same spec before it was formally specced (here), but as you don't add anything new, just formalise it, that is just self-referential.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, I have added some simple text around future script types and extensibility in 8a3a8bd, does that work?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, thanks. I personally like this approach better; though I guess it might be subjective. (re new BIP every time vs maintaining list of script types.) I prefer the wording to express the original intention, to explain why it was done like this.


The recommended default is pay to witness script hash <code>m/48'/0'/0'/2'</code>.

Expand Down