I would like to write about this book titled mastering Bitcoin.
CHAPTER 1
Introduction
What is Bitcoin?
Bitcoin is a collection of concepts and technologies that form the basis of a digital money
ecosystem. Units of currency called bitcoins are used to store and transmit value among
participants in the bitcoin network. Bitcoin users communicate with each other using
the bitcoin protocol primarily via the Internet, although other transport networks can
also be used. The bitcoin protocol stack, available as open source software, can be run
on a wide range of computing devices, including laptops and smartphones, making the
technology easily accessible.
Users can transfer bitcoin over the network to do just about anything that can be done
with conventional currencies, such as buy and sell goods, send money to people or
organizations, or extend credit. Bitcoin technology includes features that are based on
encryption and digital signatures to ensure the security of the bitcoin network. Bitcoins
can be purchased, sold and exchanged for other currencies at specialized currency ex‐
changes. Bitcoin in a sense is the perfect form of money for the Internet because it is
fast, secure, and borderless.
Unlike traditional currencies, bitcoins are entirely virtual. There are no physical coins
or even digital coins per se. The coins are implied in transactions which transfer value
from sender to recipient. Users of bitcoin own keys which allow them to prove owner‐
ship of transactions in the bitcoin network, unlocking the value to spend it and transfer
it to a new recipient. Those keys are often stored in a digital wallet on each user’s com‐
puter. Possession of the key that unlocks a transaction is the only prerequisite to spend‐
ing bitcoins, putting the control entirely in the hands of each user.
Bitcoin is a fully-distributed, peer-to-peer system. As such there is no “central” server
or point of control. Bitcoins are created through a process called “mining”, which in‐
volves looking for a solution to a difficult problem. Any participant in the bitcoin net‐
work (i.e., any device running the full bitcoin protocol stack) may operate as a miner, using their computer’s processing power to attempt to find solutions to this problem.
Every 10 minutes on average, a new solution is found by someone who then is able to
validate the transactions of the past 10 minutes and is rewarded with brand new bitcoins.
Essentially, bitcoin mining de-centralizes the currency-issuance and clearing functions
of a central bank and replaces the need for any central bank with this global competition.
The bitcoin protocol includes built-in algorithms that regulate the mining function
across the network. The difficulty of the problem that miners must solve is adjusted
dynamically so that, on average, someone finds a correct answer every 10 minutes re‐
gardless of how many miners (and CPUs) are working on the problem at any moment.
The protocol also halves the rate at which new bitcoins are created every 4 years, and
limits the total number of bitcoins that will be created to a fixed total of 21 million coins.
The result is that the number of bitcoins in circulation closely follows an easily pre‐
dictable curve that reaches 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 network and a distributed
computing innovation. The bitcoin currency is really only the first application of this
invention. As a developer, I see bitcoin as akin to the Internet of money, a network for
propagating value and securing the ownership of digital assets via distributed compu‐
tation. There’s a lot more to bitcoin than first meets the eye.
In this chapter we’ll get started by explaining some of the main concepts and terms,
getting the necessary software and using bitcoin for simple transactions. In following
chapters we’ll start unwrapping the layers of technology that make bitcoin possible and
examine the inner workings of the bitcoin network and protocol.
Digital Currencies Before Bitcoin
The emergence of viable digital money is closely linked to developments in cryptogra‐
phy. This is not surprising when one considers the fundamental challenges involved
with using bits to represent value that can be exchanged for goods and services. Two
fundamental questions for anyone accepting digital money are:
- Can I trust the money is authentic and not counterfeit?
- Can I be sure that no one else can claim that this money belongs to them and not
me? (aka the “double-spend” problem)
Issuers of paper money are constantly battling the counterfeiting problem by using
increasingly sophisticated papers and printing technology. Physical money addresses
the double-spend issue easily because the same paper note cannot be in two places at
once. Of course, conventional money is also often stored and transmitted digitally. In this case the counterfeiting and double-spend issues are handled by clearing all elec‐
tronic transactions through central authorities that have a global view of the currency
in circulation. For digital money, which cannot take advantage of esoteric inks or holo‐
graphic strips, cryptography provides the basis for trusting the legitimacy of a user’s
claim to value. Specifically, cryptographic digital signatures enable a user to sign a digital
asset or transaction proving the ownership of that asset. With the appropriate archi‐
tecture, digital signatures also can be used to address the double-spend issue.
When cryptography started becoming more broadly available and understood in the
late 1980s, many researchers began trying to use cryptography to build digital curren‐
cies. These early digital currency projects issued digital money, usually backed by a
national currency or precious metal such as gold.
While these earlier digital currencies worked, they were centralized and as a result they
were easy to attack by governments and hackers. Early digital currencies used a central
clearinghouse to settle all transactions at regular intervals, just like a traditional banking
system. Unfortunately, in most cases these nascent digital currencies were targeted by
worried governments and eventually litigated out of existence. Some failed in spectac‐
ular crashes when the parent company liquidated abruptly. To be robust against inter‐
vention by antagonists, whether legitimate governments or criminal elements, a de-
centralized digital currency was needed to avoid a single point of attack. Bitcoin is such
a system, completely de-centralized by design, and free of any central authority or point
of control that can be attacked or corrupted.
Bitcoin represents the culmination of decades of research in cryptography and dis‐
tributed systems and includes four key innovations brought together in a unique and
powerful combination. Bitcoin consists of:
• A de-centralized peer-to-peer network (the bitcoin protocol);
• A public transaction ledger (the blockchain);
• A de-centralized mathematical and deterministic currency issuance (distributed
mining), and;
• A de-centralized transaction verification system (transaction script).
History of Bitcoin
Bitcoin was invented in 2008 by Satoshi Nakamoto with the publication of a paper titled
“Bitcoin: A Peer-to-Peer Electronic Cash System”. Satoshi Nakamoto combined several
prior inventions such as b-money and HashCash to create a completely de-centralized
electronic cash system that does not rely on a central authority for currency issuance or
settlement and validation of transactions. The key innovation was to use a distributed
computation system (called a “Proof-Of-Work” algorithm) to conduct a global “elec‐
tion” every 10 minutes, allowing the de-centralized network to arrive at consensus about the state of transactions. 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 distributed compu‐
tation that provides security and resilience for bitcoin has increased exponentially and
now exceeds that combined processing capacity of the world’s top super-computers.
Bitcoin’s total market value is estimated at between 5 and 10 billion US dollars, de‐
pending on the dollar/bitcoin exchange rate. The largest transaction processed so far
by the network was $150 million US dollars, transmitted instantly and processed
without any fees.
Satoshi Nakamoto withdrew from the public in April of 2011, leaving the responsibility
of developing the code and network to a thriving group of volunteers. The name Satoshi
Nakamoto is an alias and the identity of the person or people behind this invention is
currently unknown. However, neither Satoshi Nakamoto nor anyone else exerts control
over the bitcoin system, which operates based on fully transparent mathematical prin‐
ciples. 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
Satoshi Nakamoto’s invention is also a practical solution to a previously unsolved prob‐
lem in distributed computing, known as the Byzantine Generals’ Problem. Briefly, the
problem consists of trying to agree on a course of action by exchanging information
over an unreliable and potentially compromised network. 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 science and has wide
applicability beyond currency. It can be used to achieve consensus on decentralized
networks for provably-fair elections, lotteries, asset registries, digital notarization and
more.
Bitcoin Uses, Users and Their Stories
Bitcoin is a technology, but it expresses money which is fundamentally a language for
exchanging value between people. Let’s look at the people who are using bitcoin and
some of the most common uses of the currency and protocol through their stories. We
will re-use these stories throughout the book to illustrate the real-life uses of digital
money and how they are made possible by the various technologies that are part of North American Low Value Retail
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 some of her bitcoin to buy a cup of coffee
at Bob’s Cafe in Palo Alto. 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.
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.
Charitable Donations
Eugenia is the director of a children’s charity in the Philippines. Recently she has
discovered bitcoin and wants to use it to reach a whole new group of foreign and
domestic donors to fundraise for her charity. She’s also investigating ways to use
bitcoin to distribute funds quickly to areas of need. This story will show the use of
bitcoin for global fundraising across currencies and borders and the use of an open
ledger for transparency in charitable organizations.
Import/Export
Mohammed is an electronics importer in Dubai. He’s trying to use bitcoin to buy
electronics from the USA and China for import into the U.A.E. to accelerate the
process of payments for imports. This story will show how bitcoin can be used for
large business-to-business international payments tied to physical goods.
Mining for Bitcoin
Jing is a computer engineering student in Shanghai. He has built a “mining” rig to
mine for bitcoins, using his engineering skills to supplement his income. This story
will examine the “industrial” base of bitcoin, the specialized equipment used to
secure the bitcoin network and issue new currency.
Each of the stories above is based on real people and real industries that are currently
using bitcoin to create new markets, new industries and innovative solutions to global
economic issues.
Getting Started
To join the bitcoin network and start using the currency, all a user has to do is download
an application or use a web application. Since bitcoin is a standard, there are many
implementations of the bitcoin client software. There is also a “reference implementa‐
tion”, also known as the Satoshi Client, which is managed as an open source project by
a team of developers and is derived from the original implementation written by Satoshi
Nakamoto.
The three primary forms of bitcoin clients are:
Full Client
A full client, or “full node” is a client that stores the entire history of bitcoin trans‐
actions (every transaction by every user, ever), manages the user’s wallets and can
initiate transactions directly on the bitcoin network. This is similar to a standalone
email server, in that it handles all aspects of the protocol without relying on any
other servers or third party services.
Light Client
A lightweight client stores the user’s wallet but relies on third-party owned servers
for access to the bitcoin transactions and network. The light client does not store a
full copy of all transactions and therefore must trust the third party servers for
transaction validation. This is similar to a standalone email client that connects to
a mail server for access to a mailbox, in that it relies on a third party for interactions
with the network.
Web Client
Web-clients 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.
Mobile Bitcoin
Mobile clients for smartphones, such as those based on the Android system, can either
operate as full clients, light clients or web clients. Some mobile clients are synchronized
with a web or desktop client, providing a multi-platform wallet across multiple devices
but with a common source of funds.
The choice of bitcoin client depends on how much control the user wants over funds.
A full client will offer the highest level of control and independence for the user, but in
turn puts the burden of backups and security on the user. On the other end of the range
of choices, a web client is the easiest to set up and use, but the tradeoff with a web client
is that counterparty risk is introduced because security and control is shared by the user
and the owner of the web service. If a web-wallet service is compromised, as many have been, the users can lose all their funds. Conversely, if a user has a full client without
adequate backups, they may lose their funds through a computer mishap.
For the purposes of this book, we will be demonstrating the use of a variety of bitcoin
clients, from the reference implementation (the Satoshi client) to web-wallets. Some of
the examples will require the use of the reference client which 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 the reference client.
Quick Start
Alice, who we introduced in “Bitcoin Uses, Users and Their Stories” on page 4, is not a
technical user and only recently heard about bitcoin from a friend. She starts her journey
by visiting the official website bitcoin.org, where she finds a broad selection of bitcoin
clients. Following the advice on the bitcoin.org site, she chooses the lightweight bitcoin
client Multibit.
Alice follows a link from the bitcoin.org site to download and install Multibit on her
desktop. Multibit is available for Windows, Mac OS and Linux desktops.
A bitcoin wallet must be protected by a password or passphrase.
There are many bad actors attempting to break weak passwords, so
take care to select one that cannot be easily broken. Use a combina‐
tion of upper and lower-case characters, numbers and symbols.
Avoid personal information such as birth-dates or names of sports
teams. Avoid any words commonly found in dictionaries, in any
language. If you can, use a password generator to create a complete‐
ly random password that is at least 12 characters in length. Remem‐
ber: bitcoin is money and can be instantly moved anywhere in the
world. If it is not well protected, it can be easily stolen.
Once Alice has downloaded and installed the Multibit application, she runs it and is
greeted by a “welcome” screen:
1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK. Next to the wallet’s bitcoin address, there is a
QR code, a form of barcode that contains the same information in a format that can be
easily scanned by a smartphone’s camera. The QR code is the black and white square
on the right side of the window. Alice can copy the bitcoin address or the QR code onto
her clipboard by clicking on the copy button adjacent to each of them. Clicking on the
QR code itself will magnify it, so that it can be easily scanned by a smartphone camera.
Alice can also print the QR code as a way to easily give her address to others without
them having to type the long string of letters and numbers.
Bitcoin addresses start with the digit “1” or “3”. Like email address‐
es, they can be shared with other bitcoin users who can use them to
send bitcoin directly to your wallet. Unlike email addresses, you can
create new addresses as often as you like, all of which will direct funds
to your wallet. A wallet issimply a collection of addresses and the keys
that unlock the funds within. There is practically no limit to the
number of addresses a user can create.
Alice is now ready to start using her new bitcoin wallet.
Getting your first bitcoins
It is not possible to buy bitcoins at a bank or foreign exchange kiosks at this time. As of
2014, it is still quite difficult to acquire bitcoins in most countries. There are a number
of specialized currency exchanges where you can buy and sell bitcoin in exchange for
a local currency. These operate as web-based currency markets and include:
• Bitstamp (bitstamp.net), a European currency market that supports several cur‐
rencies including euros (EUR) and US dollars (USD) via wire transfer
• Coinbase (coinbase.com), a US-based bitcoin wallet and platform where merchants
and consumers can transact in bitcoin. Coinbase makes it easy to buy and sell
bitcoin, allowing users to connect to US checking accounts via the ACH system.
Crypto-currency exchanges such as these operate at the intersection of national cur‐
rencies and crypto-currencies. As such, they are subject to national and international
regulations and are often specific to a single country or economic area and specialize
in the national currencies of that area. Your choice of currency exchange will be specific
to the national currency you use and limited to the exchanges that operate within the
legal jurisdiction of your country. Similar to opening a bank account, it takes several
days or weeks to set up the necessary accounts with the above services because they
require various forms of identification to comply with KYC (Know Your Customer) and
AML (Anti-Money Laundering) banking regulations. Once you have an account on a bitcoin exchange, you can then buy or sell bitcoins quickly just as you could with foreign
currency with a brokerage account.
A more complete list can be found at http://bitcoincharts.com/markets/, a site that offers
price quotes and other market data across many dozens of currency exchanges.
There are three other methods for getting bitcoins as a new user:
• Find a friend who has bitcoins and buy some from them directly. Many bitcoin
users started this way.
• Use a classified service like localbitcoins.com to find a seller in your area to buy
bitcoins for cash in an in-person transaction.
• Sell a product or service for bitcoin. If you’re a programmer, sell your programming
skills. If you have an online store, see (to come) to sell in bitcoin.
• Use a bitcoin ATM in your city. A map of bitcoin ATMs can be found at http://
www.coindesk.com/bitcoin-atm-map/
Alice was introduced to bitcoin by a friend and so she has an easy way of getting her
first bitcoin while she waits for her account on a California currency market to be
verified and activated.
Sending and receiving bitcoins
Alice has created her bitcoin wallet and she is now ready to receive funds. Her wallet
application randomly generated a private key (described in more detail in “Private
Keys” on page 63) together with its corresponding bitcoin address. At this point, her
bitcoin address is not known to the bitcoin network or “registered” with any part of the
bitcoin system. Her bitcoin address is simply a number that corresponds to a key that
she can use to control access to the funds. There is no account or association between
that address and an account. Until the moment this address is referenced as the recipient
of value in a transaction posted on the bitcoin ledger (the blockchain), it is simply part
of the vast number of possible addresses that are “valid” in bitcoin. Once it has been
associated with a transaction, it becomes part of the known addresses in the network
and Alice can check its balance on the public ledger.
Alice meets her friend Joe who introduced her to bitcoin at a local restaurant so they
can exchange some US dollars and put some bitcoins into her account. She has brought
a printout of her address and the QR code as displayed in her bitcoin wallet. There is
nothing sensitive, from a security perspective, about the bitcoin address. It can be posted
anywhere without risking the security of her account.
Alice wants to convert just $10 US dollars into bitcoin, so as not to risk too much money
on this new technology. She gives Joe a $10 bill and the printout of her address so that
Joe can send her the equivalent amount of bitcoin.
TO BE CONTINUED........
Hi, great post, worth a follow. Looking forward to some more of your stuff.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you very much. You are followed up. I really appreciate your contribution and comment. I will try to post more content
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit