mirror of
https://github.com/bitcoinbook/bitcoinbook
synced 2025-01-11 00:01:03 +00:00
CH01: Reflow text to make later diffs more readable
This commit is contained in:
parent
2f0d7d8c3a
commit
21550eecd4
285
ch01.asciidoc
285
ch01.asciidoc
@ -8,16 +8,54 @@
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Notice how the unit of currency is called "bitcoin" with a small _b_, and the system is called "Bitcoin", with a capital _B_.
|
||||
Notice how the unit of currency is called "bitcoin" with a small _b_,
|
||||
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 can be purchased, sold, and exchanged for other currencies at specialized currency exchanges. Bitcoin in a sense is the perfect form of money for the internet because it is fast, secure, and borderless.
|
||||
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
|
||||
can be purchased, sold, and exchanged for other currencies at
|
||||
specialized currency exchanges. Bitcoin in a sense is 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 physical coins or even digital coins per se. The coins are implied in transactions that transfer value from sender to recipient. Users of Bitcoin own 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 stored in a digital wallet on each user’s computer or smartphone. Possession of the key that can sign a transaction is the only prerequisite to spending bitcoin, putting the control entirely in the hands of each user.
|
||||
Unlike traditional currencies, bitcoin is entirely virtual. There are no
|
||||
physical coins or even digital coins per se. The coins are implied in
|
||||
transactions that transfer value from sender to recipient. Users of
|
||||
Bitcoin own 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
|
||||
stored in a digital wallet on each user’s computer or smartphone.
|
||||
Possession of the key that can sign a transaction is the only
|
||||
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. Bitcoins, i.e. units of bitcoin, are created through a process called "mining," which involves competing to find solutions to a mathematical problem while processing 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 verify and record transactions. Every 10 minutes, on average, a Bitcoin miner can validate the transactions of the past 10 minutes and is rewarded with brand new bitcoin. Essentially, Bitcoin mining decentralizes the currency-issuance and clearing functions of a central bank and replaces the need for any central bank.
|
||||
Bitcoin is a distributed, peer-to-peer system. As such, there is no
|
||||
"central" server or point of control. Bitcoins, i.e. units of bitcoin,
|
||||
are created through a process called "mining," which involves competing
|
||||
to find solutions to a mathematical problem while processing 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 verify and record
|
||||
transactions. Every 10 minutes, on average, a Bitcoin miner can validate
|
||||
the transactions of the past 10 minutes and is rewarded with brand new
|
||||
bitcoin. Essentially, Bitcoin mining decentralizes the currency-issuance
|
||||
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 processing 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 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 circulation closely follows an easily predictable curve that approaches 21 million by the year 2140. Due to bitcoin's diminishing rate of issuance, over the long term, the Bitcoin currency is deflationary. Furthermore, bitcoin cannot be inflated by "printing" new money above and beyond the expected issuance rate.
|
||||
The Bitcoin protocol includes built-in algorithms that regulate the
|
||||
mining function across the network. The difficulty of the processing
|
||||
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 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
|
||||
circulation closely follows an easily predictable curve that approaches
|
||||
21 million by the year 2140. Due to bitcoin's diminishing rate of
|
||||
issuance, over the long term, the Bitcoin currency is deflationary.
|
||||
Furthermore, bitcoin cannot be inflated by "printing" new money above
|
||||
and 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:
|
||||
|
||||
@ -50,16 +88,55 @@ When cryptography started becoming more broadly available and understood in the
|
||||
|
||||
=== History of Bitcoin
|
||||
|
||||
((("Nakamoto, Satoshi")))((("distributed computing")))((("bitcoin", "history of")))Bitcoin was invented in 2008 with the publication of a paper titled "Bitcoin: A Peer-to-Peer Electronic Cash System,"footnote:["Bitcoin: A Peer-to-Peer Electronic Cash System," Satoshi Nakamoto (https://bitcoin.org/bitcoin.pdf).] written under the alias of Satoshi Nakamoto (see <<satoshi_whitepaper>>). Nakamoto combined several prior inventions such as b-money and HashCash to create a completely decentralized electronic cash system that does not rely on a central authority for currency issuance or settlement and validation of transactions. ((("Proof-of-Work algorithm")))((("decentralized systems", "consensus in")))((("mining and consensus", "Proof-of-Work algorithm")))The key innovation was to use a distributed computation system (called a "Proof-of-Work" algorithm) to conduct a global "election" every 10 minutes, allowing the decentralized network to arrive at _consensus_ about the state of transactions. ((("double-spend problem")))((("spending bitcoin", "double-spend problem")))This elegantly solves the issue of double-spend where a single currency unit can be spent twice. Previously, the double-spend problem was a weakness of digital currency and was addressed by clearing all transactions through a central clearinghouse.
|
||||
((("Nakamoto, Satoshi")))((("distributed computing")))((("bitcoin",
|
||||
"history of")))Bitcoin was invented in 2008 with the publication of a
|
||||
paper titled "Bitcoin: A Peer-to-Peer Electronic Cash
|
||||
System,"footnote:["Bitcoin: A Peer-to-Peer Electronic Cash System,"
|
||||
Satoshi Nakamoto (https://bitcoin.org/bitcoin.pdf).] written under the
|
||||
alias of Satoshi Nakamoto (see <<satoshi_whitepaper>>). Nakamoto
|
||||
combined several prior inventions such as b-money and HashCash to create
|
||||
a completely decentralized electronic cash system that does not rely on
|
||||
a central authority for currency issuance or settlement and validation
|
||||
of transactions. ((("Proof-of-Work algorithm")))((("decentralized
|
||||
systems", "consensus in")))((("mining and consensus", "Proof-of-Work
|
||||
algorithm")))The key innovation was to use a distributed computation
|
||||
system (called a "Proof-of-Work" algorithm) to conduct a global
|
||||
"election" every 10 minutes, allowing the decentralized network to
|
||||
arrive at _consensus_ about the state of transactions. ((("double-spend
|
||||
problem")))((("spending bitcoin", "double-spend problem")))This
|
||||
elegantly solves the issue of double-spend where a single currency unit
|
||||
can be spent twice. Previously, the double-spend problem was a weakness
|
||||
of digital currency and was addressed by clearing all transactions
|
||||
through a central clearinghouse.
|
||||
|
||||
The Bitcoin network started in 2009, based on a reference implementation published by Nakamoto and since revised by many other programmers. The implementation of the Proof-of-Work algorithm (mining) that provides security and resilience for Bitcoin has increased in power exponentially, and now exceeds the combined processing power of the world's top supercomputers. Bitcoin's total market value has at times exceeded $1 trillion US dollars, depending on the bitcoin-to-dollar exchange rate. The largest transaction processed so far by the network was $400 million US dollars, transmitted instantly and processed for a fee of only $1.
|
||||
The Bitcoin network started in 2009, based on a reference implementation
|
||||
published by Nakamoto and since revised by many other programmers. The
|
||||
implementation of the Proof-of-Work algorithm (mining) that provides
|
||||
security and resilience for Bitcoin has increased in power
|
||||
exponentially, and now exceeds the combined processing power of the
|
||||
world's top supercomputers. Bitcoin's total market value has at times
|
||||
exceeded $1 trillion US dollars, depending on the bitcoin-to-dollar
|
||||
exchange rate. The largest transaction processed so far by the network
|
||||
was $400 million US dollars, transmitted instantly and processed for a
|
||||
fee of only $1.
|
||||
|
||||
Satoshi Nakamoto withdrew from the public in April 2011, leaving the responsibility of developing the code and network to a thriving group of volunteers. The identity of the person or people behind Bitcoin is still unknown. ((("open source licenses")))However, neither Satoshi Nakamoto nor anyone else exerts individual control over the Bitcoin system, which operates based on fully transparent mathematical principles, open source code, and consensus among participants. The invention itself is groundbreaking and has already spawned new science in the fields of distributed computing, economics, and econometrics.
|
||||
|
||||
|
||||
.A Solution to a Distributed Computing Problem
|
||||
****
|
||||
((("Byzantine Generals' Problem")))Satoshi Nakamoto's invention is also a practical and novel solution to a problem in distributed computing, known as the "Byzantine Generals' Problem." Briefly, the problem consists of trying to agree on a course of action or the state of a system by exchanging information over an unreliable and potentially compromised network. ((("central trusted authority")))Satoshi Nakamoto's solution, which uses the concept of Proof-of-Work to achieve consensus _without a central trusted authority_, represents a breakthrough in distributed computing and has wide applicability beyond currency. It can be used to achieve consensus on decentralized networks to prove the fairness of elections, lotteries, asset registries, digital notarization, and more.
|
||||
((("Byzantine Generals' Problem")))Satoshi Nakamoto's invention is
|
||||
also a practical and novel solution to a problem in distributed
|
||||
computing, known as the "Byzantine Generals' Problem." Briefly, the
|
||||
problem consists of trying to agree on a course of action or the state
|
||||
of a system by exchanging information over an unreliable and potentially
|
||||
compromised network. ((("central trusted authority")))Satoshi Nakamoto's
|
||||
solution, which uses the concept of Proof-of-Work to achieve consensus
|
||||
_without a central trusted authority_, represents a breakthrough in
|
||||
distributed computing and has wide applicability beyond currency. It can
|
||||
be used to achieve consensus on decentralized networks to prove the
|
||||
fairness of elections, lotteries, asset registries, digital
|
||||
notarization, and more.
|
||||
****
|
||||
|
||||
|
||||
@ -93,7 +170,22 @@ Each of these stories is based on the real people and real industries currently
|
||||
|
||||
=== Getting Started
|
||||
|
||||
((("getting started", "wallet selection", id="GSwallet01")))((("wallets", "selecting", id="Wselect01")))((("bitcoin", "getting started", id="BCbasic01")))Bitcoin is a protocol that can be accessed using a client application that speaks the protocol. A "Bitcoin wallet" is the most common user interface to the Bitcoin system, just like a web browser is the most common user interface for the HTTP protocol. There are many implementations and brands of Bitcoin wallets, just like there are many brands of web browsers (e.g., Chrome, Safari, Firefox, and Internet Explorer). And just like we all have our favorite browsers (Mozilla Firefox, Yay!) and our villains (Internet Explorer, Yuck!), Bitcoin wallets vary in quality, performance, security, privacy, and reliability. There is also a reference implementation of the Bitcoin protocol that includes a wallet, known as the "Satoshi Client" or "Bitcoin Core," which is derived from the original implementation written by Satoshi Nakamoto.
|
||||
((("getting started", "wallet selection",
|
||||
id="GSwallet01")))((("wallets", "selecting",
|
||||
id="Wselect01")))((("bitcoin", "getting started",
|
||||
id="BCbasic01")))Bitcoin is a protocol that can be accessed using a
|
||||
client application that speaks the protocol. A "Bitcoin wallet" is the
|
||||
most common user interface to the Bitcoin system, just like a web
|
||||
browser is the most common user interface for the HTTP protocol. There
|
||||
are many implementations and brands of Bitcoin wallets, just like there
|
||||
are many brands of web browsers (e.g., Chrome, Safari, Firefox, and
|
||||
Internet Explorer). And just like we all have our favorite browsers
|
||||
(Mozilla Firefox, Yay!) and our villains (Internet Explorer, Yuck!),
|
||||
Bitcoin wallets vary in quality, performance, security, privacy, and
|
||||
reliability. There is also a reference implementation of the Bitcoin
|
||||
protocol that includes a wallet, known as the "Satoshi Client" or
|
||||
"Bitcoin Core," which is derived from the original implementation
|
||||
written by Satoshi Nakamoto.
|
||||
|
||||
==== Choosing a Bitcoin Wallet
|
||||
|
||||
@ -105,48 +197,137 @@ 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.
|
||||
|
||||
Mobile wallet:: A mobile wallet is the most common type of Bitcoin wallet. Running on smart-phone operating systems such as Apple iOS and 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.
|
||||
Mobile wallet:: A mobile wallet is the most common type of Bitcoin
|
||||
wallet. Running on smart-phone operating systems such as Apple iOS and
|
||||
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.
|
||||
|
||||
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 webmail in that it relies entirely on a third-party server. Some of these services operate using client-side code running in the user's browser, which keeps control of the Bitcoin keys in the hands of the user. Most, however, present a compromise by taking control of the Bitcoin keys from users in exchange for ease-of-use. It is inadvisable to store large amounts of bitcoin on third-party systems.
|
||||
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
|
||||
webmail in that it relies entirely on a third-party server. Some of
|
||||
these services operate using client-side code running in the user's
|
||||
browser, which keeps control of the Bitcoin keys in the hands of the
|
||||
user. Most, however, present a compromise by taking control of the
|
||||
Bitcoin keys from users in exchange for ease-of-use. It is inadvisable
|
||||
to store large amounts of bitcoin on third-party systems.
|
||||
|
||||
Hardware wallet:: Hardware wallets are devices that operate a secure self-contained Bitcoin wallet on special-purpose hardware. They usually connect to a desktop or mobile device via USB cable or near-field-communication (NFC), and are operated with a web browser or accompanying software. By handling all Bitcoin-related operations on the specialized hardware, these wallets are considered very secure and suitable for storing large amounts of bitcoin.
|
||||
Hardware wallet:: Hardware wallets are devices that operate a secure
|
||||
self-contained Bitcoin wallet on special-purpose hardware. They usually
|
||||
connect to a desktop or mobile device via USB cable or
|
||||
near-field-communication (NFC), and are operated with a web browser or
|
||||
accompanying software. By handling all Bitcoin-related operations on the
|
||||
specialized hardware, these wallets are considered very secure and
|
||||
suitable for storing large amounts of bitcoin.
|
||||
|
||||
===== Full-node vs. Lightweight
|
||||
Another way to categorize bitcoin wallets is by their degree of autonomy and how they interact with the Bitcoin network:
|
||||
|
||||
Full-node client:: ((("full-node clients")))A full client, or "full node," is a client that stores the entire history of Bitcoin transactions (every transaction by every user, ever), manages users' wallets, and can initiate transactions directly on the Bitcoin network. A full node handles all aspects of the protocol and can independently validate the entire blockchain and any transaction. A full-node client consumes substantial computer resources (e.g., more than 125 GB of disk, 2 GB of RAM) but offers complete autonomy and independent transaction verification.
|
||||
Full-node client:: ((("full-node clients")))A full client, or "full
|
||||
node," is a client that stores the entire history of Bitcoin
|
||||
transactions (every transaction by every user, ever), manages users'
|
||||
wallets, and can initiate transactions directly on the Bitcoin network.
|
||||
A full node handles all aspects of the protocol and can independently
|
||||
validate the entire blockchain and any transaction. A full-node client
|
||||
consumes substantial computer resources (e.g., more than 125 GB of disk,
|
||||
2 GB of RAM) but offers complete autonomy and independent transaction
|
||||
verification.
|
||||
|
||||
Lightweight client:: ((("lightweight clients")))((("simplified-payment-verification (SPV)")))A lightweight client, also known as a simplified-payment-verification (SPV) client, connects to Bitcoin full nodes (mentioned previously) for access to the Bitcoin transaction information, but stores the user wallet locally and independently creates, validates, and transmits transactions. Lightweight clients interact directly with the Bitcoin network, without an intermediary.
|
||||
Lightweight client:: ((("lightweight
|
||||
clients")))((("simplified-payment-verification (SPV)")))A lightweight
|
||||
client, also known as a simplified-payment-verification (SPV) client,
|
||||
connects to Bitcoin full nodes (mentioned previously) for access to the
|
||||
Bitcoin transaction information, but stores the user wallet locally and
|
||||
independently creates, validates, and transmits transactions.
|
||||
Lightweight clients interact directly with the Bitcoin network, without
|
||||
an intermediary.
|
||||
|
||||
Third-party API client:: ((("third-party API clients")))A third-party API client is one that interacts with Bitcoin through a third-party system of application programming interfaces (APIs), rather than by connecting to the Bitcoin network directly. The wallet may be stored by the user or by third-party servers, but all transactions go through a third party.
|
||||
Third-party API client:: ((("third-party API clients")))A third-party
|
||||
API client is one that interacts with Bitcoin through a third-party
|
||||
system of application programming interfaces (APIs), rather than by
|
||||
connecting to the Bitcoin network directly. The wallet may be stored by
|
||||
the user or by third-party servers, but all transactions go through a
|
||||
third party.
|
||||
|
||||
===== Custodial vs. Non-Custodial
|
||||
A very important additional consideration is _who controls the keys_. As we will see in subsequent chapters, access to bitcoin (funds) 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 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:
|
||||
|
||||
_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
|
||||
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
|
||||
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:
|
||||
|
||||
Combining these categorizations, many Bitcoin wallets fall into a few groups, with the three most common being desktop full client (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 interact with the network in different ways.
|
||||
|
||||
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 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")))((("", startref="Wselect01")))
|
||||
Combining these categorizations, many Bitcoin wallets fall into a few
|
||||
groups, with the three most common being desktop full client
|
||||
(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
|
||||
interact with the network in different ways.
|
||||
|
||||
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
|
||||
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")))((("",
|
||||
startref="Wselect01")))
|
||||
|
||||
==== Quick Start
|
||||
|
||||
((("getting started", "quick start example", 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, 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) and installs it on her phone.
|
||||
((("getting started", "quick start example",
|
||||
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,
|
||||
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)
|
||||
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 facilitate this, her wallet produces a _mnemonic phrase_ (explained more in <<mnemonic_phrase_intro>>), in the form of 12 English words that can be used to restore her wallet on any of the hundreds of compatible software or hardware wallets.
|
||||
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
|
||||
facilitate this, her wallet produces a _mnemonic phrase_ (explained more
|
||||
in <<mnemonic_phrase_intro>>), in the form of 12 English words that can
|
||||
be used to restore her wallet on any of the hundreds of compatible
|
||||
software or hardware wallets.
|
||||
|
||||
Let's elaborate a bit on the mnemonic phrase, next.
|
||||
|
||||
[[mnemonic_phrase_intro]]
|
||||
==== Mnemonic Phrase
|
||||
|
||||
Most modern non-custodial Bitcoin wallets will provide a _mnemonic phrase_ (also sometimes called a "seed" or "seed phrase") for their user to back up. The mnemonic phrase usually consists of 12 English words, selected randomly by the software, and used as the basis for the keys that are generated by the wallet. A sample mnemonic phrase is shown in <<mnemonic_phrase_sample>>.
|
||||
Most modern non-custodial Bitcoin wallets will provide a _mnemonic
|
||||
phrase_ (also sometimes called a "seed" or "seed phrase") for their user
|
||||
to back up. The mnemonic phrase usually consists of 12 English words,
|
||||
selected randomly by the software, and used as the basis for the keys
|
||||
that are generated by the wallet. A sample mnemonic phrase is shown in
|
||||
<<mnemonic_phrase_sample>>.
|
||||
|
||||
[[mnemonic_phrase_sample]]
|
||||
.Alice is shown a 12-word mnemonic phrase that she must backup (offline on paper)
|
||||
image::images/mnemonic_phrase_sample.png[".Alice is shown a 12-word mnemonic phrase that she must backup (offline on paper)"]
|
||||
|
||||
This mnemonic phrase can be used by Alice to restore *all* the transactions and funds in her wallet in the case of an event such as a lost mobile device, a software bug, or memory corruption. The mnemonic phrase is based on a common standard and therefore can be restored on any compatible software or hardware wallet. This allows Alice to try different wallets and also removes any dependency on the software or hardware maker of the wallet.
|
||||
This mnemonic phrase can be used by Alice to restore *all* the
|
||||
transactions and funds in her wallet in the case of an event such as a
|
||||
lost mobile device, a software bug, or memory corruption. The mnemonic
|
||||
phrase is based on a common standard and therefore can be restored on
|
||||
any compatible software or hardware wallet. This allows Alice to try
|
||||
different wallets and also removes any dependency on the software or
|
||||
hardware maker of the wallet.
|
||||
|
||||
Of note, when receiving funds to a new mobile wallet for the first time, many wallets will often re-verify that you have securely backed-up your mnemonic phrase. This can range from a simple prompt to requiring the user to manually re-enter the phrase.
|
||||
|
||||
@ -158,7 +339,17 @@ Alice is now ready to start using her new bitcoin wallet. ((("", startref="GSqui
|
||||
|
||||
[TIP]
|
||||
====
|
||||
((("addresses", "security of")))((("security", "bitcoin addresses")))Bitcoin addresses start with a 1 or 3. Like email addresses, they can be shared with other bitcoin users who can use them to send bitcoin directly to your wallet. There is nothing sensitive, from a security perspective, about the bitcoin address. It can be posted anywhere without risking the security of the account. Unlike email addresses, you can create new addresses as often as you like, all of which will direct funds to your wallet. In fact, many modern wallets automatically create a new address for every transaction to maximize privacy. A wallet is simply a collection of addresses and the keys that unlock the funds within.
|
||||
((("addresses", "security of")))((("security", "bitcoin
|
||||
addresses")))Bitcoin addresses start with a 1 or 3. Like email
|
||||
addresses, they can be shared with other bitcoin users who can use them
|
||||
to send bitcoin directly to your wallet. There is nothing sensitive,
|
||||
from a security perspective, about the bitcoin address. It can be posted
|
||||
anywhere without risking the security of the account. Unlike email
|
||||
addresses, you can create new addresses as often as you like, all of
|
||||
which will direct funds to your wallet. In fact, many modern wallets
|
||||
automatically create a new address for every transaction to maximize
|
||||
privacy. A wallet is simply a collection of addresses and the keys that
|
||||
unlock the funds within.
|
||||
====
|
||||
|
||||
In most wallets, there is no association between a Bitcoin address and any externally identifiable information including the user's identity. Until the moment an address is referenced as the recipient of value in a transaction posted on the bitcoin ledger, the Bitcoin address is simply part of the vast number of possible addresses that are valid in bitcoin. Only once an address has been associated with a transaction does it become part of the known addresses in the network.
|
||||
@ -196,7 +387,22 @@ Here are some methods for getting bitcoin as a new user:
|
||||
|
||||
[TIP]
|
||||
====
|
||||
((("privacy, maintaining")))((("security", "maintaining 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 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 touches traditional systems, such as currency exchanges, national and international regulations often apply. In order to exchange bitcoin for your national currency, you will often be required to provide proof of identity and banking information. Users should be aware that once a Bitcoin address is attached to an identity, all associated bitcoin transactions are also easy to identify and track. This is one reason many users choose to maintain dedicated exchange accounts unlinked to their wallets.
|
||||
((("privacy, maintaining")))((("security", "maintaining
|
||||
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
|
||||
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
|
||||
touches traditional systems, such as currency exchanges, national and
|
||||
international regulations often apply. In order to exchange bitcoin for
|
||||
your national currency, you will often be required to provide proof of
|
||||
identity and banking information. Users should be aware that once a
|
||||
Bitcoin address is attached to an identity, all associated bitcoin
|
||||
transactions are also easy to identify and track. This is one reason
|
||||
many users choose to maintain dedicated exchange accounts unlinked to
|
||||
their wallets.
|
||||
====
|
||||
|
||||
Alice was introduced to bitcoin by a friend so she has an easy way to acquire her first bitcoin. Next, we will look at how she buys bitcoin from her friend Joe and how Joe sends the bitcoin to her wallet.
|
||||
@ -214,12 +420,20 @@ http://bitcoinaverage.com/[Bitcoin Average]:: ((("BitcoinAverage")))A site that
|
||||
http://coincap.io/[CoinCap]:: A service listing the market capitalization and exchange rates of hundreds of crypto-currencies, including bitcoin.
|
||||
http://bit.ly/cmebrr[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, most bitcoin wallets will automatically convert amounts between bitcoin and other currencies. Joe will use his wallet to convert the price automatically before sending bitcoin to Alice.
|
||||
In addition to these various sites and applications, some bitcoin
|
||||
wallets will automatically convert amounts between bitcoin and other
|
||||
currencies. Joe will use his wallet to convert the price automatically
|
||||
before sending bitcoin to Alice.
|
||||
|
||||
[[sending_receiving]]
|
||||
==== Sending and Receiving Bitcoin
|
||||
|
||||
((("getting started", "sending and receiving bitcoin", id="GSsend01")))((("spending bitcoin", "bitcoin wallet quick start example")))((("spending bitcoin", see="also transactions")))Alice has decided to exchange $100 US dollars for bitcoin. She gives Joe $100 in cash, opens her Bluewallet mobile wallet application, and selects Receive. This displays a QR code with Alice's first Bitcoin address.
|
||||
((("getting started", "sending and receiving bitcoin",
|
||||
id="GSsend01")))((("spending bitcoin", "bitcoin wallet quick start
|
||||
example")))((("spending bitcoin", see="also transactions")))Alice has
|
||||
decided to exchange $100 US dollars for bitcoin. She gives Joe $100 in
|
||||
cash, opens her mobile wallet application, and selects Receive. This
|
||||
displays a QR code with Alice's first Bitcoin address.
|
||||
|
||||
Joe then selects Send on his smartphone wallet and is presented with a screen containing two inputs:
|
||||
|
||||
@ -242,9 +456,24 @@ The price of bitcoin has changed a lot over time, and an incredible amount since
|
||||
|
||||
He also selects a transaction fee for his transaction. The higher the transaction fee, the faster his transaction will be confirmed (included in a block by a miner). He selects the minimum transaction fee possible at that time (1 satoshi/vbyte).
|
||||
|
||||
Joe then carefully checks to make sure he has entered the correct amount, because he is about to transmit money and mistakes are 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.10 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 transaction is transmitted via the peer-to-peer protocol, it quickly propagates across the Bitcoin network. In less than a second, most of the well-connected nodes in the network receive the transaction and see Alice's address for the first time.
|
||||
Joe then carefully checks to make sure he has entered the correct
|
||||
amount, because he is about to transmit money and mistakes are
|
||||
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.10 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
|
||||
transaction is transmitted via the peer-to-peer protocol, it quickly
|
||||
propagates across the Bitcoin network. In less than a second, most of
|
||||
the well-connected nodes in the network receive the transaction and see
|
||||
Alice's address for the first time.
|
||||
|
||||
Meanwhile, Alice's wallet is constantly "listening" to published transactions on the Bitcoin network, looking for any that match the addresses it contains. A few seconds after Joe's wallet transmits the transaction, Alice's wallet will indicate that it is receiving 0.00194401 BTC.
|
||||
Meanwhile, Alice's wallet is constantly "listening" to published
|
||||
transactions on the Bitcoin network, looking for any that match the
|
||||
addresses it contains. A few seconds after Joe's wallet transmits the
|
||||
transaction, Alice's wallet will indicate that it is receiving
|
||||
0.00194401 BTC.
|
||||
|
||||
.Confirmations
|
||||
****
|
||||
|
Loading…
Reference in New Issue
Block a user