mirror of
https://github.com/bitcoin/bips.git
synced 2026-08-24 18:47:19 +00:00
bip389: remove H as valid hardened step indicator
In BIP380 the capital letter H is explicitly defined as an invalid indicator for a hardened step. The "Invalid expression" section has explicit examples prefixed "Invalid hardened indicators" that show "0H/0H/0H" as being wrong.
This commit is contained in:
@@ -38,12 +38,12 @@ For extended keys and their derivations paths in a Key Expression, BIP 380 state
|
||||
This is modified to state:
|
||||
|
||||
* <tt>xpub</tt> encoded extended public key or <tt>xprv</tt> encoded extended private key (as defined in BIP 32)
|
||||
** Followed by zero or more <tt>/NUM</tt> (may be followed by <tt>h</tt>, <tt>H</tt>, or <tt>'</tt> to indicate a hardened step) path elements indicating BIP 32 derivation steps to be taken after the given extended key.
|
||||
** Followed by zero or one <tt>/<NUM;NUM</tt> (each <tt>NUM</tt> may be followed by <tt>h</tt>, <tt>H</tt>, or <tt>'</tt> to indicate a hardened step) path element indicating a tuple of BIP 32 derivation steps to be taken after the given extended key.
|
||||
*** Followed by zero or more <tt>;NUM</tt> (may be followed by <tt>h</tt>, <tt>H</tt>, or <tt>'</tt> to indicate a hardened step) additional tuple values of BIP 32 derivation steps
|
||||
** Followed by zero or more <tt>/NUM</tt> (may be followed by <tt>h</tt> or <tt>'</tt> to indicate a hardened step) path elements indicating BIP 32 derivation steps to be taken after the given extended key.
|
||||
** Followed by zero or one <tt>/<NUM;NUM</tt> (each <tt>NUM</tt> may be followed by <tt>h</tt> or <tt>'</tt> to indicate a hardened step) path element indicating a tuple of BIP 32 derivation steps to be taken after the given extended key.
|
||||
*** Followed by zero or more <tt>;NUM</tt> (may be followed by <tt>h</tt> or <tt>'</tt> to indicate a hardened step) additional tuple values of BIP 32 derivation steps
|
||||
*** Followed by a single <tt>>/</tt>
|
||||
** Followed by zero or more <tt>/NUM</tt> (may be followed by <tt>h</tt>, <tt>H</tt>, or <tt>'</tt> to indicate a hardened step) path elements indicating BIP 32 derivation steps to be taken after the given extended key.
|
||||
** Optionally followed by a single <tt>/*</tt> (may be followed by <tt>h</tt>, <tt>H</tt>, or <tt>'</tt> to indicate a hardened step) final step to denote all direct unhardened or hardened children.
|
||||
** Followed by zero or more <tt>/NUM</tt> (may be followed by <tt>h</tt> or <tt>'</tt> to indicate a hardened step) path elements indicating BIP 32 derivation steps to be taken after the given extended key.
|
||||
** Optionally followed by a single <tt>/*</tt> (may be followed by <tt>h</tt> or <tt>'</tt> to indicate a hardened step) final step to denote all direct unhardened or hardened children.
|
||||
|
||||
When a <tt>/<NUM;NUM;...;NUM></tt> is encountered, parsers should account for a presence of multiple descriptors where the first descriptor uses the first <tt>NUM</tt>, and a second descriptor uses the second <tt>NUM</tt>, and so on, until each <tt>NUM</tt> is accounted for in the production of public keys, scripts, and addresses, as well as descriptor import and export operations.
|
||||
Descriptors that contain multiple Key Expressions that each have a <tt>/<NUM;NUM;...;NUM></tt> must have tuples of exactly the same length so that they are derived in lockstep in the same way that <tt>/*</tt> paths in multiple Key expressions are handled.
|
||||
|
||||
Reference in New Issue
Block a user