I’m not going to explain what Bitcoins are or why I find them interesting— I already did that here. I’m also not going to discuss general issues related to the anonymity of Bitcoin. Finally I’m not going to discuss tools like Bitbills here, which may be useful, but aren’t in themselves a true and complete Bitcoin transfer.
In this posting I want to clarify a term of art surrounding Bitcoins that I think can be misleading and confusing to people who are just learning about the technology, primarily due to its familiarity from other contexts: the idea that Bitcoins are “sent” from one person to another like conventional money. We’re used to the idea that physical goods or money (coins or bills) can be physically “sent” by a sender, via a courier, to a receiver. In the case of electronic money, the courier is a “trusted” third party like a bank or Western Union which handles the digital or physical instruments involved in the transaction. In the case of e-mail, sending involves copying a message from the sender’s computer, to a third party’s mail server (the courier), which is trusted to give a correct copy of the original message to the receiver’s computer.
But no one ever “sends” a Bitcoin (or fraction thereof) in any way that resembles those existing schemes— this is a big part of what makes Bitcoin different from all previous forms of currency. True, from a user’s perspective you just click “Send Bitcoins”, enter the amount and the receiving address, and click OK. In a few minutes, the Bitcoins show up in the receiver’s wallet. It looks like something has been “sent,” but this is just a useful fiction.
Behind the scenes, the “sender’s” client software makes a public (yet thanks to cryptography both anonymous and non-repudiable) declaration that one or more (usually several) anonymous identities they control, and that previously had a certain amount of Bitcoin value assigned to them, no longer control that value because it is now being assigned to one or more other anonymous identities. This declaration is broadcast by the sender’s client software to the peer-to-peer network ultimately consisting of everyone running the Bitcoin client software, which then forms a collective consensus over whether that declaration is valid based on the log of the accepted history of all previous transactions (the “block chain.”) Assuming that consensus is reached on the new transaction, the network collectively enters it, along with a number of other accepted transactions (together called a “block”) into the log. While it takes very little computing power for the Bitcoin clients to verify that a new block is valid, it deliberately takes a lot of computational power to create new blocks that will be accepted as valid by everyone else, and exponentially greater levels of power to fabricate a version of the log that changes its history (this is what Bitcoin “miners” are busy doing— securing the block chain by creating blocks that are easy for everyone to verify, but extremely hard for anyone to change after the fact.) The log is copied by everyone who’s Bitcoin software cares— currently this is practically everyone, but that will change as more people use Bitcoin, especially where small mobile devices are concerned. The system as a whole works because virtually everyone’s copies agree, and anyone attempting to make new declarations based on logs that don’t agree (accidentally corrupted or deliberately forged) is simply ignored by everyone else.
So Bitcoins are a lot more like the giant stone coins of Yap than anything that jingles in your pocket. On Yap the coins, once made, were never moved— people knew the history of the coins and shared a consensus about their value and who owned which ones, and that consensus was all that mattered. Transferring a coin was a matter of public contract. Bitcoin takes it a giant step further, and lets anonymous identities (often many per user) own any fraction of these digital coins and assign them to other anonymous identities by public declaration and cryptographic contract. Unlike conventional currencies, the “trusted third party” is the consensus of the entire network, which ceases to be a single point of failure like a bank or government. Unlike on Yap, the “sender” and “receiver” never actually need to know each other’s true identities. Nothing is “sent” between them— not even eye contact— so there is nothing that a third party can intercept along the way in an attempt to block or modify the transfer.
Comments? Send a tweet to @ironwolf or use the response form. I can’t respond to everything, but I do read everything!
When I was a boy, I recall my dad telling me of seeing an ad in the local newspaper classifieds section that simply said, “IT’S NOT TOO LATE! SEND $1 TO…” followed by a P.O. Box. There was no further identifying information, and no promise was made for any goods or services in return. The story goes that whoever placed the ad made a tidy sum. If this story is true, perhaps people who sent in their dollar were just idiots who expected to receive something exciting. But I’d actually prefer to think that most of them were people who decided to send some money out of amused gratitude for the entertainment they’d just enjoyed.
Money is a slippery thing. We take it for granted, like the air we breathe. Also, like air, we’d be pretty helpless without it. But what is money? Briefly, money is:
A medium of exchange: You can buy things with it and sell things for it.
A unit of account: You can divide it into smaller pieces (divisibility) and any unit of a currency is just the same as any other (fungibility).
A store of value: It can be saved, stored, and retrieved, and still be usable with it’s value pretty much intact.
Money is what you will trade your life energy for.
We get so much for free from the Internet these days that it’s almost as if we live two lives: the mundane life of working to earn a living and paying for the things we need, and a separate, magical life we lead in a land where everything is free. We almost take offense when someone suggests that stuff we get for free now is actually worth, you know… money.
And yet we all know in the back of our minds that the people who create music, movies, books, comics, software, newspaper articles, podcasts, or blog posts are spending their life energy to do it. And even if they consider doing it a labor of love, we all know they could do what they love that much better if they didn’t also have to worry so much about paying the bills.
But let’s get something straight: the only reason that the things we get off the Internet can even project an illusion of being “free” is that once they are created, the cost of distributing them is essentially zero— lost in the noise of the fees we pay just to be online.
The reality is that nothing is free— at a minimum the people who create these things are spending their precious life energy.
Most of us are raised with a strong ethic that we should get what we pay for, and conversely that we should pay for what we get. And we are getting so much— our lives have been immeasurably enriched by the communication, collaboration, and culture that the Internet makes possible— I don’t know anyone who denies this. At the same time, we are daunted by the logistics of directly and materially expressing our gratitude to the people who, every day in little ways, make our lives better with their creativity. On the other side of the equation, thousands of creative people turn away from their potential because they know there’s no good way to be noticed sufficiently to break through to earning a decent living doing what they do.
The need for a way to bring these creative producers and consumers together directly has, over the past 15 years, been slowly pressurizing our culture with a sense of cognitive dissonance. As I browse the Internet, I often find myself thinking things like “That was a good video! I hope she does more.” I take the time to leave an encouraging comment, but also in that moment, I know that if I had the ability to drop a nickel (or a penny, or a dollar) directly into that person’s pocket, I would. Like Johnny Appleseed I would happily repeat this sowing of tiny amounts of money everywhere I went. I would sleep more peacefully knowing that thousands of other people like me were doing the same— encouraging the creators to wake up the next day, find their hats full of nickels, and keep creating.
But I can’t. At least, not so far. The introduction of true, sub-dollar micropayments has failed repeatedly. So far the closest successful examples are eBay’s PayPal and Apple’s App Store. But in these cases, there is a middle man with a monopoly taking a large chunk of the transaction, and with a corporate mandate to veto any transactions that seem the least bit risky. These factors make tiny, anonymous transactions infeasible with either, and they have been the major reason why no micropayment system has succeeded… yet.
The situation I have just described is but one of a number of compelling reasons that a new form of electronic currency is required. And finally, a brilliant new invention now exists that fulfills all the requirements I listed above: Bitcoin.
I’m not exaggerating when I call this a brilliant invention. I’ve spent the past several days in complete and utter geek awe over its beauty and simplicity. Bitcoin is real money. It can easily play the role of the nickel I anonymously toss into the pocket of a deserving musician, writer, or artist, as it can play the role of the fees I earn for writing software, or for the revenue I earn for selling my software directly to users. It can also be used to buy real-world hard goods. Like gold, silver, or other commodities, the price of Bitcoin fluctuates against the dollar and all other currencies. Like fiat currencies such as the dollar, it is not “backed” by anything except peoples’ desire to use it for the things that every other currency is used for. But unlike other currencies, Bitcoin has no central banking or fractional reserve system that controls the money supply. Like gold and silver, the amount of Bitcoin in the world is governed by the laws of physics and mathematics, not the whims of governments.
I’m pleased to announce that my fourth iPhone app— HabiTimer for iPhone and iPod Touch is now available for download from the app store! HabiTimer won the “Best User Interface” award at iOSDevCamp 2010, and I’m looking forward to seeing how people use it. It’s free for now, so if you’ve got an iDevice, give it a whirl, and let me know what you think.
I don’t normally post highly technical stuff to my blog, but here’s an exception that I hope will benefit the Mac and iOS (iPhone & iPad) developer community. So if you’re not part of that, feel free to skip it.
This article is a cumulative list of the most commonly-violated best practices for Objective-C coders that I’ve witnessed in my many years of experience with the language. I call them “commandments” because there are many good reasons to observe them and few, if any valid reasons not to. However, when I show these practices to other developers, they frequently raise one big objection…
I’ve been extremely busy lately, but I still keep finding interesting/worthwhile/amusing things on the Internet. So rather than clutter up my personal blog with such stuff, which I’d like to keep for when I have something more original to say, I’ve been posting such little gems to my “tumblelog” found at ironwolf.tumblr.com.
My tumblelog has seen steady action lately, and I post to it almost every day. So if you enjoy the things I’ve talked about here, you should definitely check out the other.
Anyway, I’ve discussed the details here in the past. The news today is that I’ve just added the ability to comment on posts there, so now you can express your own thoughts/amusement/disgust at what you find. Just click the “comments” link at the bottom of each post to read others’ comments or post your own.
Comments? Send a tweet to @ironwolf or use the response form. I can’t respond to everything, but I do read everything!