I was looking through some code for HD Wallets and I saw that they used curve param.N which is specific for whichever curve is used.

Does this mean that when using HD Wallets to derive Private keys, they also need to account for the curve?

I know that they need to account for the curve when going from private to public. However, let's say that we were only deriving child private keys, can this be done without knowledge of the curve?


You can only do that if you are deriving hardened keys. For non-hardenend keys, you still need to know the curve as a public key is calculated for non-hardened derivation in order to derive the next private key.

Note that hardened derivation means that you will not be able to derive public keys from a master public key.

  • Oh I see, you cannot derive public keys from a master key, because they use different index numbers and the generation of private keys using BIP44 can be done without the curve, however because non-hardened keys require a public key, a curve is needed. Thanks Chow May 1 '18 at 17:43

The short answer is yes. The examples below are referenced to a higher level libbitcoin framework command line interface.

For a working example see the Bitcoin HD wallet key synthesis example that uses the secp256k1 curve and the Monero HD wallet key synthesis example. Monero uses ed25519 digital signature technology for public key and address synthesis, not secp256k1.

Also note that current BIP 32 standard implicitly has secp256k1 technology embedded within it. State of the art BIP 32 extensions, may be expanding BIP 32 to support other elliptic curves. I believe the Tezos Community was to create such an implementation. Have not kept up with this topic...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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