CH01: minor edits for consistency, voice, and correctness

develop
David A. Harding 1 year ago
parent 7a0f5f49e4
commit bada9cbe41

@ -13,15 +13,15 @@ and the system is called "Bitcoin", with a capital _B_.
====
Users can transfer bitcoin over the network to do just about anything
that can be done with conventional currencies, including buy and sell
goods, send money to people or organizations, or extend credit. Bitcoin
that can be done with conventional currencies, including buying and selling
goods, sending money to people or organizations, or extending credit. Bitcoin
can be purchased, sold, and exchanged for other currencies at
specialized currency exchanges. Bitcoin in a sense is the perfect form
specialized currency exchanges. Bitcoin is arguably the perfect form
of money for the internet because it is fast, secure, and borderless.
Unlike traditional currencies, bitcoin is entirely virtual. There are no
Unlike traditional currencies, the bitcoin currency is entirely virtual. There are no
physical coins or even individual digital coins. The coins are implied in
transactions that transfer value from sender to recipient. Users of
transactions that transfer value from spender to receiver. Users of
Bitcoin control keys that allow them to prove ownership of bitcoin in the
Bitcoin network. With these keys, they can sign transactions to unlock
the value and spend it by transferring it to a new owner. Keys are often
@ -31,13 +31,12 @@ prerequisite to spending bitcoin, putting the control entirely in the
hands of each user.
Bitcoin is a distributed, peer-to-peer system. As such, there is no
"central" server or point of control. Units of bitcoin
are created through a process called "mining," which involves competing
to find solutions to a mathematical problem that references a list of recent Bitcoin
transactions. Any participant in the Bitcoin network (i.e., anyone using
a device running the full Bitcoin protocol stack) may operate as a
miner, using their computer's processing power to help secure
transactions. Every 10 minutes, on average, a Bitcoin miner can add security to
central server or point of control. Units of bitcoin
are created through a process called "mining," which involves repeatedly
performing a competitive computational task that references a list of recent Bitcoin
transactions. Any participant in the Bitcoin network may operate as a
miner, using their computing devices to help secure
transactions. Every 10 minutes, on average, one Bitcoin miner can add security to
past transactions and is rewarded with both brand new
bitcoin and the fees paid by recent transactions. Essentially, Bitcoin
mining decentralizes the currency-issuance
@ -45,23 +44,23 @@ and clearing functions of a central bank and replaces the need for any
central bank.
The Bitcoin protocol includes built-in algorithms that regulate the
mining function across the network. The difficulty of the mathematical
mining function across the network. The difficulty of the computational
task that miners must perform is adjusted dynamically so that, on
average, someone succeeds every 10 minutes regardless of how many miners
(and how much processing) are competing at any moment. The protocol also
halves the rate at which new bitcoin is created approximately every 4 years, and
limits the total number of bitcoin that will be created to a fixed total
just below 21 million coins. The result is that the number of bitcoin in
halves the rate at which new bitcoins are created,
limiting the total number of bitcoins that will be created to a fixed total
just below 21 million coins. The result is that the number of bitcoins in
circulation closely follows an easily predictable curve where half of
the remaining coins are added to circulation every four years. By the
time this book has been published for ten years, 99% of all bitcoins
time the third edition of this book has been published for ten years, 99% of all bitcoins
that will ever exist will have been issued. Due to bitcoin's
diminishing rate of issuance, over the long term, the Bitcoin currency
is deflationary. Furthermore, nobody can force you to accept bitcoin
that has been inflated by creating new bitcoins above and beyond the
is deflationary. Furthermore, nobody can force you to accept
any bitcoins that were created beyond the
expected issuance rate.
Behind the scenes, Bitcoin is also the name of the protocol, a peer-to-peer network, and a distributed computing innovation. Bitcoin represents the culmination of decades of research in cryptography and distributed systems and includes four key innovations brought together in a unique and powerful combination. Bitcoin consists of:
Behind the scenes, Bitcoin is also the name of the protocol, a peer-to-peer network, and a distributed computing innovation. Bitcoin builds on decades of research in cryptography and distributed systems and includes at least four key innovations brought together in a unique and powerful combination. Bitcoin consists of:
* A decentralized peer-to-peer network (the Bitcoin protocol)
* A public transaction ledger (the blockchain)
@ -149,10 +148,10 @@ North American e-commerce retails::
((("use cases", "retail sales")))Alice lives in Northern California's Bay Area. She has heard about Bitcoin from her techie friends and wants to start using it. We will follow her story as she learns about Bitcoin, acquires some, and then spends her bitcoin to buy a laptop from Bob's online store. This story will introduce us to the software, the exchanges, and basic transactions from the perspective of a retail consumer.
North American high-value retail::
Carol is an art gallery owner in San Francisco. She sells expensive paintings for Bitcoin. This story will introduce the risks of a "51%" consensus attack for retailers of high-value items.
Carol is an art gallery owner in San Francisco. She sells expensive paintings for bitcoin. This story will introduce the risks of a "51% attack" for retailers of high-value items.
Offshore contract services::
((("offshore contract services")))((("use cases", "offshore contract services")))Bob, the cafe owner in Palo Alto, is building a new website. He has contracted with an Indian web developer, Gopesh, who lives in Bangalore, India. Gopesh has agreed to be paid in bitcoin. This story will examine the use of Bitcoin for outsourcing, contract services, and international wire transfers.
((("offshore contract services")))((("use cases", "offshore contract services")))Bob, the cafe owner in Palo Alto, is building a new website. He has contracted with a web developer, Gopesh, who lives in Bangalore, India. Gopesh has agreed to be paid in bitcoin. This story will examine the use of Bitcoin for outsourcing, contract services, and international wire transfers.
Web store::
((("use cases", "web store")))Gabriel is an enterprising young teenager in Rio de Janeiro, running a small web store that sells Bitcoin-branded t-shirts, coffee mugs, and stickers. Gabriel is too young to have a bank account, but his parents are encouraging his entrepreneurial spirit.
@ -188,7 +187,7 @@ derived from the original implementation written by Satoshi Nakamoto.
==== Choosing a Bitcoin Wallet
((("security", "wallet selection")))Bitcoin wallets are one of the most actively developed applications in the Bitcoin ecosystem. There is intense competition, and while a new wallet is probably being developed right now, several wallets from last year are no longer actively maintained. Many wallets focus on specific platforms or specific uses and some are more suitable for beginners while others are filled with features for advanced users. Choosing a wallet is highly subjective and depends on the use and user expertise. Therefore it would be pointless to recommend a specific brand or wallet. However, we can categorize Bitcoin wallets according to their platform and function and provide some clarity about all the different types of wallets that exist. Better yet, moving keys or seeds between Bitcoin wallets is relatively easy, so it is worth trying out several different wallets until you find one that fits your needs.
((("security", "wallet selection")))Bitcoin wallets are one of the most actively developed applications in the Bitcoin ecosystem. There is intense competition, and while a new wallet is probably being developed right now, several wallets from last year are no longer actively maintained. Many wallets focus on specific platforms or specific uses and some are more suitable for beginners while others are filled with features for advanced users. Choosing a wallet is highly subjective and depends on the use and user expertise. Therefore it would be pointless to recommend a specific brand or wallet. However, we can categorize Bitcoin wallets according to their platform and function and provide some clarity about all the different types of wallets that exist. It is worth trying out several different wallets until you find one that fits your needs.
[role="pagebreak-before"]
===== Types of Bitcoin wallets
@ -202,8 +201,8 @@ Android, these wallets are often a great choice for new users. Many are
designed for simplicity and ease-of-use, but there are also fully
featured mobile wallets for power users. To avoid downloading and
storing large amounts of data, most mobile wallets retrieve information
from remote servers, reducing your privacy by disclosing information
about your Bitcoin addresses and balances to third parties.
from remote servers, reducing your privacy by disclosing to third
parties information about your Bitcoin addresses and balances.
Web wallet:: Web wallets are accessed through a web browser and store
the user's wallet on a server owned by a third party. This is similar to
@ -216,8 +215,8 @@ users in exchange for ease-of-use. It is inadvisable
to store large amounts of bitcoin on third-party systems.
Hardware signing devices:: Hardware signing devices are devices that can
store keys and sign transactions using a special-purpose hardware and
software. They usually
store keys and sign transactions using special-purpose hardware and
firmware. They usually
connect to a desktop, mobile, or web wallet via USB cable,
near-field-communication (NFC), or a camera with QR codes. By handling
all Bitcoin-related operations on the specialized hardware, these
@ -236,8 +235,9 @@ 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 a streaming video for an
hour--but offers complete autonomy to its users.
computer resources--about the same as watching an hour-long streaming
video for each day of Bitcoin transactions--but the full node offers
complete autonomy to its users.
Lightweight client:: ((("lightweight
clients")))((("simplified-payment-verification (SPV)")))A lightweight
@ -256,10 +256,10 @@ server to provide it with accurate information and protect its privacy.
[TIP]
====
Bitconin 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
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
@ -269,9 +269,8 @@ its peers.
===== Custodial vs. Non-Custodial
_Your keys, your coins. Not your keys, not your coins_.
A very important additional consideration is _who controls the keys_. As
we will see in subsequent chapters, access to bitcoin (funds) is
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 *custody* and *control* over these private
keys, you are in control of your bitcoin. Conversely, if you do not have
@ -279,12 +278,13 @@ custody, then your bitcoin is managed by a third-party custodian, who
ultimately controls your funds on your behalf. Wallets fall into two
important categories based on custody: _non-custodial_ wallets where you
control the keys and the funds and _custodial_ wallets where some
third-party controls the keys. To emphasize this point, the author of
this book coined the phrase:
third-party controls the keys. To emphasize this point, I (Andreas)
coined the phrase:
_Your keys, your coins. Not your keys, not your coins_.
Combining these categorizations, many Bitcoin wallets fall into a few
groups, with the three most common being desktop full client
groups, with the three most common being desktop full node
(non-custodial), mobile lightweight wallet (non-custodial), and web
third-party wallet (custodial). The lines between different categories
are often blurry, as many wallets run on multiple platforms and can
@ -294,10 +294,10 @@ For the purposes of this book, we will be demonstrating the use of a
variety of downloadable Bitcoin clients, from the reference
implementation (Bitcoin Core) to mobile and web wallets. Some of the
examples will require the use of Bitcoin Core, which, in addition to
being a full client, also exposes APIs to the wallet, network, and
being a full node, also exposes APIs to the wallet, network, and
transaction services. If you are planning to explore the programmatic
interfaces into the Bitcoin system, you will need to run Bitcoin Core,
or one of the alternative clients.((("", startref="GSwallet01")))((("",
or one of the alternative full node implementations.((("", startref="GSwallet01")))((("",
startref="Wselect01")))
==== Quick Start
@ -307,34 +307,33 @@ id="GSquick01")))((("wallets", "quick start example",
id="Wquick01")))Alice, who we introduced in <<user-stories>>, is not a
technical user and only recently heard about Bitcoin from her friend
Joe. While at a party, Joe is once again enthusiastically explaining
Bitcoin to all around him and is offering a demonstration. Intrigued,
Bitcoin to everyone around him and is offering a demonstration. Intrigued,
Alice asks how she can get started with Bitcoin. Joe says that a mobile
wallet is best for new users and he recommends a few of his favorite
wallets. Alice downloads "Bluewallet" (available for iOS and Android)
wallets. Alice downloads one of Joe's recommendations
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
control of her keys. Therefore, she bears responsibility for backing
them up, since losing the keys means she loses access to the bitcoin. To
them up, since losing the keys means she loses access to her bitcoins. To
facilitate this, her wallet produces a _recovery code_ (explained more in
<<recovery_code_intro>>) that can be used
to restore her wallet.
Let's elaborate a bit on the recovery code, next.
[[recovery_code_intro]]
==== Recovery Code
==== Recovery Codes
Most modern non-custodial 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
that are generated by the wallet. Sample recovery codes from different wallets are shown in
<<recovery_code_sample>>.
that are generated by the wallet. See <<recovery_code_sample>> for
examples.
[[recovery_code_sample]]
.Sample Recovery Codes
[cols="1,1"]
|===
| Wallet | Recovery code
@ -351,7 +350,7 @@ that are generated by the wallet. Sample recovery codes from different wallets a
[TIP]
====
A recovery code phrase 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
@ -387,10 +386,10 @@ user to manually re-enter the code.
[WARNING]
====
Although many legitimate wallets will prompt their user to re-enter
Although many legitimate wallets will prompt you to re-enter
your recovery code, there are also many malware applications that mimic the
design of a wallet, insist you enter your recovery code, and then
relay any entered phrases to the malware developer so they can steal
relay any entered code to the malware developer so they can steal
your funds. This is the equivilent of phishing websites that try to
trick you into giving them your bank passphrase. For most wallet
applications, the only times they will ask for your recovery code are during
@ -400,8 +399,6 @@ asks for your recovery code any other time, consult with an expert to
ensure you aren't being phished.
====
==== Running the wallet application
==== Bitcoin addresses
Alice is now ready to start using her new bitcoin wallet. ((("", startref="GSquick01")))((("", startref="Wquick01"))) Her wallet application randomly generated a private key (described in more detail in <<private_keys>>) 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 random 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.
@ -409,8 +406,8 @@ Alice is now ready to start using her new bitcoin wallet. ((("", startref="GSqui
[TIP]
====
((("addresses", "security of")))((("security", "bitcoin addresses")))There
are a variety of Bitcoin addresses and formats for sharing Bitcoin
invoices. Addresses and invoices can be shared with other bitcoin users
are a variety of Bitcoin addresses and invoice formats. Addresses and
invoices can be shared with other bitcoin users
who can use them to send bitcoin directly to your wallet. You can share
an address or invoice with other people without worrying about the
security of your bitcoins. Unlike a bank account number, nobody who
@ -450,7 +447,7 @@ Bitcoin transactions are irreversible. Most electronic payment networks such as
[role="pagebreak-before"]
Here are some methods for getting bitcoin as a new user:
* Find a friend who has bitcoin 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 bitcoin is to attend a local bitcoin meetup listed at https://bitcoin.meetup.com[Meetup.com].
* Find a friend who has bitcoin 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 bitcoin is to attend a local Bitcoin meetup listed at https://bitcoin.meetup.com[Meetup.com].
* Use a classified service such as pass:[<a class="orm:hideurl" href="https://localbitcoins.com/">localbitcoins.com</a>] to find a seller in your area to buy bitcoin for cash in an in-person transaction.
* 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 bitcoin.
* ((("Coin ATM Radar")))((("ATMs, locating")))Use a bitcoin ATM in your city. A bitcoin ATM is a machine that accepts cash and sends bitcoin to your smartphone bitcoin wallet. Find a bitcoin ATM close to you using an online map from http://coinatmradar.com[Coin ATM Radar].
@ -462,7 +459,7 @@ Here are some methods for getting bitcoin as a new user:
privacy")))((("digital currencies", "currency exchanges")))((("currency
exchanges")))((("digital currencies", "benefits of
bitcoin")))((("bitcoin", "benefits of")))One of the advantages of
bitcoin over other payment systems is that, when used correctly, it
Bitcoin over other payment systems is that, when used correctly, it
affords users much more privacy. Acquiring, holding, and spending
bitcoin does not require you to divulge sensitive and personally
identifiable information to third parties. However, where bitcoin
@ -484,7 +481,7 @@ Alice was introduced to bitcoin by a friend so she has an easy way to acquire he
((("getting started", "exchange rates")))((("exchange rates", "determining")))Before Alice can buy bitcoin from Joe, they have to agree on the _exchange rate_ between bitcoin and US dollars. This brings up a common question for those new to bitcoin: "Who sets the bitcoin price?" The short answer is that the price is set by markets.
((("exchange rates", "floating")))((("floating exchange rate")))Bitcoin, like most other currencies, has a _floating exchange rate_. That means that the value of bitcoin vis-a-vis any other currency fluctuates according to supply and demand in the various markets where it is traded. For example, the "price" of bitcoin in US dollars is calculated in each market based on the most recent trade of bitcoin and US dollars. As such, the price tends to fluctuate minutely several times per second. A pricing service will aggregate the prices from several markets and calculate a volume-weighted average representing the broad market exchange rate of a currency pair (e.g., BTC/USD).
((("exchange rates", "floating")))((("floating exchange rate")))Bitcoin, like most other currencies, has a _floating exchange rate_. That means that the value of bitcoin fluctuates according to supply and demand in the various markets where it is traded. For example, the "price" of bitcoin in US dollars is calculated in each market based on the most recent trade of bitcoin and US dollars. As such, the price tends to fluctuate minutely several times per second. A pricing service will aggregate the prices from several markets and calculate a volume-weighted average representing the broad market exchange rate of a currency pair (e.g., BTC/USD).
There are hundreds of applications and websites that can provide the current market rate. Here are some of the most popular:
@ -515,10 +512,10 @@ quite long and difficult to type.
[[wallet-send]]
[role="smallereighty"]
.Bitcoin wallet send screen
image::images/mbc2_0102.png["Wallet send screen"]
image::images/send.png["Wallet send screen"]
Joe now has Alice's Bitcoin address set as the recipient. Joe enters the
amount as 0.001 bitcoin (BTC), see <<wallet-send>>. Some wallets may
amount as 0.001 bitcoins (BTC), see <<wallet-send>>. Some wallets may
show the amount in a different denomination: 0.001 BTC is 1 millibitcoin
(mBTC) or 100,000 satoshis (sats).
@ -534,7 +531,7 @@ Joe then carefully checks to make sure he has entered the correct
amount, because he is about to transmit money and mistakes will soon become
irreversible. After double-checking the address and amount, he presses
Send to transmit the transaction. Joe's mobile Bitcoin wallet constructs
a transaction that assigns 0.01 BTC to the address provided by Alice,
a transaction that assigns 0.001 BTC to the address provided by Alice,
sourcing the funds from Joe's wallet and signing the transaction with
Joe's private keys. This tells the Bitcoin network that Joe has
authorized a transfer of value to Alice's new address. As the

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Loading…
Cancel
Save