CH05::best practices/using wallet: remove these sections

The previous version of this chapter focused on a single set of
technologies: BIP32 HD wallets, BIP39 seeds, and BIP43/44 paths.  The
previous Best Practices section described these as a de facto standard.

In the rewrite of this chapter, we've introduced several alternatives
for BIP39 seeds and BIP43/44 paths, all of which are good practices.  I
have my opinions about what might best, but I think it's entirely
possible for a reasonable person to conclude one of the other choices is
best, so we remove that section.

The Using A Wallet section was redundant; we've already introduce all of
those concepts.
develop
David A. Harding 1 year ago
parent c82128839a
commit eb7164212e

@ -581,109 +581,6 @@ increasingly adopting support for explicit paths using descriptors.
Applications which do both will usually conform to the standards for
implicit paths and also provide descriptors.
==== Wallet Best Practices
((("wallets", "best practices for")))((("bitcoin improvement proposals",
"Multipurpose HD Wallet Structure (BIP43)")))As bitcoin wallet
technology has matured, certain common industry standards have emerged
that make bitcoin wallets broadly interoperable, easy to use, secure,
and flexible. These common standards are:
* Mnemonic code words, based on BIP39
* HD wallets, based on BIP32
* Multipurpose HD wallet structure, based on BIP43
* Multicurrency and multiaccount wallets, based on BIP44
These standards may change or may become obsolete by future
developments, but for now they form a set of interlocking technologies
that have become the de facto wallet standard for bitcoin.
The standards have been adopted by a broad range of software and
hardware bitcoin wallets, making all these wallets interoperable. A user
can export a mnemonic generated on one of these wallets and import it in
another wallet, recovering all transactions, keys, and addresses.
((("hardware wallets")))((("hardware wallets", see="also wallets")))Some
example of software wallets supporting these standards include (listed
alphabetically) Breadwallet, Copay, Multibit HD, and Mycelium. Examples
of hardware wallets supporting these standards include (listed
alphabetically) Keepkey, Ledger, and Trezor.
The following sections examine each of these technologies in detail.
[TIP]
====
If you are implementing a bitcoin wallet, it should be built as a HD
wallet, with a seed encoded as mnemonic code for backup, following the
BIP32, BIP39, BIP43, and BIP44 standards, as described in the
following sections.
====
==== Using a Bitcoin Wallet
((("wallets", "using bitcoin wallets")))In <<user-stories>> we
introduced Gabriel, ((("use cases", "web store", id="gabrielfive")))an
enterprising young teenager in Rio de Janeiro, who is running a simple
web store that sells bitcoin-branded t-shirts, coffee mugs, and
stickers.
((("wallets", "types of", "hardware wallets")))Gabriel uses a Trezor
bitcoin hardware wallet (<<a_trezor_device>>) to securely manage his
bitcoin. The Trezor is a simple USB device with two buttons that stores
keys (in the form of an HD wallet) and signs transactions. Trezor
wallets implement all the industry standards discussed in this chapter,
so Gabriel is not reliant on any proprietary technology or single vendor
solution.
[[a_trezor_device]]
.A Trezor device: a bitcoin HD wallet in hardware
image::images/mbc2_0504.png[alt]
When Gabriel used the Trezor for the first time, the device generated a
mnemonic and seed from a built-in hardware random number generator.
During this initialization phase, the wallet displayed a numbered
sequence of words, one by one, on the screen (see
<<trezor_mnemonic_display>>).
[[trezor_mnemonic_display]]
.Trezor displaying one of the mnemonic words
image::images/mbc2_0505.png["Trezor wallet display of mnemonic word"]
By writing down this mnemonic, Gabriel created a backup (see
<<mnemonic_paper_backup>>) that can be used for recovery in the case of
loss or damage to the Trezor device. This mnemonic can be used for
recovery in a new Trezor or in any one of the many compatible software
or hardware wallets. Note that the sequence of words is important, so
mnemonic paper backups have numbered spaces for each word. Gabriel had
to carefully record each word in the numbered space to preserve the
correct sequence.
[[mnemonic_paper_backup]]
.Gabriel's paper backup of the mnemonic
[cols="<1,^50,<1,^50", width="80%"]
|===
|*1.*| _army_ |*7.*| _garbage_
|*2.*| _van_ |*8.*| _claim_
|*3.*| _defense_ |*9.*| _echo_
|*4.*| _carry_ |*10.*| _media_
|*5.*| _jealous_ |*11.*| _make_
|*6.*| _true_ |*12.*| _crunch_
|===
[NOTE]
====
A 12-word mnemonic is shown in <<mnemonic_paper_backup>>, for
simplicity. In fact, most hardware wallets generate a more secure
24-word mnemonic. The mnemonic is used in exactly the same way,
regardless of length.
====
For the first implementation of his web store, Gabriel uses a single
Bitcoin address, generated on his Trezor device. This single address is
used by all customers for all orders. As we will see, this approach has
some drawbacks and can be improved upon with an HD wallet.((("",
startref="gabrielfive")))
=== Wallet Technology Details
Let's now examine each of the important industry standards that are used

Loading…
Cancel
Save