1

"Not your keys, not your coins" is common mantra. I thought all I needed to do was to safeguard my private keys (via hardware wallet, cold storage) to be able to reconstitute my BTC at any point in the future. However, I recently read an, admittedly pretty old, article stating that this is not sufficient; that I must also safeguard my derivation path in order to reconstitute a wallet in the future.

I have several questions related to this:

  1. Generally speaking, is this because different derivation paths can yield, ultimately, different public keys, and thus if I don't have my derivation path saved, I may be unable to reconstitute a wallet that reaches the addresses of my UTXOs?
  2. If so, how can I A. obtain the derivation path from my hardware wallet and B. how is this typically stored?
  3. How does this play in with multisig? The article indicates the order of the multisig set up can change the derivation path. Is this similar to me needing to 'keep track of UTXOs' when it comes to multisig? I have heard this often before but am not really sure what is means; do I need to keep a list of all the public addresses associated with the multisig? Is simply a list of the addresses sufficient? What if the wallets are from different manufacturers? Do they have different derivation paths?
  4. Why is this not talked about more? A random tweet I saw today was the first time I've heard of this.

3 Answers 3

3

I think if you’re using a wallet that uses BIP39 and BIP 44 standards (many popular wallets do), then the derivation path is standardized. That was a major benefit of those BIPs vs every wallet doing something different.

0
1
  1. Generally speaking, is this because different derivation paths can yield, ultimately, different public keys, and thus if I don't have my derivation path saved, I may be unable to reconstitute a wallet that reaches the addresses of my UTXOs?

Yes. BIP 32 allows for up to 255 path indexes, with each index having 2^32 possible values. It would be impossible to do a simple brute force search. So you would need to store the derivation paths used.

Note that "store" doesn't necessarily require actually storing them. Simply knowing or remembering the wallet software and version that was used to create your wallet may be sufficient. These are often documented, although perhaps not well. https://walletsrecovery.org/ attempts to document the default derivation paths for a large variety of wallets.

You may notice that many of those wallets use the same paths. This is due to standardization efforts with BIPs 44, 49, 84, and 86 which specified some standard derivation paths for single key addresses. It's usually good enough to start there when searching. But there are wallets that do unusual and non-standardized things with derivation paths, so you'll need to confirm the paths that they use with their documentation or even source code.

Some wallets are now also adopting the use of output script descriptors. These descriptors can specify the derivation paths used directly, thereby removing the guesswork required. If your backup consisted of descriptors, then the derivation paths would be stored explicitly.

  1. If so, how can I A. obtain the derivation path from my hardware wallet and B. how is this typically stored?

Hardware wallets themselves do not store derivation paths. They generally don't actually have a mechanism for "get a new address" that would require a default set of derivation paths. Rather they rely on the wallet software to do that. The wallet software asks the hardware wallet to do operations with the key at a particular derivation path, and so the derivation paths used is determined by that wallet software.

  1. How does this play in with multisig? The article indicates the order of the multisig set up can change the derivation path. Is this similar to me needing to 'keep track of UTXOs' when it comes to multisig? I have heard this often before but am not really sure what is means; do I need to keep a list of all the public addresses associated with the multisig? Is simply a list of the addresses sufficient? What if the wallets are from different manufacturers? Do they have different derivation paths?

Multisigs also have some standard derivation paths, although less so. Both BIPs 45 and 48 do this. You also need to know the derivation paths for your co-signers. However multisigs are also more complicated in that the order of keys in the multisig is important. In some multisig constructions, the order of the keys does also determine the derivation path to use.

As with the single key addresses, the derivation paths used all comes down to the wallet software being used. You will need to investigate the wallet software in order to know what derivation paths and ordering it actually uses. But as with single key addresses, the use of output script descriptors would alleviate these issues as those descriptors would also contain the derivation paths used and the order of the keys.

0

Different cryptocurrencies, like Bitcoin, use hierarchical deterministic (HD) wallets that generate a tree-like structure of key pairs from a single seed phrase (usually 12 or 24 words). These key pairs are derived from the seed through a process specified by the derivation path. Each key pair in the tree corresponds to a specific address and its associated private key. The derivation path is a set of parameters used to derive the keys, and slight changes in the derivation path can result in different public keys being generated. Therefore, if you don't have the correct derivation path, you might not be able to reconstitute your wallet and access the funds associated with its addresses.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.