0

I am trying to get the big picture of the bitcoin entities starting from seed to btc receiving addresses in Hierarchical deterministic wallets without being too technical about hash functions or too specific about each entity. If there are other entities (like PKH) that should be included in this "Entities relationship diagram", please let me know.

So trying to summarize the main concepts as I understood them:

  1. Seed is used to generate Master Private Key (and the mnemonic 12/24 words).
  2. From Master Private Key, many child private keys can be derived. Together with the derived public keys, they represent the "accounts" in the wallet-family-bank (ex. My Savings account, My Spending account, My son's account etc)
  3. In order to receive payments to a specific account, the PHK (double hashed public key) or the short version of it (bc1q...) needs to be provided to the payer.

Now my question is: Is it possible to have multiple receiving addresses (bc1q) related to the same PHK, thus to the same account? As per my understanding from practical experience with Ledger, it is so, but after reading Grokking Bitcoin I got a bit confused. Big Picture. Entities relationship

2 Answers 2

1

Read BIP39 then BIP32 then BIP44

Seed is used to generate Master Private Key (and the mnemonic 12/24 words).

Better way to think, convert the entropy to a BIP39 mnemonic. Use that mnemonic plus a (technically optional but no) passphrase as the inputs to produce the BIP39 numeric seed. End of BIP39.

The BIP39 numeric seed is used to derive the extended master private key (aka master xprv or BIP32 root key, corresponds to the root node "m")

That xprv includes the master private key plus the chain code

and from that master xprv is derived every child xprv for a given derivation path in the tree below.

The public key and address are derived from the private key. Only extended keys (with a chain code) can derive children.

Accounts are at level 4, so #7 below

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

e.g. m/44'/0'/7'/change/index

Now my question is: Is it possible to have multiple receiving addresses (bc1q) related to the same PHK, thus to the same account?

Thus, no, 1:1 with the keypair

4
  • thanks for the clear answer. I get it. Now suppose I have a Ledger HD Wallet with 1 account m/44'/0'/0' I received two payments on two different addresses. What did the ledger do behind the screen to generate the 2 addresses associated to same account and how? My understanding is that from the extended private key of the account m/44'/0'/0' a new child private key is generated and from it is derived a new child public key and its PKH with the human readable address. So I get smth like this: m/44'/0'/7'/0/0 --> bc1q ** first address** m/44'/0'/7'/0/1 --> bc1q second address
    – Tao
    Feb 25, 2022 at 11:19
  • the addresses are children of change (internal vs external)
    – HansBKK
    Feb 26, 2022 at 6:03
  • they get derived with incrementing index values
    – HansBKK
    Feb 26, 2022 at 6:03
  • ok, after reading again the BIP 32 39 and 44, I finally got it. Reading the same concept with different words, helped me a lot. BITCOIN is quite a long and beautiful puzzle to solve :) it seems it's neverending.
    – Tao
    Feb 26, 2022 at 15:49
0

No, there is a one-to-one relationship between the public key hash and the address. The address is not a short form of the hash, it is actually a human readable form of the hash. The address is an encoding of the hash (and a bit of extra data indicating what to do with it) itself, so there is only one address per public key hash.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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