1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2025-06-25 01:18:59 +00:00

CH05::hd wallets: rename and moderately edit

- Rename to HD Key Generation to avoid confusing use of the term
  "wallet"

- Remove detail that's now redundant thanks to the introduction of the
  newly added previous sections.

- Lightly edit the rest.
This commit is contained in:
David A. Harding 2023-02-17 21:47:18 -10:00
parent 40fd08c4b4
commit ab15f629a1

View File

@ -171,38 +171,30 @@ applications use one more trick to provide a tree of keys instead a
single sequence. single sequence.
[[hd_wallets]] [[hd_wallets]]
==== HD Wallets (BIP32/BIP44) ==== Hierarchical Deterministic (HD) Key Generation (BIP32)
((("wallets", "types of", "hierarchical deterministic (HD) Every modern Bitcoin wallet of which we're aware uses Hierarchical
wallets")))((("hierarchical deterministic (HD) wallets")))((("bitcoin Deterministic (HD) key generation by default. This standard, defined in
improvement proposals", "Hierarchical Deterministic Wallets BIP32, uses deterministic key generation and optional public child key
(BIP32/BIP44)")))Deterministic wallets were developed to make it easy derivation with an algorithm that produces a tree of keys.
to derive many keys from a single "seed." The most advanced form of In this tree, any key can be the parent of a sequence of child keys, and
deterministic wallets is the HD wallet defined by the BIP32 standard. any of those child keys can be a parent for another sequence of
HD wallets contain keys derived in a tree structure, such that a parent child keys (grandchildren of the original key). There's no arbitrary
key can derive a sequence of children keys, each of which can derive a limit on the depth of the tree. This tree structure is illustrated in
sequence of grandchildren keys, and so on, to an infinite depth. This <<Type2_wallet>>.
tree structure is illustrated in <<Type2_wallet>>.
[[Type2_wallet]] [[Type2_wallet]]
.Type-2 HD wallet: a tree of keys generated from a single seed .HD wallet: a tree of keys generated from a single seed
image::images/mbc2_0503.png["HD wallet"] image::images/mbc2_0503.png["HD wallet"]
HD wallets offer two major advantages over random (nondeterministic) The tree structure can be used to express additional
keys. First, the tree structure can be used to express additional
organizational meaning, such as when a specific branch of subkeys is organizational meaning, such as when a specific branch of subkeys is
used to receive incoming payments and a different branch is used to used to receive incoming payments and a different branch is used to
receive change from outgoing payments. Branches of keys can also be used receive change from outgoing payments. Branches of keys can also be used
in corporate settings, allocating different branches to departments, in corporate settings, allocating different branches to departments,
subsidiaries, specific functions, or accounting categories. subsidiaries, specific functions, or accounting categories.
The second advantage of HD wallets is that users can create a sequence We'll provide a detailed exploration of HD wallets in <<hd_wallet_details>>.
of public keys without having access to the corresponding private keys.
This allows HD wallets to be used on an insecure server or in a
receive-only capacity, issuing a different public key for each
transaction. The public keys do not need to be preloaded or derived in
advance, yet the server doesn't have the private keys that can spend the
funds.
==== Seeds and Mnemonic Codes (BIP39) ==== Seeds and Mnemonic Codes (BIP39)