
What if I told you that Bitcoin doesn't work
like money? Bitcoin is just transactions. Suppose that Alice, Bob, and
Doge each possess 1 bitcoin. They have one piece of paper each, in which
they have written that they have one bitcoin. Alice wants to give Bob half a bitcoin.
She writes this on her piece of paper and she tells bob and Doge, so they can update
their own piece of paper with the transaction. Now Bob writes in his piece of paper that he gives
1 bitcoin to Doge, and he tells Alice and Doge. Doge, who is the most generous, writes that he gives 2 bitcoins to
Alice and he notifies the others. Everyone’s piece of paper is now a ledger
of transactions that looks the same, and it looks like this: If you calculate what this means you
find that Bob has half a bitcoin, Doge has no bitcoins, and Alice
has 2 and a half bitcoins.
Bitcoin works exactly like this. There
is a digital shared record, a ledger, in which all the transactions are kept, and
they determine the amount each participant has. The ledger is kept by every
participant independently. A participant is a computer in a network.
Therefore there are many copies of the ledger. But how do we determine if a transaction
is real? If “Alice gives bob 1 bitcoin” is written on the ledger this should be a
transaction created by Alice and not by Bob. This problem is solved with
signatures. The transaction “Alice gives Bob 1 bitcoin” must be followed by
a unique signature that only Alice can write. In bitcoin, this is accomplished by
something called a “private key”. If Alice writes a new transaction
and she wants to sign it, her private key and the transaction are
given to a function that outputs a signature, and this signature is practically impossible to reproduce without the private
key from which it is generated. Private keys are also used to generate public
keys, which are used by the other network participants to verify the validity of the new
transaction.
The public key, the signature, and the transaction are given to another function
that checks that the signature has been generated by the private key associated with the public
key and with the transaction given in input. Public keys are also used to generate bitcoin addresses, which are simply the
destinations of bitcoin payments. Programs that store private keys and public keys
and sign transactions are called bitcoin wallets.
But there is another problem:
how do the participants of the network update their own ledger
with the incoming transactions? In what order are transactions updated and
what if there is conflicting information? First, we need to know how
the ledger is organized: the ledger is divided in blocks linked together
and forming a chain of blocks (a blockchain!). Each block contains some transactions
and a code. The code is generated using the content of the block and the content
of all the previous blocks in the ledger. Generating the code is very hard and
uses a lot of computational power. Let’s say that Alice and Bob broadcast their
transactions because they want them added to everyone’s ledger. The other participants of the
network, after receiving the signed transactions, generate a new block and try to find the code for
it, in a highly computation-intensive process. The first participant who is able to find the
code broadcasts the new block to the network. The block is then added to the
ledger of every other participant.
Generating the code validates the transactions
in the new block with “proof of work” which means that computational power has been used. The
new block also contains a special transaction, which rewards who found the code with
new bitcoins created from scratch. Validating new blocks by using computational
power to generate codes is called “mining”. Miners also receive transaction fees. Transaction fees incentivize miners to include
the transactions in a new block earlier. If someone broadcasts a block with a transaction
that conflicts with other transactions, that block will be stored alongside the
others, forming another chain of blocks. After a while, the chain that becomes
longer gets considered the valid one. In this way, the group of miners with the
most computing power decide which transaction history is the valid one because they will
be able to mine new blocks faster. Therefore, the transactions considered valid are
the ones with the most proof of work. In order for a single entity
to break this mechanism, it would need more computing power than
all of the other miners put together. As the network grows it becomes more
and more practically unfeasible.
Now that you probably understand
more, here is a clarification. Thus far I called anyone who somehow
interacted with Bitcoin a “participant”. But you don’t need to mine bitcoin if you want
to use the network. If you want to make a bitcoin transaction you just need a wallet. You can
also decide to just store the whole blockchain on a device and keep it updated. Or you can
decide to be also a miner. It’s up to you. If you liked this video I encourage you to share
it with a friend who might enjoy it, or on social media.
If you want to support our work, we have
set up a Patreon page. Or you can choose to donate to us in bitcoin. You can find the Patreon page
and our bitcoin address in the video description. We are also Brave registered creators, so if you are using the Brave browser
you can choose to donate to us in BAT..