diff --git a/ch01_intro.adoc b/ch01_intro.adoc index 2317f632..79cb07fd 100644 --- a/ch01_intro.adoc +++ b/ch01_intro.adoc @@ -408,7 +408,7 @@ Here are some methods for acquiring bitcoin as a new user: * Find a friend who has bitcoins and buy some from him or her directly. Many Bitcoin users start this way. This method is the least complicated. One way to meet people with bitcoins is to attend a local Bitcoin meetup listed at pass:[Meetup.com]. * Earn bitcoin by selling a product or service for bitcoin. If you are a programmer, sell your programming skills. If you're a hairdresser, cut hair for bitcoins. * Use a Bitcoin ATM in your city. A Bitcoin ATM is a machine that accepts cash and sends bitcoins to your smartphone Bitcoin wallet. -* Use((("bitcoins", "currency exchanges", id="bitcoin-exchange")))((("currency exchanges", id="currency-exchange"))) a Bitcoin currency exchange linked to your bank account. Many countries now have currency exchanges that offer a market for buyers and sellers to swap bitcoins with local currency. Exchange-rate listing services, such as https://bitcoinaverage.com[BitcoinAverage], often show a list of Bitcoin exchanges for each currency. +* Use a Bitcoin currency exchange linked to your bank account. Many countries now have currency exchanges that offer a market for buyers and sellers to swap bitcoins with local currency. Exchange-rate listing services, such as https://bitcoinaverage.com[BitcoinAverage], often show a list of Bitcoin exchanges for each currency. [TIP] ==== @@ -425,7 +425,7 @@ Bitcoin address is attached to an identity, other associated Bitcoin transactions may also become easy to identify and track--including transactions made earlier. This is one reason many users choose to maintain dedicated exchange accounts independent from -their ((("bitcoins", "currency exchanges", startref="bitcoin-exchange")))((("currency exchanges", startref="currency-exchange")))wallets. +their wallets. ==== Alice was introduced to Bitcoin by a friend, so she has an easy way to acquire her first bitcoins. Next, we will look at how she buys bitcoins from her friend Joe and how Joe sends the bitcoins to her ((("bitcoins", "acquiring", startref="bitcoin-acquire")))((("acquiring bitcoins", startref="acquire-bitcoin")))wallet. @@ -445,8 +445,7 @@ https://coincap.io[CoinCap]:: A service listing the market capitalization and ex https://oreil.ly/ACieC[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 -wallets will automatically convert amounts between bitcoin and other((("bitcoins", "exchange rate", startref="bitcoin-exchange-rate")))((("exchange rate", startref="exchange-rate")))((("current price of bitcoins", startref="current-price"))) -currencies. +wallets will automatically convert amounts between bitcoin and other currencies. [[sending_receiving]] ==== Sending and Receiving Bitcoin diff --git a/ch02_overview.adoc b/ch02_overview.adoc index e2f5b105..13c401f7 100644 --- a/ch02_overview.adoc +++ b/ch02_overview.adoc @@ -174,7 +174,7 @@ bitcoins (inputs) whose value is being spent, in the form of a digital signature from the owner, which can be independently validated by anyone. In Bitcoin terms, spending is signing a transaction that transfers value from a previous -transaction over to a new owner identified by a Bitcoin ((("transactions", "inputs", startref="transaction-input-ch2")))((("transactions", "outputs", startref="transaction-output-ch2")))((("inputs", startref="input")))((("outputs", startref="output")))address. +transaction over to a new owner identified by a Bitcoin address. [[transaction-double-entry]] .Transaction as double-entry bookkeeping. @@ -312,8 +312,7 @@ Finally, another transaction form that is seen often on the blockchain ((("payment batching")))is _payment batching_, which pays to multiple outputs representing multiple recipients (<>). This type of transaction is sometimes used by commercial entities to -distribute funds, such as when processing payroll payments to multiple((("transactions", "common types", startref="transaction-common-ch2"))) -employees. +distribute funds, such as when processing payroll payments to multiple employees. [[transaction-distributing]] .Batch transaction distributing funds. @@ -621,7 +620,7 @@ look like <>. .Alice's transaction as part of a transaction chain from Joe to Gopesh. image::images/mbc3_0208.png["Alice's transaction as part of a transaction chain"] -In this chapter, we((("transactions", "spending bitcoins", startref="transaction-spend2"))) saw how transactions build a chain that moves value +In this chapter, we saw how transactions build a chain that moves value from owner to owner. We also tracked Alice's transaction from the moment it was created in her wallet, through the Bitcoin network, and to the miners who recorded it on the blockchain. In the rest of this book, diff --git a/ch04_keys.adoc b/ch04_keys.adoc index d3279860..c03e8f0c 100644 --- a/ch04_keys.adoc +++ b/ch04_keys.adoc @@ -68,7 +68,7 @@ pairs, each consisting of a private key and a public key. The private key (_k_) is a number, usually derived from a number picked at random. From the private key, we use elliptic curve multiplication, a one-way cryptographic function, to -generate a public((("public key cryptography", startref="pub-key")))((("key pairs", startref="key-pair"))) key (_K_). +generate a public key (_K_). [role="less_space pagebreak-before"] .Why Use Asymmetric Cryptography (Public/Private Keys)? diff --git a/ch05_wallets.adoc b/ch05_wallets.adoc index ac172254..54751770 100644 --- a/ch05_wallets.adoc +++ b/ch05_wallets.adoc @@ -486,7 +486,7 @@ data. Additionally, it may be useful for wallet applications to provide a standardized format to export labels so that they can be used in other -applications (e.g., accounting software). A standard for that ((("labels, backing up", startref="label-backup")))format is +applications (e.g., accounting software). A standard for that format is proposed in BIP329. Wallet applications implementing additional protocols beyond basic @@ -1176,7 +1176,7 @@ bytes than regular addresses, it is also much longer than other base58check-encoded strings we have seen previously. -Here's an example of an extended _private_ key, encoded((("key generation", "HD (hierarchical deterministic)", "extended keys", startref="keygen-hd-extend")))((("HD (hierarchical deterministic) key generation", "extended keys", "explained", startref="hd-keygen-extend")))((("extended keys", "explained", startref="extend-key"))) in base58check: +Here's an example of an extended _private_ key, encoded in base58check: ---- xprv9tyUQV64JT5qs3RSTJkXCWKMyUgoQp7F3hA1xzG6ZGu6u6Q9VMNjGr67Lctvy5P8oyaYAL9CA diff --git a/ch06_transactions.adoc b/ch06_transactions.adoc index e023cbb0..59f44790 100644 --- a/ch06_transactions.adoc +++ b/ch06_transactions.adoc @@ -210,7 +210,7 @@ nBits field in a Bitcoin block header is encoded using a custom data type known as +Compact+, which is unrelated to compactSize. When talking about the variable length integers used in Bitcoin transaction serialization and other parts of the Bitcoin P2P protocol, we will -always use the full name((("compactSize unsigned integers", startref="compactsize")))((("unsigned integers", startref="unsigned"))) compactSize. +always use the full name compactSize. ==== For numbers from 0 to 252, compactSize unsigned integers are identical diff --git a/ch07_authorization-authentication.adoc b/ch07_authorization-authentication.adoc index 4280a66d..cbbb8188 100644 --- a/ch07_authorization-authentication.adoc +++ b/ch07_authorization-authentication.adoc @@ -125,7 +125,7 @@ considered as "spent." <> is an example of the output and input scripts for the most common type of legacy Bitcoin transaction (a payment to a public key hash), showing the combined script resulting -from the concatenation of the scripts prior((("scripts", "input/output", "constructing", startref="script-input-output-construct")))((("input scripts", "constructing", startref="input-script-construct")))((("output scripts", "constructing", startref="output-script-construct"))) to +from the concatenation of the scripts prior to validation. [[input_and_output_scripts_legacy]] diff --git a/ch09_fees.adoc b/ch09_fees.adoc index 8cf3fa34..25096c54 100644 --- a/ch09_fees.adoc +++ b/ch09_fees.adoc @@ -452,7 +452,7 @@ making it effectively impossible to estimate an appropriate fee rate. If a presigned transaction pays a fee rate below the amount necessary to get into a node's mempool, there's no way to fee bump it with a child. If that prevents the transaction from confirming in time, an honest user -might lose money. Package relay is the solution for this ((("transaction fees", "package relay", startref="transaction-fee-package-relay")))((("package relay", startref="package-relay")))critical +might lose money. Package relay is the solution for this critical problem. [[transaction_pinning]] @@ -681,5 +681,5 @@ other uses of the lock time field. As Bitcoin continues to mature, and as the subsidy continues to decline, fees become more and more important to Bitcoin users, both in their day-to-day use for getting transactions confirmed quickly and in -providing an incentive for miners to continue securing((("timelocks", "fee sniping and", startref="timelock-fee-snipe")))((("lock time", "fee sniping and", startref="lock-time-fee-snipe"))) Bitcoin +providing an incentive for miners to continue securing Bitcoin transactions with new proof of work. diff --git a/ch12_mining.adoc b/ch12_mining.adoc index 27b19ef0..7e6f83f1 100644 --- a/ch12_mining.adoc +++ b/ch12_mining.adoc @@ -1432,7 +1432,7 @@ shares. Stratum v2 optionally allows individual miners in the pool to choose which transactions appear in their own blocks, which they can select -using their own full ((("managed pools", startref="manage-pool")))node. +using their own full node. ===== Peer-to-peer mining pool (P2Pool) @@ -1904,7 +1904,7 @@ activated, any transactions created under the new rules could result in a loss of funds under the old rules. For example, if a CLTV transaction is evaluated under the old rules, there is no timelock constraint and it can be spent at any time. Therefore, critics contend that a failed soft -fork that had to be reversed because of a bug would almost ((("consensus rules", "soft forks", "criticisms of", startref="consensus-soft-critic")))((("forks", "soft forks", "criticisms of", startref="fork-soft-critic")))((("soft forks", "criticisms of", startref="soft-fork-critic")))certainly +fork that had to be reversed because of a bug would almost certainly lead to loss of funds. [[softforksignaling]]