diff --git a/ch01_intro.adoc b/ch01_intro.adoc index 65a8fc37..b3ac60eb 100644 --- a/ch01_intro.adoc +++ b/ch01_intro.adoc @@ -158,7 +158,7 @@ Bitcoin wallets are one of the most actively developed applications in the Bitco ===== Types of Bitcoin wallets Bitcoin wallets can be categorized as follows, according to the platform: -Desktop wallet:: A desktop wallet was the first type of Bitcoin wallet created as a reference implementation and many users run desktop wallets for the features, autonomy, and control they offer. Running on general-use operating systems such as Windows and Mac OS has certain security disadvantages, however, as these platforms are often insecure and poorly configured. +Desktop wallet:: A desktop wallet was the first type of Bitcoin wallet created as a reference implementation and many users run desktop wallets for the features, autonomy, and control they offer. Running on general-use operating systems such as Windows and macOS has certain security disadvantages, however, as these platforms are often insecure and poorly configured. Mobile wallet:: A mobile wallet is the most common type of Bitcoin wallet. Running on smart-phone operating systems such as Apple iOS and @@ -192,12 +192,11 @@ the security and privacy offered by that paired wallet plays a critical role in how much security and privacy the user obtains when using the hardware signing device. -===== Full-node vs. Lightweight +===== Full node versus Lightweight Another way to categorize Bitcoin wallets is by their degree of autonomy and how they interact with the Bitcoin network: -Full-node:: A full node is a program that validates the -entire history of Bitcoin transactions (every transaction by every user, -ever). Optionally, full nodes can also store previously validated +Full node:: A full node is a program that validates the +entire history of Bitcoin transactions (every transaction by every user, ever). Optionally, full nodes can also store previously validated transactions and serve data to other Bitcoin programs, either on the same computer or over the internet. A full node uses substantial computer resources--about the same as watching an hour-long streaming @@ -213,20 +212,20 @@ creates outgoing transactions. Third-party API client:: A third-party API client is one that interacts with Bitcoin through a third-party -system of application programming interfaces (APIs), rather than by +system of APIs, rather than by connecting to the Bitcoin network directly. The wallet may be stored by the user or by third-party servers, but the client trusts the remote server to provide it with accurate information and protect its privacy. [TIP] ==== -Bitcoin is a Peer-to-Peer (P2P) network. Full nodes are the _peers:_ +Bitcoin is a peer-to-peer (P2P) network. Full nodes are the _peers:_ each peer individually validates every confirmed transaction and can provide data to its user with complete authority. Lightweight wallets and other software are _clients:_ each client depends on one or more peers to provide it with valid data. Bitcoin clients can perform secondary validation on some of the data they receive and make connections to -multiple peers to reduce their depedence on the integrity of a single +multiple peers to reduce their dependence on the integrity of a single peer, but the security of a client ultimately relies on the integrity of its peers. ==== @@ -235,8 +234,8 @@ its peers. A very important additional consideration is _who controls the keys_. As we will see in subsequent chapters, access to bitcoins is -controlled by "private keys", which are like very long PIN numbers. If -you are the only one to have *control* over these private +controlled by "private keys," which are like very long PINs. If +you are the only one to have control over these private keys, you are in control of your bitcoins. Conversely, if you do not have control, then your bitcoins are managed by a third-party who ultimately controls your funds on your behalf. Key management software falls into two @@ -267,7 +266,7 @@ and installs it on her phone. When Alice runs her wallet application for the first time, she chooses the option to create a new Bitcoin wallet. Because the wallet she has -chosen is a non-custodial wallet, Alice (and only Alice) will be in +chosen is a noncustodial wallet, Alice (and only Alice) will be in control of her keys. Therefore, she bears responsibility for backing them up, since losing the keys means she loses access to her bitcoins. To facilitate this, her wallet produces a _recovery code_ that can be used @@ -276,7 +275,7 @@ to restore her wallet. [[recovery_code_intro]] ==== Recovery Codes -Most modern non-custodial Bitcoin wallets will provide a _recovery +Most modern noncustodial Bitcoin wallets will provide a _recovery code_ for their user to back up. The recovery code usually consists of numbers, letters, or words selected randomly by the software, and is used as the basis for the keys @@ -284,7 +283,7 @@ that are generated by the wallet. See <> for examples. [[recovery_code_sample]] -.Sample Recovery Codes +.Sample recovery codes [cols="1,1"] |=== | Wallet | Recovery code @@ -301,11 +300,11 @@ examples. [TIP] ==== -A recovery code is sometimes called a "mnemonic" or "mnemonic phrase", +A recovery code is sometimes called a "mnemonic" or "mnemonic phrase," which implies you should memorize the phrase, but writing the phrase down on paper takes less work and tends to be more reliable than most people's memories. Another alternative name is "seed phrase" because -it provides the input ("seed") to the function which generates all of +it provides the input ("seed") to the function that generates all of a wallet's keys. ==== @@ -323,8 +322,7 @@ wallets provide an additional backup feature beyond recovery codes. For some wallets, that additional backup feature is even more important today than it used to be. Many Bitcoin payments are now made using -_offchain_ technology, where not every payment is stored in the public block -chain. This reduces users costs and improves privacy, among other +_offchain_ technology, where not every payment is stored in the public blockchain. This reduces user's costs and improves privacy, among other benefits, but it means that a mechanism like recovery codes that depends on onchain data can't guarantee recovery of all of a user's bitcoins. For applications with offchain support, it's important to make frequent @@ -350,9 +348,9 @@ asks for your recovery code any other time, consult with an expert to ensure you aren't being phished. ==== -==== Bitcoin addresses +==== Bitcoin Addresses -Alice is now ready to start using her new Bitcoin wallet. Her wallet application randomly generated a private key (described in more detail in <>) which will be used to derive Bitcoin addresses that direct to her wallet. At this point, her Bitcoin addresses are not known to the Bitcoin network or "registered" with any part of the Bitcoin system. Her Bitcoin addresses are simply numbers that correspond to her private key that she can use to control access to the funds. The addresses are generated independently by her wallet without reference or registration with any service. +Alice is now ready to start using her new Bitcoin wallet. Her wallet application randomly generated a private key (described in more detail in <>) that will be used to derive Bitcoin addresses that direct to her wallet. At this point, her Bitcoin addresses are not known to the Bitcoin network or "registered" with any part of the Bitcoin system. Her Bitcoin addresses are simply numbers that correspond to her private key that she can use to control access to the funds. The addresses are generated independently by her wallet without reference or registration with any service. [TIP] ==== @@ -371,7 +369,7 @@ should generate a new invoice with a new address each time you request a payment. ==== -==== Receiving bitcoin +==== Receiving Bitcoin Alice uses the _Receive_ button, which displays a QR code, shown in <>. @@ -434,7 +432,7 @@ Bitcoin, like most other currencies, has a _floating exchange rate_. That means There are hundreds of applications and websites that can provide the current market rate. Here are some of the most popular: https://bitcoinaverage.com/[Bitcoin Average]:: A site that provides a simple view of the volume-weighted-average for each currency. -https://coincap.io/[CoinCap]:: A service listing the market capitalization and exchange rates of hundreds of crypto-currencies, including bitcoins. +https://coincap.io/[CoinCap]:: A service listing the market capitalization and exchange rates of hundreds of cryptocurrencies, including bitcoins. https://www.cmegroup.com/markets/cryptocurrencies/cme-cf-cryptocurrency-benchmarks.html?redirect=/trading/cryptocurrency-indices/cf-bitcoin-reference-rate.html[Chicago Mercantile Exchange Bitcoin Reference Rate]:: A reference rate that can be used for institutional and contractual reference, provided as part of investment data feeds by the CME. In addition to these various sites and applications, some bitcoin @@ -455,8 +453,7 @@ scanner. This allows Joe to scan the barcode with his smartphone camera so that he doesn't have to type in Alice's Bitcoin address, which is quite long. -Joe now has Alice's Bitcoin address set as the recipient. Joe enters the -amount as 0.001 bitcoins (BTC), see <>. Some wallets may +Joe now has Alice's Bitcoin address set as the recipient. Joe enters the amount as 0.001 bitcoins (BTC); see <>. Some wallets may show the amount in a different denomination: 0.001 BTC is 1 millibitcoin (mBTC) or 100,000 satoshis (sats).