I wandered across bitcoin not too long ago, during some random web crawling, and downloaded it in May. I installed it, ran it, realized I was behind a firewall, killed it, uninstalled it and forgot about it for a couple of weeks until this Wired article came out and sent the whole world a’twitter about bitcoin again.
The Wired article, in short, talks about an underground website that sells illicit drugs and whose sole allowable currency is the Bitcoin. The website itself is shrouded in anonymity in the TOR network which itself is an excellent little piece of technology which I’m planning on running out of space to describe here just now, but you should look into it.
The Bitcoin spiked in popularity. You can buy and sell Bitcoins in open marketplaces such as Mt Gox (whatever that means) or Lillion Transfer if you’re using some more international currencies, or you can use them directly on sites that take them, such as this Alpaca sock store. Prices quickly went from a few dollars to around $30, although they’ve now backed off a bit to around $20/BTC (Bitcoin).
Ok, so where are we? We can buy cocaine and alpaca socks with Bitcoins. Great. But what ARE they, again? How can you get some, and should you care?
Short answer: They’re stupid, you don’t want any, and “no” (unless you’re into really risky online drug buys). But the long answer is at least kind of interesting (we’re trying to be happy here), if stupid, so let’s dive in:
Bitcoins are something called “cryptographic currency”. The term actually means nothing, because the only uses of cryptography in the currency are first: private/public key pairs used to identify users of the currency and second: SHA encryption algorithms used not for encryption, but rather as a basis for performing mathematically difficult (yet mostly useless… more on that later) tasks. Proving you’ve done this difficult task rewards you (maybe) with bitcoins. That’s it.
Now the SHA encryption algorithm part is the only part I find kind of cool. The idea is that you’re performing two tasks: you’re creating kind-of-encryption-signed blocks which helps the network manage Bitcoin transactions, and you’re proving that you’ve done work, which is what can eventually reward you with Bitcoins. Basically you start with a payload (a bunch of Bitcoin transactions), and you SHA-256 hash it OVER AND OVER again while tweaking some bits (the bits are called a nonce) until you get a result that’s below a set threshold. The threshold is constantly lowered making it more difficult to achieve, by some agreed-upon method built into the Bitcoin network run by the client software that everyone runs.
Once you’ve succeeded, you’ve created a “Block” which basically confirms the transactions you put in the block, and adds it to the chain. Now, the problem is that you then have to get the rest of the network to accept your new block, which will solidify the transaction that creates Bitcoins in your name. There are all sorts of reasons this could go wrong, not least of which is that the network may have already adopted a new block with different transactions, or with a different chain of new blocks making your new block obsolete before it was created.
Worse yet, the rate of reward for all this nearly-random-encrypting you did is designed to go down. Right now, it will probably take you a few months, working alone and with reasonably up-to-date Graphics hardware (GPU accellerated calculations are way good for this stuff) to get 50 Bitcoins, which is the current “reward” for doing the useless-but-difficult math. Soon it will be more difficult and will only reward 25 BTC, and at some point half of that, then half again… ultimately if people keep on running their computers hot (consuming and costing much electricity) we’ll reach the end and only 21 Million Bitcoins will ever be created. I say “only” because if this “currency” is to have the impact the creators obviously want then millions of people will have to use it. Since early adopters can easily have tens or hundreds of thousands of the things (they were MUCH easier to make a year ago because of the designed increasing difficulty), the incentive for people to spend time creating tiny fractions of them in the future will be low.
Bitcoin tries to explain this away, but gets it wrong:
Because of the law of supply and demand, when fewer Bitcoins are available the ones that are left will be in higher demand, and therefore will have a higher value.
Why is that wrong? Well, they fail to take into account alternatives to Bitcoins. With supply and demand, if the supply reaches the limit where it’s difficult to get something (i.e. it costs too much in electricity to be worth mining a new Bitcoin, or it costs to much to exchange for gold or alpaca socks) then either the demand goes up as they say, or alternatives are found.
You know, alternatives to fake currency. Like, maybe REAL currency (Euros, Dollars, Rupees… you know… currency?). Or whole alpacas. But probably more likely normal everyday money.
Really, at first I was hopeful this would be a good, interesting idea, but now I’m just convinced it’s a waste of time or, worse, possibly a scam. The FAQ claims that Bitcoins aren’t a Ponzi scheme, and technically they’re not, but they certainly could stand to make the original designers rich, while leaving late adopters more and more in the lurch — very Ponzi-esque.
Moreover there’s no incentive to use them unless you’re lucky enough to have generated a lot of them early on and can convince late adopters to pay you for them.
Lastly, it’s unclear if the system is remotely secure. There’s no central bank, much less a unified banking authority (a la the FDIC or World Bank) to remedy loss, theft, or other problems. There’s a story today about $500,000 stolen from the Bitcoin network. (I leave it as an exercise to the reader to determine if this person actually lost money).
I wanted to compare them to Gold-Farming in World-of-Warcraft (where it’s against the rules) or to paying real money for imaginary goods and currency in places like SecondLife, but the more I muse on the subject the more I think the comparison is invalid. At least in games or online communities you’re getting some entertainment value (I hope) from interacting with the world. If you’re solely playing WoW or SecondLife to make money then maybe the comparison with Bitcoin is more apt, but if you’re that sort of person you’re probably not reading this blog. Still, there are things you can buy with WoW gold and Second Life currency (Lindens… there’s a name for them), even if they’re virtual things, that you can’t really get any other way. Even that simple comparison doesn’t stand up.
Incidentally, people study this stuff pretty thoroughly, and can go into far more detail than I.
The thing is, we want to be Happy about technology here, so let’s have a positive takeaway, shall we?
It’s nice to see some theoretical techniques applied to something like this, if nothing else than to prove that they can work. “Proof of work” systems such as hashcash (which, despite the name, has nothing to do with currency and very little to do with Bitcoin except for non-accidental underlying algorithm similarities), have been developed to stop spam and DDOS attacks by requiring that a sending system performs a difficult calculation before sending an e-mail or initiating network traffic. The idea is that individual e-mails wouldn’t be inconvenienced very much but large volume spammers would have serious computational overhead. Of course things haven’t panned out — too many legitimate large-scale e-mails exist, but it may have applications in other areas or just require some tuning to achieve its original goal.
What’s more, there IS some interesting math, logic, and thought behind this which maybe could be leveraged somewhere else. Does the distributed bitcoin network model, where anonymous trust is established by doing work and agreeing on algorithm changes, and by maintaining a complete copy of the transaction history (which sounds ick at first) have any applications outside of this weird specific implementation? What about the statistical choices surrounding block acceptance and network propagation? All sorts of things that are being exercised “in the wild” with Bitcoin should have useful applications elsewhere.
What do you think?