5

If we take for example bread wallet.

There is one mnemonic to remember, which means one private key?

But when you use the app, your public address constantly changes.

So more than one public key?

How is this possible?

Kyle Graham
  • 662
  • 8
  • 23

1 Answers1

11

No, there is not one private key. There is one Master private key. The master private key is then used to generate more private keys in a deterministic fashion, i.e. using the same master private key, you will generate the same private keys. Those private keys are what are actually used in your wallet. Their public keys are generated and the addressees calculated from there.

The mnemonic is an encoding for a seed value. That seed is then converted into the master private key. The specification for the mnemonic generation and conversion is BIP 39. Deriving private keys from a master private key is specified in BIP 32.

Andrew Chow
  • 67,209
  • 5
  • 76
  • 149
  • "Deriving private keys from a master public key is specified in BIP 32." I can derive private keys from a master public key? Thanks for the answer by the way Andrew :) – Kyle Graham Jan 16 '18 at 13:24
  • Hehe, oops. There's actually a way to derive the master private key from a master public key if you know one of the child keys and non-hardened derivation was used. – Andrew Chow Jan 16 '18 at 17:58
  • Really? This is the type of information that would elude a newby creating a wallet service, but not an experienced hacker. Thanks for the knowledge, Andrew! – Kyle Graham Jan 16 '18 at 20:55