Why Bitcoin was created

NOTE: Not sure if this is useful at all. I welcome corrections. This was off the top of my head, probably a lot of stuff can be made clearer.

I see many people here are not really understanding why bitcoin was created.

As a result, many are unable to answer these questions:

  1. Why bitcoin over another crypo-currency?
  2. If bitcoin is slower than CC why use it?
  3. [your-question-here]?

If you can answer "Why was Bitcoin created?" you will automatically form your own opinion on the questions above!

Wrong Question

The original question we asked is kind of the wrong question to ask. It has a simple (unsatisfying) answer:

Question: Why was Bitcoin created?

Answer: To prevent spending the same digital dollar twice.

Wait.. what? Before we understand above, let's first understand the problem with digital money...

Money: physical vs. digital

Physical money is easy. Let's say we decide to use apples as currency. If I have one apple and you have one apple, and I give you one apple, than you now have two apples and I have none.

Digital money is hard. Let's day we decide to use cat pictures as currency. If I have a picture of a cat named "sparkles.jpeg" and you have a picture of a cat named "rocket.jpeg", and I send you "sparkles.jpeg" - then you now have two pictures of a cat, but I still have one!

Similarly, if we were to represent digital dollars as information (file, record in a database or photo of a dollar), then anytime we send a dollar, we effectively create a copy of it.

Why is this a problem?

Double Spending

Suppose I have only $1 digital dollar on my hard-drive (doesn't matter how it is stored - it can be a file called "Wallet.txt" with a single entry "Me = 1").

Let's say there are two online stores: Tables.com and Chairs.com. Tables.com sells tables online. Chairs.com sells chairs online.

The prices are as follows:

  1. Tables are $1 digital dollars each
  2. Chairs are $0.5 digital dollars each

I am now going to buy 1 table and 2 chairs (total cost $2) for only $1 dollar.

Here is how I can do this:

  1. First, I will create a copy of my wallet (where my digital dollars are stored). Let's called it "Wallet.txt.backup"
  2. Then, I will send $1 digital dollars to Tables.com store and ask them to ship me 1 Table.
  3. After my order is accepted, I will immediately immediately restore my "Wallet.txt.backup" file (which still has $1 dollars in it) and...
  4. Send $1 digital dollars to Chairs.com and order 2 chairs.

Since Chairs.com doesn't know about Tables.com (they don't have direct communication channel), they will both ship me the goods.

I have no spent the same dollar twice. I have double spent my dollar.

Banks solve Double Spending

There is a very simple (and elegant) solution to this problem. Instead of letting everyone keep track of their own Wallet.txt file, let one person do it and send all transactions through them.

Let's say that now we have to send every transaction through Mr. Knab. So if I want to pay Chairs.com I don't send the digital dollar to the store directly, but instead I send my digital dollar to Mr. Knab and ask him to forward my digital dollar to Chairs.com

Let's see how this prevents spending the same dollar twice:

  1. Mr. Knab knows that I have $1 digital dollar to my name. He stores it in a file called "Wallet.txt".
  2. I ask Mr. Knab to send $1 digital dollar to Tables.com store to order 1 Table.
  3. Mr. Knab subtracts $1 from me in "Wallet.txt" and adds it to the line that corresponds to Tables.com (how he does this is irrelevant - the important thing is that he remembers how many digital dollars I have)
  4. Mr. Knab sends an email to Tables.com saying "You got $1 digital dollar, please ship a Table to this guy".
  5. (Not comes me trying to cheat) After my order is accepted, I immediately ask Mr. Knab to send $1 digital dollar to Chairs.com to order 2 chairs.
  6. Mr. Knab checks "Wallet.txt" and sees that I have $0 digital dollars remaining and rejects my order.

I could not spend the same digital dollar twice.

In the real world "Mr. Knab" is the bank. It is an institution that stores your digital wallet to make sure you can't cheat.

Bank is a tool to prevent double spending.

The Right Question

Now that we understand the challenge with digital money (making sure you don't spend a digital dollar twice) and how the bank solves this (by storing your digital wallet for you) we can ask the proper question:

Question: Why was Bitcoin created to prevent spending the same digital dollar twice if the bank already does it?

Answer: Bitcoin prevents spending the same digital dollar twice without a bank.

Let us reiterate this point:

Bitcoin was created to prevent spending the same digital dollar twice without a bank.

Useful or Not?

Whether this property (preventing double spending without intermediaries) is a useful thing is not what we are concerned with here. Think of bitcoin as solving a challenge: hey, we can prevent double spending with a bank in between, can we do this without a bank? We leave the question whether Bitcoin is "useful" to others.

How Bitcoin solves this problem (Short version)

Bitcoin network chooses a random computer to briefly act as a bank. That computer then makes sure no dollar is spent twice. Randomly choosing computer is hard and Bitcoin solves this problem by requiring proof of work, the first to provide it will get chosen as the bank. Being chosen as a bank pays (block reward) and everyone wants to provide proof of work first. The more people compete the harder it becomes to be the bank. The harder it is to become the bank, the more secure the Bitcoin is.

How Bitcoin solves this problem (long version)

I lied. Bitcoin still has a bank. Only this bank is one of the people who participates in Bitcoin network: let's call them a person-bank. This person-bank is chosen randomly for EVERY transaction (*gross simplification*). The person-bank is responsible for verifying that the transaction is correct. Since Bitcoin network sends a copy of the Wallet.txt file to EVERY person, anyone can verify any transaction. If the person-bank verifies transaction correctly - it gets paid. Otherwise it gets nothing.

Picking random person is hard

The problem then becomes how to pick a person-bank randomly, so that you can't always have Joe being the person-bank and spending his own dollars twice.

Turns out the problem if picking a random person from a group of people is really hard to do in practice. Bitcoin solves this problem by posing a puzzle to each person - and the first person to come up with an answer gets to act as a person-bank for the next transaction.

This puzzle must be so hard, that nobody should be able to do any better on it than anybody else. It's hard to think of this in human terms, because with practice we get better at everything. However, imagine that everyone in the world got REALLY REALLY drunk and was forced to throw darts. So that no matter how much practice anyone had with darts, everyone was equally horrible. Every time anyone threw a dart it would always land randomly. Now, picking a random person is easy - pick the person who threw the dart into the middle of the board.

In Bitcoin this puzzle involves hashing and the answer to it is called proof of work. But this is all really irrelevant. What is important is that no computer can practice to get better at solving this puzzle. They are all equally drunk when it comes to the solution.

All the bitcoin computers who are trying to solve the puzzle are called miners. The winning participant gets a lot of money as a reward: currently 12.5BTC.

Security depends on puzzle complexity

If the puzzle is too easy, then someone can always solve it first (by buying a bigger computer) and approve their own invalid transaction. Bitcoin increases the difficulty of the puzzle if it takes the network less than 10 minutes to solve it. It decreases the difficulty if it takes more than 10 minutes to solve it.

If there are 1 person trying to solve a puzzle and another joins, then the difficulty will increase by two. This is because 1 person solved the puzzle every 10 minutes, so if another joins, they will solve it twice as fast (think two drunken people throwing darts instead of one - it will take half the time to hit the center).

If we have 100,000 people trying to solve a puzzle and another person joins, this will barely affect the difficulty. Alternatively, if we wanted to beat 100,000 and solve the puzzle first, we would need as much computation power as all those people combined (and a little bit more). We would need about 51% of the power of the whole bitcoin mining network.

That is why for Bitcoin to be secure, the puzzle must be hard for anyone on the planet EARTH to solve.

If bitcoin was only mined by one country, then another country could easily purchase enough computers (say 10x as many) to make sure they act as the bank every time. They could then spend the same dollar twice (for example, they could buy some tanks from another country, but then revert the money back to their wallet).



Submitted May 28, 2019 at 09:26AM by e5pK44sqszwxjEFL http://bit.ly/2Wv7U9V

Comments

Popular posts from this blog

Coinmarketcap are listing BCH sites as BTC

15 years of BTC Power Law