Now we shall take a look at what Bitcoin (BTC) is and how it came to being. And I will explain this via a question/answer format, highlighting why it happened:
Q: So here’s a task for you, you are to create a crypto currency free from all sorts of regulators, what do you do?
A: I will circulate a kind of digital token so that whoever has it, can exchange it between one another as a measure of value.
Q: But we have the reversibility problem and the double spending problem as explained above! How do we fix that?
A: We can tackle this one by one. What can solve the irreversibility problem by making the transactions irreversible in nature. Once it’s sent it’s sent, no one can reverse this transaction as there is no third party. And for ensuring trust, between sender and receiver, we can explore options like escrow services, i.e. third parties that can mediate, and who can hold the money, for the two parties, for one particular transaction.
For the double spending problem we need a more complicated approach. What if instead of a token, we regard the currency as a long list of transactions, starting from day one, and each time we pass that list on to someone else, he gets a full record of all the transactions that has happened from day one to today. So each person holding a BTC (or its fraction) can have a total list, of all the transactions ever. Like that, we can calculate, looking at a list of transactions, and their list of receivers and senders how much balance each person has, and whether they actually own the coins that they are sending (i.e. ensure that they haven’t spent the coin before).
A owns 30
Set of transactions
Now D has a list of all the transactions that has ever happened, so D can easily check whether the BTC A is offering him, has not been spent on anything else. Here D sees that A started with 30, paid B 20, and paid C 10, so the payment that A is making to D is invalid, as A doesn’t own anything after his payment to C. And since D has the list of all the transactions ever, he can easily verify any foul play.
Q: But D receives the BTC from A right, since the BTC itself is a list. What if A fudges the numbers in the list before sending it to D?
A: D is to verify the list A gives him from others who have BTC. D should only accept payment if he sees everyone else sees the list and verifies that the numbers are correct.
Q: But isn’t it possible for A to hack others and change their list to reflect his own?
A: No, since that would take tremendous amount of computing power, D will ideally search and verify his list from a lot of people, so as long as A doesn’t hack 51% of the total people in the system, the majority will always be able to alert D if there is a discrepancy in the list given to him by A.
Q: But isn’t it possible that A might end up hacking more than 51% of the people? Or maybe he is rich, and he buys and installs 51% of the total computers in the network. In a scenario where 51% of the nodes are his, he can be in a position to manipulate the system!
A: Unlikely, imagine the computer power needed to hack 51% of the system! And look at it from a different angle, the only way A is benefited is if people accept the BTC as true currency. If he conducts fraud then the extra BTC that he will generate, by controlling all those 51% BTC is useless, since people will immediately lose faith in the currency and BTC’s value will fall dramatically. So all those systems he installed will be useless since it is the people who will no longer consider BTC as true currency. So anyone doing such a thing will only be losing money.
Q: Ok then, so BTC is just a huge list? But how to start the system? Who gets the money? How to bring this in circulation.
A: Obviously we cannot just hand these away. Why don’t we reward those nodes, which will help me do this huge computational work? Those who will help add new transactions to this list of BTCs. Whoever does the work of adding a block of transactions to the list (we call chain, “BLOCKCHAIN”, get it? Remember this we will use it later) will get a BTC from the system.
Q: Umm ok, so how do we achieve this, literally I mean. We only record transactions in the list, not individual people’s balances. So if his BTC balance is increasing what exactly are we doing to record it?
A: Easy, whoever adds the block of latest transactions to the BTC list, will get the privilege to add a transaction denoted as: N->N 1.00, i.e. N rewards himself with 1 BTC.
If the above were a list of transactions, A->A 1 denotes scenarios where A was given a BTC by the system since he helped add the final block to the existing list. In the end, A’s balance is calculated as
A=> 1+1+2-3 = 1
Q: Ok cool, but then all the nodes will want to be the node to add the block, how do we decide who gets to add it? Nodes will fight amongst themselves. Besides adding a block to a node is very easy, just copy and paste, why will a node want to pass up the opportunity?
A: We will make it difficult for them. We will define a problem, (and this is a theoretical problem, nothing to do with actual maths) more of a puzzle, like a rubix cube. So the PC that solves the rubix cube first will get the privilege of adding the block and earning a BTC. The rubix cube will get difficult each time, say a 3 x 3 cube will become a 6 x 6 cube, and so on. So the effort spent by them towards the system will be recognized by adding it to the list with its unique timestamp and code. We will make the rubix cube in a manner that it restricts the number of BTC that can be awarded in an hour.
Q: But the rate at which computers are evolving, it’ll be able to solve your problem in a jiffy?
A: As I said earlier it gets harder, and the rubix cube is made complex just enough to ensure that inspite of the increase in the number of nodes and their computing power, BTC are produced at a constant rate.
Q: But if that is the case, won’t there reach a point where the problem will become so tough that no computer will be able to solve (this process is called mining BTC) it? Or maybe it will be spending too much in power and other factors, that the value gained by earning a BTC will not be enough of an incentive.
A: Yes, and that’s the idea as well. I don’t want to increase the number of BTC till eternity. There should be an upper cap.
A: Errmm, well coins produced infinitely can lead to inflation.
Q: Is that such a big problem?
A: Hey buddy, I am the founder here, and I don’t want the number of BTC to exceed a certain limit. End of story.
And that’s how we got the concept of BTC.
The real white paper is linked here. It has all the technical aspects of it. I do understand the, but I don’t thing that is relevant for the people reading my blog. My blog is about trading, but before trading, you need to understand what is it that you are trading.