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:
parent
40fd08c4b4
commit
ab15f629a1
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user