An Introduction to Bitcoin

by Frank Buss (fb@frank-buss.de)

Bitcoin is a digital peer-to-peer currency, created in 2009 by Satoshi Nakamoto.  Or, as Dan Kaminsky phrased it in a good Wired article: "Bitcoin's a dollar bill, with a teleporter built in."1  Payments are made to addresses, a 33-letter length public key.  You can send money from Address A to Address B, if you know the corresponding private key of Address A.

Compared to paper money, it has many similar features.  First, you really own your Bitcoins, like money in a wallet.  The standard Bitcoin-Qt client program has a virtual wallet, which you can backup to a thumb drive or upload to some Internet server (the wallet can be encrypted with a passphrase).  A wallet is a set of addresses, with the associated private keys.

There is no central authority who can stop you from spending or receiving money like we've seen for bank accounts in the Cyprus crisis.  And, like paper money, Bitcoin transactions are non-reversible.  If you buy a hot dog, usually you can't return it and get your money back.  The same is true for Bitcoin.  If you transfer Bitcoins to someone, you can't get them back (unless the receiver sends it back to you).  This is different from PayPal or banks, who can chargeback money.  As with real money, this has its pros and cons.

But there are also some differences compared to paper money.  All Bitcoin transactions are known to all nodes of the Bitcoin P2P network.  So there is no anonymous coin.  Nevertheless, it is pseudo-anonymous, because common practice is to use a new address for any Bitcoin transaction.  So, if Bob wants to send money to Alice, Alice should create a new address for him.  When the money is sent to this address, the transaction is distributed in the network, but nobody knows who owns this address nor the reason for the transaction.  A Big Brother needs to monitor all links between addresses and people to reveal the identity, like all email traffic, HTTPS shopping sites, currency exchange sites, etc.  But for even more privacy, there are Bitcoin mixing services.2

Another important difference is the limited amount of Bitcoins.  In the year 2140, all 21 million Bitcoins will be mined.  Until then, there is a steady stream of new Bitcoins - currently 25 Bitcoins every ten minutes, created by the miners.  The network and protocol guarantees that no more Bitcoins can be mined.  This is like gold, which can't be printed by the government for free, but needs to be mined.  And Bitcoin is based on cryptographic proofs.  You don't have to trust someone like you have to for fiat money.

How to Use Bitcoin

First, you need a way to manage your wallet.  You can use a software, smartphone, or web wallet.3  One of the first clients, and still widely used, is the Bitcoin-Qt software.  It is easy to use and available for Windows, Mac, and Linux.  With a software wallet on your PC, you don't have to trust a company like with web wallets or, for example, Apple, who could delete your web wallet program from your iPhone.  Once you have a wallet manager, you can create an address and receive money.  Services like Mt. Gox or bitcoin.de helps to find people who want to sell or buy Bitcoins.  Another way to trade Bitcoins - more in the spirit of Bitcoin - but not as easy to use, is #bitcoin-otc on Freenode, where you can have a nice chat, too.

Once you have Bitcoins in your wallet, you can buy services with it, like a WordPress account or premium Reddit services.  Or you can provide services for Bitcoin.  No one can stop the payments, like Visa did for WikiLeaks when the U.S. government asked for it.  If you transfer money, the transaction has to be integrated in the next block and verified by at least six other clients, which needs some time, usually at least the block issue time of ten minutes.  You can speed it up if you add some fee to the transaction.  The miners who create new blocks get the fees and the higher the fee, the faster your transaction will be processed.  I've set the fee to 0.001 BTC per transaction in the settings of Bitcoin-Qt and usually I get six confirmations within half an hour.

Novel Concepts

Another interesting application is to print your own money.  You can create a Bitcoin address and transfer some money to it.  Then print the public address and the private address on a piece of paper.  With the public address, the receiver of the paper can verify that the money is still at this address4 and the private address can be used to transfer the money to another Bitcoin address.  You should fold the paper so that the private address is not readable until unfolded.  There is already a website,6 which creates some nice bills for you.  Pay attention to the implementation, because if the website receives the private key, it can steal your money.  Best is to open the website, which is implemented in JavaScript on the client site, then disconnect the Internet before generating the paper wallet, then clean the cache and close the browser before reconnecting.  For more paranoid users, or for larger amounts of money: Copy the JavaScript website to a thumb drive, start a read-only Linux system without an Internet connection from a CD, and then use the JavaScript program.

The same website provides another interesting concept: brain wallets.  As noted before, you create your own Bitcoin addresses to receive money.  The private key is a long sequence of gibberish characters nobody can remember.  A brain wallet is a passphrase, which is converted with hashing algorithms to this address.  So you just need to remember a passphrase and then the website creates the public and private key for you (again, you should use it offline).  Send your money to the public address and, with the private key, you can send it again to another address, once you need it.  This is useful for long term storage.  But you should be careful with the passphrase: Everyone who can guess it can steal your money.  And even more scary: Someone could create a rainbow table of all sentences of Wikipedia and, as soon as a new transaction in the Bitcoin network is generated, a table lookup can give a thief your private key immediately.  So use a long passphrase, easy to remember, but not written somewhere on the Internet or in some book before, maybe with grammar or spelling errors, or names, dates, special punctuation, etc.

I've created a brain wallet with this passphrase: "Frank test for 2600" (without quotations).  This is a gift for the reader of this article, whoever is first.  Importing a private key in Bitcoin-Qt is possible with a command line interface, and more easily with a wallet,4 or with the more advanced, but still experimental, client Armory.5

But keep in mind: Bitcoin is the first P2P currency and still a big experiment.  Never invest more in Bitcoin than what you can afford to lose.  If someone detects a major flaw in the protocol or the cryptography concepts, all your money could get lost.

References

  1. www.wired.com/opinion/2013/05/lets-cut-through-the-bitcoin-hype
  2. en.bitcoin.it/wiki/Mixing_service
  3. bitcoin.org/en/choose-your-wallet
  4. blockchain.info
  5. bitcoinarmory.com
  6. www.bitaddress.org