Sunday, June 9, 2013

What's the deal with BitCoin?



"Another currency, you say, why the heck would I want that?" It's a good question and one I asked myself recently when Bitcoin starting becoming a common


theme in a lot of the tech blogs I read. Before we start to talk about Bitcoin technically, it's better to clear out the philosophical reasoning behind it.
Uncontrolled inflation - Government needs more money? It prints more money, the money you have is worth less. That sucks.What's wrong with government backed currency (US Dollars, Euros, British Pounds, etc)?

  • The costs of money - I have to pay a bank to hold my money, they use my money to give other people money which they get paid for as well. I don't want to carry around fat stacks of cash so I use a credit card to simplify transactions but now I have to pay the credit card companies money. Sounds like everyone gets a slice of my money!

  • Control - If the government thinks I am doing something wrong, they have the ability to freeze all of my money. Where my money comes from and goes to is reported to them.

This is why we need a better currency and Bitcoin looks like the right solution. In my first post on Bitcoin, let's see if it's inflation-proof.


By design there can never be more than 21 million Bitcoins and no one in the world can change that fact. As of April 2013, there are 10.6 trillion US dollars in the world, that makes it sound like there might be  a problem making change if we switch to Bitcoins. Not really, Bitcoins can be subdivided down 8 decimal places (one Satoshi) where as the US dollar can only be subdivided down 2 (one cent). If we look at money as units, it looks like this:

UnitsAmount
Dollar (Cents)1,060,000,000,000,000
Bitcoin (Satoshis)2,100,000,000,000,000

Well look at that! There will be about two times the amount of "units" available in Bitcoins as are currently available in dollars and cents and those are servicing the world quite well. I don't know about you but I don't see that many things that even cost a cent anymore. This is a good start, we can count on a fixed amount of this new currency. However, we need to make sure it's introduced in a distributed and dependable way and equally to the world. That's a pretty tall order but is part of the genius of the Bitcoin system.

Where do Bitcoins Come From


Sorry, I tricked you, I was about to tell you how the Bitcoin system is brilliant enough to release exactly 21 million Bitcoins and not a Satoshi more AND how it releases them over time equally all over the world. However, it will help to know where they come from first. This was one of the concepts that confused me and caused me to search high and low to understand. It also goes hand in hand with the initial distribution of the currency.

A key fact is that there is no central server or controlling entity to Bitcoins. When I refer to "system", I am talking about two pieces of software, one called a Bitcoin miner and the other called a Bitcoin client, installed on a computer. It could be my computer, your computer or even a smartphone. Both pieces of software need to be able to access the internet in order to exchange information with other computers to make up the Bitcoin network. The miner connects to get work and the client connects to either send Bitcoins or receive Bitcoins. As long as there is a single copy of this software on the internet, the system works (although there will always be more than one). All of these computers running the Bitcoin software work together based on an agreed set of rules to exchange Bitcoins (client) as well as record and validate their exchanges (miners). The way the system works, if you modify your software to not follow the rules, it will basically be ignored by the rest of the network and your transactions will be ignored. With that bit out of the way, let's get on to how it works.

btcregister
It all started in 2009 with a genesis block, a pretty fancy name for the opening entry of a global transaction record that houses every single Bitcoin transaction, ever. Of course, being a computer based transaction system it's an encoded series of numbers but pretty much the same as any transaction log, like the register in your check book.
It has fields for from-account, to-account and amount (a bit deeper technically but that's the gist). What was exciting about this genesis block is that there was a bounty of 50 Bitcoins (abbreviated BTC) if you could do something special to it. This bounty went to the first person to find a value, that when mixed together with the information contained in this bit of transaction log (called a block), will match a certain pattern or "target". This process is called hashing and produces a unique 256-bit (string of ones and zeros) number, very much like a signature. If one name or amount changes, the hash for that block changes completely and mixed together with the pattern, it would no longer hit the target.

When the person finds the lucky number, they put it together with the transaction block and send it to every other person in the Bitcoin network. They also add a new transaction at the end of the list assigning themselves 50 BTC for solving the puzzle (don't worry, they just earned it according to the system). The other people in the Bitcoin network check the solution and make sure it's correct. If it is, they stop the work they were doing on that block, grab the next set of transactions that have happened since the previous block was completed and start working on finding the magic value to claim the bounty of the next block. One other step that's taken before work is started is to include a reference to the previous block of transactions (nope, it can't be faked). This means that every list of transactions ever completed with Bitcoins is linked with every other one and distributed to everyone in the Bitcoin network. Don't worry, it's still all private.

I'm sorry, I know that was a lot to digest, how about an example?
Jim is the lucky duck to solve the genesis block and gets 50 BTC. Jeff wants in on the action and wants some of those Bitcoins so he offers to sell Jim his original Hasbro Millennium Falcon for 20 of Jim's Bitcoins. Jim jumps at the chance and tells his Bitcoin client to send 20 BTC to Jeff. The Bitcoin client sends the transaction out into the Bitcoin network. Meanwhile, Finn and Tessa are each intrigued by the whole Bitcoin idea too and are running a special software called a Bitcoin miner. This software listens for Bitcoin transactions, assembles them into blocks and then tries to find that magic number we talked about earlier. They each receive the transaction between Jeff and Jim along with the genesis block itself and start working hard on finding that number. 10 minutes later, Tessa's Bitcoin miner figures it out and so she puts the solution out along with a second transaction in the block assigning herself the 50BTC reward for figuring it out. Tessa has also provided a valuable service to Jim and Jeff by validating their transaction and recording it indelibly forever in the transaction record. There are now 100 Bitcoins in existence with 3 people sharing the wealth. A total of 20 minutes has elapsed, 10 for Jim to solve the genesis block and 10 more for Tessa to solve the block with Jim and Jeff's transaction.

How are Bitcoins Released


Oooh, I snuck that in there, didn't I. Another absolute to the Bitcoin system is that a block is solved every 10 minutes, period. Wait, what? How the heck can the system pull off that bit of magic when people are coming on and off the system at random? Not to mention that not all Bitcoin miners are going to be able to find the magic number at the same rate. Some of them have better computers and will be able to solve the problem quicker.

The Bitcoin software does this by collaboratively adjusting the difficulty of the target magic number so that, no matter how much computing power is crunching away at the current block, it will only be able to solve it in 10 minutes (on average). The very first block was created January 3rd, 2009 and every 10 minutes since then, a block has been solved and a certain number of Bitcoins was awarded to that lucky person (or group of people working together on the problem).

Yes, you caught me, I kept referring to 50 BTC rewards and then I dropped "a certain number". The system will half the number of Bitcoins awarded for each block solved every 4 years until all 21 million are released. That means that from January of 2009 to January of 2013, the reward per block solved was 50 BTC. But as of January of this year (2013), that went to 25 BTC. In 2017 it will be 12.5 BTC. Based on this pattern the last block with an automatic reward will be solved in January of 2154 and all of the Bitcoin currency will be in circulation. It will be evenly distributed throughout the world and millions of transactions will be happening every 10 minutes (hopefully).

The system cannot produce a single extra Bitcoin no matter how much the governments of the world want it to. The controlled, dependable and even distribution allows the people of the world to build trust in Bitcoin. It also allows exchange rates to be set gradually and stably with it's release cycle. During the early years (now) there will be a wild variation in the exchange rate as interest ebbs and flows. However, as more and more businesses "buy in" on the idea of Bitcoin, you should expect to see a settling of the rate.

3 comments:

  1. Very cool stuff Jim. I also like the way you write your articles. Question, I can see this developing with the geeks of the world, but if governments or just plain people don't accept this system, then how can it survive? How does this bit coin integrate with society and other forms of money?

    ReplyDelete
  2. Thanks Edward. At it's core, a currency is only as valuable as people make it. As long as you can exchange it for something you need without too much hassle, it will succeed. Check out the things you can already buy today at https://en.bitcoin.it/wiki/Trade. If you want to get back to a government currency, you can even exchange BTC for cash at https://mtgox.com/. The long term goal is to replace currency with BTC in our digital world. It's a ways off but sites like the ones listed at the trade page above are making the way. There is definitely work to be done to make the system easier to use but it's only a matter of time before it's as easy as tapping to pay.

    ReplyDelete
  3. great article, cant wait to read more

    ReplyDelete