Rube Goldberg

BitCoin: a rube-goldberg machine for buying electricity

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. ;)

About these ads

15 thoughts on “BitCoin: a rube-goldberg machine for buying electricity

  1. I agree bitcoin is still in its infancy and has its economical problems (speculation, not many real services available, hard to get ‘outside’ money in/out) and technical problems (high bandwidth usage, and large disk usage, mainly, as everyone has the entire transaction log). However, these could be solved over time if the system internationally gains more traction. Or may be not, who knows…

    I don’t agree with most of the rest of your article, as the problems you highlight are not the actual problems. For example, time already is the commodity that is used in Bitcoin. By adjusting the difficulty every time period compared to the amount of work performed, a more-or-less fixed amount of coins is created every month. This amount will decrease until 2140 or so, then generation of new coins will stop entirely.

    I also don’t see how this would ‘devalue them like the Zimbabwan dollar’, because unlike for dollars there is no printing machine that can make an arbitrary amount at any time. It’s not like Bernanke can fly around in with his magic helicopter and dump new bitcoins on as at will.

    That’s because making bitcoins is already so difficult (or, ‘foolish’) that mining itself is hardly profitable compared to energy costs. The mining CPU usage isn’t about the coins. It is about keeping the network running and processing/verifying and storing transactions. The joins are just a small compensation for that.

    Like with any normal currency, the only way to earn significant amounts of bitcoins is to trade in them or receive them for services.

    I do agree that people with a Trojan on their PC currently have big problems, but the real problem is theft of the wallet not destroying it. This is a security risk, that in the future possibly could be alleviated by using a special encrypted device (that requires user confirmation) to store the coins. Or by using a secure, compartmentalized operating system. Or maybe online encrypted ‘safes’ that store the coins for you. It’s no dead end unsolvable problem.

    So lets highlight the advantages also:
    - Bitcoins are an international ‘currency’. There is no dependence on a single government.
    - Coins can be quickly sent over internet, without central point of failure
    - Coins are arbitrarily dividable up to 8 digits, which will come in handy when deflation happens.
    - The system is secure against counterfeiting/double spending through cryptographic means.
    - The entire system is open source and transparant, so problems will be found in an early stage by vigilant users

    I do think there is potential but there is also still a huge amount of work to be done.

    • In the long-long term, when there no longer any new BitCoins to be had, the economy will have to subdivide each BTC. There may not be a Bernanke flying around with a magic helicopter and dumping BitCoins on as will, but as more people adopt BitCoin (if they adopt BitCoin), they will increasingly find that they need to subdivide BitCoins into smaller units. The theoretical limit of possible BitCoins is 21,000,000. We already have over 6-billion people, so we’re looking at a potential situation where the “average wealth” is about 285 BTC per person. In reality, there will be winners who accumulate much more BTC than other people, so the amount of possible liquidity (that is the ability of someone to perform a medium-of-exchange transaction) is much less. When you take into account that many may try to use BTC as a “store of wealth”, taking BTC out of circulation, again, you have even less BTC to use for the “medium of exchange.” When the BitCoin spec allows subdivision down to the 0.00000001th of a BTC, the economy will find that it must “add decimals” (instead of adding zeros in traditional inflation) to the currency to facilitate transactions. It will be very confusing and aggravating. Claiming that BTC’s divisibility is an advantage that is “handy when deflation happens” is like saying, “Its great that there is pain medicine for managing the pain of getting kneecapped.” Many people are not going to like BitCoin if every decade they find that their coins need to be divided by ten to transact [giving BitCoin about an 80-year lifespan until everyone runs out of "convenient" units of BTC]. If you’re going to design a new monetary system, don’t include kneecapping (deflation or inflation) as a feature.

      This idea that “the only way to earn significant amounts of bitcoins is to trade in them or receive them for services” is hand-waving away the problem of where the BitCoins actually come from. There will still be many foolish people who will spend hundreds or thousands of man-hours trying to engineer faster BTC hashing systems (think of all the discussions about programming GPU’s and other ideas) and watt-hours trying to create BTC for themselves. BTC already has in its design a difficulty factor to thwart them–at regular intervals the difficulty of creating BTC is adjusted. Should the economy create many BTC all at once (by throwing massive amounts of hardware and energy, or by luck), the difficulty increases and *everyone* must then expend *more energy* to create BitCoin.

      Where it used to be true that one would find gold nuggets in the ground or by panning rivers and become rich, today “all of the easy gold is found” and now gold mines rip up tons of earth and create massive amounts of lead and arsenic pollution–BitCoin mining would continue a similar trend, throwing ever increasing amounts of energy at a limited amount of “virtual resource” that actually makes itself harder to find, the faster that it is found, unlike gold. There is no reason to believe that an economy involved in BitCoin will be any smarter.

  2. Saying Bitcoin is a waste of electricity is like saying that physical currency is a waste of metal (coins) and paper (bills) and leather (wallets). That’s ludicrous.
    I find it hilariously ironic that you use a cartoon by Nina Paley in your previous blog post. You should read up on her. And her organization, QuestionCopyright.org
    By the way, I am encouraging them to start accepting Bitcoin donations — the same way EFF.org now accepts donations by Bitcoin.
    Naysayers are the ones who will rewrite their predictions long after the success of Bitcoin has become mainstream headline news. :)
    They are the same ones who said Google would never make money…

    • You’re comparing apples to oranges here. Physical currency like metal, paper or leather does not mandate that more metal, paper or leather be consumed to enhance and improve its existence. Now I know that you can disable key generation with the BitCoin client, but more likely than not, people will leave it on and running 24/7 for the “free” money–the fact is that when the BitCoin system creates money faster, it consumes more and more energy.

      The cartoon is totally appropriate for just about every conversation between any proponent of alternative currency. :) QuestionCopyright looks like a great site, I’ll be adding it to the blogroll.

      I predict that if BitCoin becomes the wild success that you want it to be that we’ll all be paying more for electricity from increased demand. :)

  3. > 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.

    but today, it can buy you a new car.

    and this already has happened, there was a time where 10000BTC got you two pizzas delivered, but at the time of this writing, it got you 800 pizzas delivered to your door.

  4. Bitcoin is novel, but not fully thought through. Scarcity is an important property of money, but making a form of currency that takes energy to generate is just ludicrous.
    How about some more calculations. How much energy would it take an economy the size of UK were to switch to bitcoins?
    Can I put your article in Community Currency Magazine.

    • It really depends on how much money you think an economy the size of the UK needs to facilitate trade. I don’t know for BitCoins because they don’t have any intrinsic value like a hour of time does to me. I guess as a baseline for ξ that the UK would start out needing ln(61 838 154) * 61 838 154 = 1.10937841 × 10^9 hours of money based on the World Bank’s 2009 population number, or just under ξ18/person. Tying the creation of ξ to the population is where its scarcity originates—and through measurements of social behaviors like savings we restrict its creation to only populations that are actually saving their ξ for the future. This is the best way I can think of to get rid of the savings paradox that bankers love to use to explain why you should deposit your money into a bank—that is, they want it there for future loans. I believe that this systemic idea involving fractional-reserve lending in banking is the major cause of Kondratieff waves, because the idea that loans for interest create complicated chains of debts that grow to be unsustainable over many years. Businesses rely on new capital from the banks and herd into similar, profitable business bubbles because of the need to ensure their profits to be able to pay back the principal+interest back to the bankers. Because the period of the waves is so long, people just benefit/suffer over their lifetime once or twice before they die, assuming that this is just the way things are. This is why there are no “loans” or debt-based money in the culture of ξ. BitCoin is an interesting idea of removing money from the control of governments and nation states, but it has no practical relationship with how we decide to value things in trade.

      You have my permission to publish.

  5. Pingback: P2P Foundation » Blog Archive » A serious problem with BitCoin: it wastes energy

  6. “audit them with a money model”

    Could you devote a sentence or two to this idea?

    Suppose I want to sell you something and you give me a bitcoin. How do I know you have not already spent it? The “Rube Goldberg machine” tells me.

    The electricity spent in hashing is not wasted, or at least not entirely so. It goes to create a product of value to the bitcoin economy. The product is a supersignature on the complete list of transactions to date, aka the “block chain”. Without this supersignature, how does one prevent double spends while retaining the desirable features?

    Many sources of energy vary in their availability in ways that do not match the variations in demand. The law of supply and demand should soak up a lot of energy that is currently “wasted” before it makes a big dent in the otherwise usable energy supply.

    • My gut feeling is that BitCoin is too centralized to scale. My “wallet” data when I run the client is storing over 300 megabytes of transactions information of which only exactly one is relevant to me (the extremely generous 0.05BTC I received from the faucet–at least its generous when you consider everyone’s idea of how much the currency is going to deflate as it approaches its issuance limit). Do we really need 29000+ “confirmations” that I received this money? The continuous hash churning in BitCoin is used for money-creation– you don’t need that for maintaining the unit-of-account, you can do that with just chains of SHA signatures. What you need is a good deterrence–like losing all of your money if you try to game the system.

      What I believe will work better is keeping the cryptographic signatures of transactions and cross-link wallets via their transactions–if you tamper with your wallet trying to double-spend your money, you’ll jeopardize your entire wallet and lose all of your money. No one will deal with you if the community detects multiple “timelines” of history originating from your wallet, which is easy to detect–the stream of signatures coming from it diverges the first time you append a new transaction from an old wallet. Similarly, if someone else’s wallet shows nothing but payments from phony wallets they won’t be trusted either. Think GnuPG’s “Web of Trust” but with money. Now I merely have to maintain my wallet’s integrity, not the entire world’s transaction log. With digital money, you’re not playing with virtual money, you’re making commitments of trust.

      Wallets with lots of transactions are more valuable and trusted by the community than wallets with a few transactions. I’m separating the process of money-creation from the unit-of-account whereas BitCoin combines the two. The unit-of-account stuff and fraud detection is easy–when it happens the penalty is the owner of the wallet loses their money [aka an effective deterrence]. The money creation bit is the hard part in a decentralized system. In ξ, it will probably be tied to objective wallet observations made over time to determine how many “people” are participating in an economy. Trying to maintain a “supersignature” on everyone’s transactions is a single-point of failure for BitCoin because the first time that is called into question everyone in the system loses their money.

      In short, someone can double-spend once and afterwards lose all of their remaining money (if they didn’t go all out on their fraud and empty out the wallet) because the trust is gone for that wallet. Gigawatts of energy and gigabytes of bandwidth and disk storage don’t need to be used to prevent it when you have a good deterrence.

      • acrylicist,

        Since you mentioned ξ (Xi) in your reply, I decided to browse this blog for five minutes. You seem to be engaged in a monetary reform effort. Thank you!

        So Bitcoin competes with Xi on some level. Unfortunately, I do not feel motivated to really grok your work, at least until you demonstrate a better understanding of Bitcoin technology. “Web of Trust with money” seems plausible, but trust is hard work that can’t be completely performed by machines. Perhaps your concept is in a different space from Bitcoin, perhaps Xi can complement a bitcoin-like currency. There is occasional talk of a “Bitcoin hawala” that may be up your alley.

        “gut feeling is that BitCoin is too centralized to scale” — I disagree. Maybe it’s something you ate…

        “client is storing over 300 megabytes” — this is a limitation of the current software and protocol, not of the technology or the currency (block chain). See “Simplified Payment Verification” in the original paper (http://www.bitcoin.org/bitcoin.pdf) and “Network structure” in the wiki page on scalability (https://en.bitcoin.it/wiki/Scalability). In the meantime, if you can trust an online wallet service, you can save that space, which amounts to a fraction of a percent of a typical hard drive these days.

        “Do we really need 29000+ “confirmations” that I received this money?” Maybe, maybe not. Once the tiered network SPV is implemented (as I believe it will be) each confirmation will consist only of an 80-byte block header, and it confirms all your transactions.

        “like losing all of your money if you try to game the system” Personally, I find the Bitcoin approach more elegant. I’d rather not worry about being punished for accidentally broadcasting a double spend. I’d rather the network ignore one of the spends as Bitcoin does. But I do see value in a web of trust where humans judge whether I play fairly.

        “separating the process of money-creation from the unit-of-account” I fail to see the need to separate them. Bitcoin “kills two birds with one stone” by rewarding transaction processing with new money during the bootstrap phase. However, the current block chain’s monetary policy is rather simplistic, and I feel a need for a competitor with a monetary policy more like what you describe. This is again a problem with the current software, not with Bitcoin per se. See: http://forum.bitcoin.org/index.php?topic=10755.msg169922#msg169922

        “Gigawatts of energy” Currently, two short-to-medium-term factors drive up the energy usage: the high initial inflation rate (scheduled to decrease exponentially) and the high market value of bitcions. In the steady state, after the initial period of inflation and innovation, economic forces will push resource use into line with the value (paid in transaction fees) placed by users in the currency system.

        “gigabytes of bandwidth and disk storage” Please demonstrate a fuller understanding of Bitcoin’s characteristics and features, and then I will listen to an alternative proposal.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s