Your browser is ancient!
Upgrade to a different browser to experience this site.

Skip to main content

Fintech

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.