I’m going to explain cryptocurrencies and blockchains from Bitcoin’s point of view.
Bitcoin is a currency, which means you can…
But, unlike gold bars and currency notes, it is intangible.
Technically, Bitcoin is not a thing you can store or send, even digitally. Rather, it is a set of rules that let you transfer arbitrary values, like 0.1 or 4.5, securely.
Transfers of Bitcoin are scrambled messages of 1’s and 0’s that say things like “Transfer 2 Bitcoins from Sender X to Receiver Y”. [1]
These messages are kept secure by cryptography, a branch of mathematics that’s also used to unlock your phone, keep your passwords secret, and much more.
(As an aside, the crypto in cryptocurrencies comes from cryptography.)
These secure messages are enough to transfer value, as long as someone keeps a record of people’s balances.
With a record of your balance and a way to change it, you don’t really need to possess tangible money. Your balance increases when you receive a payment and decreases when you make one, similar to online banking.
That’s all you need – a secure way of transferring value between accounts and a record of their balances.
So, who stores and maintains this record, if not for banks?
Bitcoin works on a system where the record isn’t maintained by a single party. It is a public database that a group of computers called miners
maintain. The process of maintaining is called mining
.
Let's break down this process into 5 steps:
Step 1: Collect transactions
Over time, users like you and I make Bitcoin transactions with each other. We send the transactions' messages to all the computers, who collect up the messages into a group or block
. Let's call this Block #304
.
Step 2: Solve a math puzzle
To decide who gets to add Block #304
to the database, all the computers solve a difficult math puzzle, trying solutions one-by-one. This trial-by-error process is very time-consuming and costs electricity and CPU time (a.k.a. 💵).
Because the computers are proving that they’re doing work to add transactions to the database, this puzzle-solving process is also called Proof of Work
.
Step 3: Winner gets rewards
Whichever computer solves Block #304
's puzzle first adds the block’s transactions to its own copy of the database.
In exchange for the 💵 spent in solving it, the computer is rewarded with newly minted Bitcoins and some fees from each transaction.
Step 4: Winner updates the database
The winner’s copy is now different from others’ because it includes a new block of transactions.
This new block is now linked to Block #303
, which is linked to Block #302
, and so on… making a chain
. Our database in question is therefore called a blockchain
.
Step 5: All the computers synchronize
The winner shares the new update with the entire network. Then, all the computers do some math to verify the new transactions. Once the math checks out, they update their own copies of the database, so that everyone's in sync.
After many computers make the update, the new transactions are considered to be a part of the blockchain. [2]
You can trust these computers for maintaining the blockchain because they get rewards for being honest.
It’s extremely unlikely that someone tampers with an old transaction because that requires solving many of those rigorous trial-by-error puzzles. That’s why the blockchain is said to be “immutable”.
With this system, you can now trust a bunch of unknown computers, instead of a central authority like a bank, for transferring currency.
In fact, why only stop at currency? These computers can record transfers of other things too, like the ownership of a digital asset (which is where NFTs fit in!)
That’s all you need to know to understand how Bitcoin works.
What makes this so revolutionary? The way in which you can trust many unknown parties to record your transactions. This wasn’t completely possible before Bitcoin.
All this trust is enabled by cryptography, the wonderful field that makes these security guarantees robust.
(In case you’re curious, here’s a non-technical explanation of the cryptography behind cryptocurrencies.)
*[1] This is an overly simplified example of a transaction message. In reality, each message contains a lot more information and is much more structured.
[2] By requiring a majority of all the computers to verify the transactions, the system wards off attackers. If someone tries to sneak illegitimate transactions or changes into the database, the verification will fail and computers will reject the update.*