mirror of
https://github.com/bitcoinbook/bitcoinbook
synced 2025-06-25 09:22:38 +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.
|
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)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user