Author: Kabuto Samourai 2017-09-05 19:00:04
Published on: 2017-09-05T19:00:04+00:00
Bitcoin developers are proposing a change to the version bits of the HD serialization that will inform the receiving utility about the exact derivation method used for the pubkeys. Third parties who handle xpubs must not require additional information from the user regarding the derivation path or serialization format of the addresses under that xpub. Avoiding a total UX nightmare is in everyone's interests. When exporting a root master HD seed, encoding the {x,y,z}{pub,prv} distinctions makes no sense, as the root seed should derive all paths for all coins. Wallets may need additional code to discover which paths have been used when importing a root seed. However, when exporting/importing an account-level seed for watch-only and receive address generation, changing the serialization version bytes is appropriate and essential to avoid loss of funds. The Electrum approach is nice but may not go far enough, as xpub and zpub both list "P2PKH or P2SH." It is suggested that expanding the number of version prefixes to eliminate the ambiguity may be more useful.In response to Luke Dashjr's suggestion that it seems desirable to use the same seed for all different script formats, Thomas Voegtlin stated that this does not seem desirable to everybody. To guarantee that users can recover all their funds from their mnemonic seed, wallets must implement all script formats, even the ones that are deprecated. In addition, the list of script formats that must be supported is not defined in advance, but it keeps growing, making wallet implementation increasingly difficult. In the long run, seed portability is guaranteed to fail in such a system. Voegtlin also disagreed with Dashjr's statement that xpub/xprv are already being used for both P2PKH and P2SH, saying that this has already resulted in users receiving coins on addresses they do not control.
Updated on: 2023-06-12T18:03:49.733176+00:00