1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-11-15 12:39:01 +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.
[[hd_wallets]]
==== HD Wallets (BIP32/BIP44)
==== Hierarchical Deterministic (HD) Key Generation (BIP32)
((("wallets", "types of", "hierarchical deterministic (HD)
wallets")))((("hierarchical deterministic (HD) wallets")))((("bitcoin
improvement proposals", "Hierarchical Deterministic Wallets
(BIP32/BIP44)")))Deterministic wallets were developed to make it easy
to derive many keys from a single "seed." The most advanced form of
deterministic wallets is the HD wallet defined by the BIP32 standard.
HD wallets contain keys derived in a tree structure, such that a parent
key can derive a sequence of children keys, each of which can derive a
sequence of grandchildren keys, and so on, to an infinite depth. This
tree structure is illustrated in <<Type2_wallet>>.
Every modern Bitcoin wallet of which we're aware uses Hierarchical
Deterministic (HD) key generation by default. This standard, defined in
BIP32, uses deterministic key generation and optional public child key
derivation with an algorithm that produces a tree of keys.
In this tree, any key can be the parent of a sequence of child keys, and
any of those child keys can be a parent for another sequence of
child keys (grandchildren of the original key). There's no arbitrary
limit on the depth of the tree. This tree structure is illustrated in
<<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"]
HD wallets offer two major advantages over random (nondeterministic)
keys. First, the tree structure can be used to express additional
The tree structure can be used to express additional
organizational meaning, such as when a specific branch of subkeys is
used to receive incoming payments and a different branch is used to
receive change from outgoing payments. Branches of keys can also be used
in corporate settings, allocating different branches to departments,
subsidiaries, specific functions, or accounting categories.
The second advantage of HD wallets is that users can create a sequence
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.
We'll provide a detailed exploration of HD wallets in <<hd_wallet_details>>.
==== Seeds and Mnemonic Codes (BIP39)