No One Sends Bitcoins

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!