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?

  • "Mathematics". Like you learned in school. Read up on BIP39 and take it from there. – TomTom Jan 16 '18 at 0:38

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.

  • "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

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.