Introduction to Bitcoin
Andrew Wu introduces the decentralized ledger database that kicked off the blockchain boom, Bitcoin.
Excerpt From
Transcript
In the previous module, we'd examined the
technology behind a generic blockchain as a
decentralized database. In this module, we
look at a couple of examples of how
this technology is actually implemented
and start to examine some of the economic and
business aspects as well. Will start by looking at Bitcoin, which is really what kicked off the whole blockchain boom. At its core, the bitcoin is a decentralized ledger database. That is, instead of
storing any kind of data, the Bitcoin blockchain
is a very specialized, limited purpose
database that is really designed to accommodate
simple transaction data. In other words, the main data transmitted to and stored on the blockchain is in the format of who paid whom and how much. If we go back in history, you'll find that when it
was launched in 2009, the original vision was quite different than what it is now. The goal was to
serve as a flexible, low-cost payment system
like PayPal that everyone can use on their phones for payments large and small. But, unlike PayPal,
it will replace the bank-based payment rails
like ACH or credit cards, with the peer-to-peer blockchain, cutting out banks altogether. In fact, the designer seemed to have a
profound distrust for existing financial intermediaries
and really envisioned Bitcoin to be a digital
replacement to fiat currencies. Themes like no central
control of the system and total anonymity are often highlighted as the core features. Then over a decade
into existence, we now know that reality
was quite different because of a combination of
technical limitations and economic factors. We'll go over these
in the next videos, but in a nutshell, we realized it wasn't going to be a good payment system because it can't just handle that many, seven payments per
second and max capacity. Also, economically,
people were certainly not that keen on cutting
out the central banks. Consequently, payment
usage decline, and processing fees remain high. Moreover, the consensus
mechanism, while very innovative, is extremely energy inefficient, which ironically resulted in a significant degree
of centralization. Therefore, currently, Bitcoin exists somewhat
like a digital gold or a digital treasure whose
intrinsic value is hard to pin down and a lot of it is
driven by investor sentiment. Technologically, now that we know the generic
blockchain technology, it's very easy to define Bitcoin. Remember, we looked at the blockchain as a decentralized
database consisting of three parts: the user application that maintains user identities
and generates the data, the peer-to-peer network of
nodes that receives the data and "processes" the data
with a consensus protocol, and the database itself, which stores data in a unique chain format using hash pointers
and linked list. Here's the Bitcoin implementation
of this technology. The user application is
called a Bitcoin wallet. If you want to send
or receive Bitcoins, you could write a
script yourself, but more often than not, you'll be using a
wallet app to generate the transaction data and
broadcast it to the network. Sometimes the wallet
app could be used as a identity management tool as well and store your private keys. Second, the nodes of the Bitcoin network
are called miners. They're the ones processing
the transaction data by running some simple validation
tasks like checking your crypto signatures and
organizing the data into blocks following the
so-called UTXO principle, which we'll review shortly. In the Bitcoin network, consensus across nodes
are reached using a protocol called
proof-of-work or mining, which is a major
innovation of Bitcoin. Again, data on the
Bitcoin database is limited to the
transaction records in the form of who paid who, how much, and when
and is stored using the generic hash pointers and linked lists to
facilitate searching. Now, once we move from a generic technology to an actual business
implementation, there are several key concerns
that we need to address. First, we can't just use the generic random
consensus protocol from the previous module. As we saw, it's way too vulnerable to
double-spend attacks. So we need a more
robust consensus. Second, it all sounds
fine and dandy on paper, but how do we actually get
the network up to scale? Obviously, people
are not going to contribute their
computing resources and participate as nodes for free so they need to be
incentivized to do so. There needs to be a reward
structure that encourages nodes to maintain the network so that it doesn't
fall into disuse. We'll explore these topics in this and the next few videos. First, let's take a deeper
look at the data structure, which is the easiest
component to understand. Because the data is limited
to transactions only, the Bitcoin blockchain is really a true ledger that records just who has paid
how much to whom, and if you recall the final
video from the last module, from the actual data, most of these transactions seem to have two or more recipients. Now, let's see why. Consider
this chain of transactions. Andrew, the miner,
mined 100 coins. He then paid 80 coins to Bob, who in turn paid
15 coins to Carol. Carol, then paid 10
coins back to Andrew, and finally, Andrew
paid David 25 coins. How do you do it on an
actual paper ledger? Well, you'll probably just write these five statements down. In the Bitcoin
blockchain, however, these transactions are stored as input-output list to take advantage of the hash pointers
to facilitate searching. The gist of the model is that most transactions have to have both the input field and the output field and
they have to be equal. The exception is the
first transaction in the block which is called
the coinbase transaction. In this transaction,
there's no input and the 100 coins are minted out of thin air and awarded
to the miner Andrew. Now things get more interesting. When Andrew pays Bob 80 coins, he will generate and broadcast the transaction where
in the input field, he will include a
hash pointer pointing to his receipt of the
100 coins before. This is like including a piece of evidence of him
receiving the coins. Now critically as the output, in addition to giving
Bob the 80 coins, he has to include himself as the recipient and
send the remainder, the 20 coins, back to himself. In other words, the
previous transaction that Andrew referred
as the evidence, must be fully consumed. Why? Well, if you think about it, this really makes
searching easier because instead of traversing
all the way up the chain, you only need to
search back one step. Let's keep going down the ledger to see more of this in action. When Bob pays Carol 15 coins, he will include as
evidence the transaction where his address received
the 80 coins from Andrew. In the output field, he'll send 15 to Carol
and 65 back to himself. Similarly, when Carol
pays Andrew 10 coins, she will include
the transaction of her receiving 15 coins as evidence and send 10 to Andrew
and five back to herself. Finally, when Andrew wants
to pay David 25 coins, he has to include two inputs because only the sum of the two can cover the transaction. He'll reference the transaction
where he received 20 from himself and the transaction where he received 10 from Carol. This sums up to 30 coins. So he pays David 25 as the output and five
coins back to himself. As you can see, for a miner validating
these transactions, the task is quite easy. Remember the scripts: check, seek, and equal verify. Instead of searching
through the entire chain, which could take some time, they simply check the signatures, then check the input and the output of the
transaction to make sure they sum up
equally and if they do, is guaranteed by design to
be a valid transaction. This is called the
UTXO principle, and the goal is to enhance the efficiency in
transaction verification.