2

So you startup your ledger, copy down your 24 words, and you now have a public and private key. (I think). Now you add the BitCoin App to your Ledger and you can add BTC to your "hardware wallet" using those keys. (Though phrasing it that way is a bit of a misnomer since the only thing your Ledger ever really stores is your private/public keys.)

So far so good for one currency. However, a Ledger will hold multiple currencies. That I can find there is no asking for another 24 words. You just add the second app and you now have a wallet in that new currency. So I assume that means that if you purchase Ethereum coins it is going to use the same public/private keys that you used on BitCoin?

That would also imply that you cannot have two BitCoin wallets on the same Ledger because attempting to do so wouldn't make sense without a second set of keys which the Ledger doesn't have.

Is what I am saying correct?

Frank

0

You've discovered that with a Hierarchical Deterministic wallet like the Ledger, a single 24-word phrase can be used to derive (essentially) infinite public/private key pairs and addresses.

This standard is a combination of:

BIP32 - HD Wallets

BIP39 - Mnemonic code and

BIP44 - Multi-account hierarchy

Notice that BIP44 takes that seed phrase and standardizes a series of values that make up a "path" from the seed phrase to a specific key:

m / purpose' / coin_type' / account' / change / address_index

That coin_type value I believe is the answer to your question.

Satoshi Labs (developer of the Trezor hardware wallet) maintains a list of values for the coin_type field here: https://github.com/satoshilabs/slips/blob/master/slip-0044.md

This list is accepted as standard by many hardware wallet manufacturers and cryptocurrency software developers although it's important to note that there are no consensus rules around it - just compatibility standards between wallet applications.

SO, starting with your BIP39 seed phrase and using BIP32 derivation you can compute the first Bitcoin receive address for account 0 at this BIP44 path:

m/44'/0'/0'/0/0

Similarly, your first Ethereum private key will be computed from this path:

m/44'/60'/0'/0/0

That's how the keys for different currencies are all derived from the same single source of entropy.

The reason Ledger has this concept of "apps" is that many of these altcoins do not use the same signature scheme or transaction message digest as Bitcoin. So although the series of private keys for each currency can be computed arbitrarily by the device itself, once you have the key you need additional software for each use case to instruct the device what to do with that key.

| improve this answer | |
  • A mostly understandable reply, though it would probably take me a couple of weeks to understand it all. I scanned the three "standards" you pointed me at. Again, it would take me weeks to fully understand them, if, for instance, I was writing cryptocurrency software of some kind. Having said that, you answered my question and several more I hadn't thought to share yet. Thank you! – Frank Merrow Jun 2 at 22:06

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.