If Two Cryptocurrencies use different curves, Can They be in the same HD Wallet?


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?

Kyle Graham

Posted 2018-05-01T13:17:20.777

Reputation: 542



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.

Andrew Chow

Posted 2018-05-01T13:17:20.777

Reputation: 50 267

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 – Kyle Graham – 2018-05-01T17:43:55.777


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...


Posted 2018-05-01T13:17:20.777

Reputation: 2 751