Update: It’s been over a year since I wrote this critique of BitCoin. Since then, there have been more than a few alternative crypto-currencies created in the style of BitCoin’s Merkle-tree implementation, but LiteCoin is the first to choose a “proof-of-work” more stringent against farms of GPUs which have made BitCoin progressively harder to mint for “ordinary” users. Give it a look. But know that it’s still an electricity→money system. :) (3-12-2012)
With the EFF’s announcement that they would being accepting BitCoin donations, the alternative money community began to take a larger interest. I certainly did, and found that there are good and bad things about this form of money. In the end, BitCoins create a perverse incentive to consume energy to “create money.” Here is why.
What is a bitcoin and how do you create one? — A BitCoin is created whenever a user’s computer churns though a SHA-256 hash repeatedly from a hash until it results in a number less than a given number. Statistically, hash functions are supposed to have very unpredictable content–that is what makes them secure. Whenever a BitCoin client churns through a hash starting from a given number issued to the network, it burns CPU time (and thus energy). The probability of getting a hash to be “less than” a given 256-bit number is quite low. Successfully determining how many SHA-256 rounds it takes for a particular nonce to hash to a number lower than some value is called the “proof of work.” If while your computer receives a new “block” from the network (meaning another computer successfully won some BitCoins), your computer must start over with a new nonce.
How much energy does it require to mine the average BitCoin? — With my “older computer,” the hash rate averages around 2000 khps on a microprocessor going full-bore consuming about 65W. The current difficulty shows that a new BitCoin can be mined by a computer at this speed on average every 113 days. So, 113 days × 24 hours = 2712 hours. 2712 hours × 65W = 176280 Wh or 176.28 KWh. The average cost of a KWh in the United States is 10.45 cents. So we’re looking at spending $18.42 to create 50 BTC (at the moment). So the electrical cost is about $0.36/BTC. BitCoins are trading now already at values below this, so I can only assume that they’re being sold at a loss or others may be externalizing the costs of electricity and not taking this into account. If you were to pay your electric bill in BTC, you would have a positive feedback loop (always a bad thing) that consumes more energy to earn money to pay back the power company. It doesn’t matter how efficient your processors are—you’re spending more money to make money.
Now I understand the motive to why BitCoin is like this: it is to prevent run-away inflation– the number of BitCoins that will ever be available to the world is limited to X million. If BitCoins are lost due to corruption or data loss, they can never be recovered. (Clue in the Greifer who writes a trojan horse that seeks out to destroy unprotected wallet.dat files!) While the BitCoin FAQ claims that it is a misconception to say that BitCoins gain their value via the electricity used to generate them, as there is no other way to feasibly generate a BitCoin other than the mass consumption of electricity, I don’t agree with this assertion. Once a BitCoin is generated, you still have the problem of a market that still must determine their “value”–does it cost you 25 BTC for a sandwich or 2.5 BTC for a sandwich? With an absolute fixed quantity of BTC to be created (until about the year 2140) and a specification that says that BTC can be subdivided down to the 0.00000001ths (not that any client supports this at this time, most mandate the limit of hundreths of a BTC are the smallest subdivisions) we have a currency that will devalue itself almost as easily as the Zimbabwean dollar, except by using progressively smaller and smaller subdivisions of a BTC. Should we be using BitCoin 10-decades from now, we’ll still reminisce how it used to be that 10 BTC would have bought you a nice meal, and so on.
So what use is BitCoin? — BitCoin is driving a lot of people to think about the problems of creating transactions that cannot be interfered with by third parties, without fees, etc. The “Timestamp Server” concept and distribution of publicly “spent” transactions (to prevent double-spending) is still a valid concept. Anonymity in transactions is still something desirable, but I don’t believe that you can achieve it via near-anonymous digital signatures online.
In the end, the artificial creation of the limited number of possible BitCoins via this “proof of work” (doing millions of SHA-256 hashes over and over) is madness. All you really need is to have “proof of limitation” without the politics—was the market restrained from creating too much money too fast? BitCoin’s use of a procedural solution is the wrong track when all you need do is define a constraint via a formula and apply it as needed over time, instead of everyone continuously spinning a hash function and wasting electricity. Keep the transactions public, cryptographically sign them, and audit them with a money model and you’ll be able to keep much of what is good about BitCoin. And of course, use a “commodity” the people can intuitively understand, something like… time. ;)