How Does Bitcoin Work?

Bitcoin is an electronic payment system created in 2009. It allows you to send money to anyone in the world, and you don’t need to ask anyone’s permission to create an account.

It was created as a solution to the modern financial system, where we have a small number of large banks that control who gets an account and which transactions get processed. This means the control of money is centralized, and we have to trust the banks to act responsibly.

"Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve."
Satoshi Nakamoto

The centralization of banking and the resulting financial crisis of 2007 inspired the development of Bitcoin. It’s a payment system, and it runs without a central point of control. It was designed anonymously by Satoshi Nakamoto, and was released in January 2009.

Anyone can run the program or use the system.

The following is a simple explanation of how it works.

What is Bitcoin?

Bitcoin is just a computer program. You can download it and run it on your computer.

download program

When you run the program, it will connect to other computers who are also running this program, and they will start sharing a file with you. This file is called the blockchain, and it is basically a big list of transactions.

run program

When a new transaction enters the network, it gets relayed from computer to computer until everyone has a copy of the transaction. At roughly 10 minute intervals, a random computer (node) on the network will add the latest transactions they have received on to the blockchain, and share the updates with everyone else on the network.

transaction

As a result, the Bitcoin program creates a large network of computers that communicate with each other to share a file and update it with new transactions.

What problem does Bitcoin solve?

It was possible to relay transactions across a network of computers before Bitcoin. However, the problem is that you can insert conflicting transactions in to a network of computers. For example, you could create two separate transactions that spend the same digital coin, and send both of these transactions in to the network at the same time.

This is known as a "double-spend".

transaction

So if you’re creating an electronic payment system without a central point of control, you have the problem of figuring out which of these transactions came "first", and this is a difficult thing to do when you have a network of computers all acting independently. Some computers will receive the green transaction first, and some computers will receive the red transaction first.

Who’s to decide which one came "first" and should be the only one written to the file?

Bitcoin solves this problem by forcing nodes to keep all the transactions they receive in memory before writing them to a file. Then, at 10-minute intervals, a random node on the network will add the transactions from their memory on to the file.

This updated file is then shared with the network, and nodes will accept the transactions in the updated file as "correct", removing any conflicting transactions from their memory. As a result, no double-spend transactions will ever be written to the file, and all nodes can update their files in agreement with one another.

The process of adding transactions on to the file is called mining, and it is basically a network-wide competition that cannot be controlled by a single node on the network.