Series written by Maxwell Foley, Software Engineer at CertiK
Welcome to our new series: How Bitcoin Works. This series will go into sections including cryptography, mining and consensus, and hashing.
In order to dive deep into Bitcoin, let’s first understand the purpose of it.
What is Bitcoin?
This is the central question. We’ll start short.
Bitcoin is a digital-exclusive currency that can be transferred over the internet directly between two people. It operates as an alternative to traditional fiat by existing as a digital form of money.
With Bitcoin, there is no need to have a third party like a bank or a payments company handling and processing all transactions, making Bitcoin a leaner, fairer, and cleaner method of payment. Instead, an individual can send payment money directly to another party: without a central authority (or the accompanying fees) the process is faster and fairer.
Beginners often assume that there is some sort of piece of data or file on the user’s computer that represents “the Bitcoin” that is being passed around — but that is not the case.
Rather than existing as data, a Bitcoin is simply represented by numbers on a ledger — a virtual accounting book that serves as the visible proof of ownership. To say “I own one Bitcoin” is to say that we can look at this publically available accounting book, read the numbers, and show everybody that I have one Bitcoin associated with my name and account.
So, understand that Bitcoin is really just a database of sorts that represents how much money each participant in the system has.
More specifically, this is a ledger of transactions — a list of all payments that have been made in the system. Once you have this list, you can calculate how much money any individual person or party has merely by adding up all transactions in which they got paid and subtracting transactions in which they spent money.
It should be: this method is structured in a similar way to how money is represented by online banks and credit card companies — those organizations also keep a big database with a record of all payments made in the system. And, as payments go through, these organizations add and subtract from the number by your name that tells you how much money you have.
The difference is that with organizations, this service is centralized — it requires all payments to go through and be managed by a third party. This third party holds a lot of power: they can use this to charge fees, or they can be responsible for your funds, including all the accompanying risks.
Removing that third party gives individuals total ownership of their finances and frees them from “trusted” third parties who may leverage their funds.
As we will see, by making a decentralized model with Bitcoin, we streamline the economic process — but add enormous amounts of confusion and complexity to the database model with this fix.
To back such a radical solution, it’s built on innovative Blockchain technology.
Why do we want decentralized money?
The first and most obvious reason is that in a centralized system we are putting a lot of trust in a third party to handle our money properly.
Just because that’s the standard doesn’t mean it’s great. Remember the bank bailouts? And, on a smaller level banks often do inappropriate things with their customers’ trust. For example, in the Equifax data breach, millions of users who had never used Equifax were affected because their bank had shared their data with Equifax with no opportunity to opt out.
The stress caused by needing to trust someone else to hold onto your money for you is a genuine frustration felt by many. It opens you up to their risks, while also offering opportunities to be exploited on fees and other similar charges.
The second reason is because a centralized system has a central point of failure. If all transactions are processed and stored in a server in, say, Dubai, then someone could just go to Dubai, walk into the offices of our currency company, and smash the server to pieces with a hammer.
Dramatic? Sure. But when it’s an entire financial system at stake, drama can be forgiven.
In comparison, nothing like this is possible with Bitcoin. As a decentralized solution, there is no central server to smash to bits and no third party to leverage your fees or trust.
That freedom from central authority makes Bitcoin more robust — if it could’ve been stopped by now, it would’ve.
Bitcoin and other cryptocurrencies are developed with putting power in the hands of the people in a way to prevent central authorities — and even governments — from interfering with them is a very practical and necessary concern for true economic freedom and transparency.
Decentralized systems are a new frontier, and one that can make some people uneasy. When we are working through the design of a system like Bitcoin, it will be tempting to worry about “whoever is in charge…” and the enormous power they might hold over the system.
Therein enters the elegant solution of Bitcoin: there is no person in charge who can just decide to make changes. It is transparent, with power held autonomously by the system and the people who use it.
This is completely different from most organizations we deal with in our lives. We’re used to central authorities: from our families, offices, and even to our government, we expect someone in charge — and even in the software world, where central servers dictate the execution.
In comparison, Bitcoin is peer-to-peer software which means that there is no server — there are only clients. The clients connect to each other and form a network in which they transmit messages back and forth for peer-to-peer communication. When you, for instance, want to send a payment to your friend Alan for picking you up from the airport, there’s no centralized server you can notify to tell them that this is what you want done. Instead, the Bitcoin tells everyone, on the ledger, what has happened.
How can it tell everyone? Therein lies the genius of Bitcoin.
While Bitcoin is essentially a database, but there is no server to store this database on. So: where is the database stored without a central server? The answer is that every user automatically stores their own copy of the database on their own computer.
There’s no central authority: ownership is tracked by you, you, me, and them.
With this diversified consensus, all users can track what new payments have occurred and they try to keep their copy of the database up to date.
At this point, let’s take a step back and consider how difficult the problem posed to us is: how could we make an instant, decentralized system for finance?
Imagine, for a moment, a totally lawless zone — one with central authority to enforce order. In this lawless zone, the people themselves have to figure out how they live.
In this zone, there is a market where people are transferring money to each other. Only they are not able to hand over any sort of physical money. If someone wants to buy a goat for ten coins, he has no ten coins to give you — instead he simply says “Okay, I am giving you ten imaginary coins now.”
Everyone is busy frantically scribbling down in a book they carry with them every transaction that occurs — even if they aren’t involved — so they have a record of how many imaginary coins everyone has at any given point.
When someone tells you he is giving you ten coins for your goat, you have to make sure he actually has ten coins to his name — and that after he buys your goat everyone else will understand and agree that you have ten coins more than you did before. And, as soon as the transaction is over, everyone updates their book in accordance with the transaction.
Of course, we need everyone to agree on their books for clarity and transparency. If no one knows for sure how many coins I have, I might as well have zero. Without trust, the system is lost.
Furthermore, we can’t assume that everyone in the situation is working together to try to get a consensus. We have to assume, given the lack of central authority, that there will be bad actors looking to actively cheat and swindle everyone else and if they could get away with it. This system must not only be trusted, but deserve that trust — all in a world with bad actors and without central authority.
And to make things worse, we cannot order anyone to do anything — all we can do is recommend that people conduct business in a certain way and design these recommendations so elegantly that a stable system of order emerges.
This situation is an analogy for the nature of software on a peer-to-peer network. The people who have created Bitcoin have published a software program that communicates on this network and automatically follows certain rules and protocols for sending messages: it won’t try to spend money it doesn’t have, it maintains an accurate copy of the ledger and it forwards this copy to other users for full data sharing.
Suddenly, with blockchain, the impossible idea above happens — safely and instantly.
Of course, bad actors will try to upset system — if the prize is big enough, powerful bad actors may put considerable efforts into the endeavor. But Satoshi Nakamoto, the founder of Bitcoin, found a way around this: by tying the Bitcoin system so strongly, it would be nearly impossible to change a blockchain transaction — to do so, you’d have to overpower the entire system! And, as blockchain is decentralized, that means the only possible way to send even a single false transaction is to have greater computing resources than all honest actors combined — essentially swallowing the system whole.
With so many decentralized and protected computers, the sheer scale required to hack even one blockchain transaction renders the act virtually impossible.
How is this possible? The answer is firstly, a “magical” cryptographic way to sign your transactions so no one else can spend your money. This then ties into an ingenious, elegant design known as “the blockchain.”
There! You understand the purpose of Bitcoin — not just a tool for speculation or a NeoPets money as your Uncle insists.
The next question is: to support such a thing as Bitcoin, how does the blockchain work?
Stay tuned for Part 2 on Cryptography Identity!