splitbrain.org

electronic brain surgery since 2001

Bitcoin for Beginners (like me)

Bitcoin is a new virtual currency or as my buddy Dmitri puts it:

You mean the currency that everybody talks about, only few understand how it works, and no one uses?

So I set out trying to understand it a bit better and see if and how this could be a solution to the “Paypal Problem”1)


Technology

I wasn't so much interested in the whole technical details on how Bitcoin works. I'm no crypto expert and Bitcoin got a lot of buzz in the recent months, the whole protocol and clients are open source and I trust that many people more clever than me have analyzed how it works and that the system itself is secure2).

However it turned out that some basic technical understanding is needed to understand why certain things work as they do. So lets put down some (probably oversimplified) basics first.

BitCoin is decentralized using Peer-to-Peer technology. This means there is no real central authority, similar to popular filesharing protocols, clients talk to each other and propagate transactions through the network (pretty much like Gnutella did). However BitCoin usually uses some IRC channels to find nodes to connect to (similar to a Torrent Tracker).

BitCoin clients are called wallets. Like a real wallet they store your coins. If you loose your wallet, that is the file your client stores the data, you loose your money. Of course Bitcoins aren't real coins, instead simple transaction statements (“Address A sent 5 BTC to Address B”) are stored. These transactions use public-key mechanisms (think SSH), so you send a coin with your private key to the public key of someone else. Your wallet contains the private keys for your coins. Without that key the coins can't be spent anymore3).

To verify the integrity of all transactions and make counterfeiting impossible, transactions are verified and signed by miners by creating so called blocks. Mining is a very (computational) expensive process involving lots of hashing. A block contains many transactions and the BitCoin clients will use these blocks to verify transactions. People running the mining process get rewarded for completing a block by receiving a certain amount of bitcoins from the system4) and from fees attached to the transaction (more on that later).

In fact the whole mining/block business is the most complicated part about the BitCoin technology5). But to just use Bitcoin you don't need to think about it much. You just need to know that there are nodes in the network doing expensive work to verify transactions and keep the system working.

Getting started

Bitcoin Wallet on Android

The first thing you need to use BitCoins, is a wallet. I did my first steps with an Android app called Bitcoin Wallet. You can also use the official client available at bitcoin.org.

Once started, the wallet will create an address for you. This is basically a private/public key pair with the shown address being the public part. Now people can send bitcoins to this address.

To get started I asked around at my followers if someone could donate a small amount to me for playing and @fabsh from Linux Outlaws was kind enough to send me 1 BTC6). It took about 10 minutes to go from his wallet to mine.

If you don't have a buddy to get you started, there's also the Bitcoin Faucet that gives away 0.001 BTC7) for free.

BTW. you can also create an account at some eWallet provider – which is probably a bit more convenient but also a bit closer to the initial Paypal problem again.

Sending Coins

Sending Bitcoins

Now like with a real wallet, you shouldn't keep all your money in one place (like on your phone). Instead you should have a savings account. To have that, I set up a bitcoin client at my computer and then sent money from my Android wallet to the address generated by my home wallet. This is the same as if I'd be sending money to someone else's wallet.

Now the dialog looks easy enough. It expects the target address and an ammount. But what is it about the optional fee? I wasn't so sure but it said optional, so I used a zero and hit send. The BTCs vanished from my wallet, but on the other side nothing showed up. Not after 10 minutes and not an hour later.

I was confused. I triple checked that my client was working, that the UPNP option of my router forwarded bitcoin traffic to my client and that I didn't misspell the address. Everything was alright but my BTC didn't show up on my home computer.

Only several hours later my 1 BTC finally arrived.

To understand this we have to look at the tech again. As wrote earlier, transactions have to be confirmed in a mined block before they are valid. Creating these blocks is expensive – it takes a lot of CPU and thus electricity to calculate them. To encourage people to running miners, the system currently gives some free bitcoins to the miner who calculated a new block, but this will stop once 21 million bitcoins are in circulation 8). But blocks then still need to be created to verify transactions. To give people an incentive you can attach a small fee to your transaction. This fee goes to the miners who can prioritize the inclusion of transactions with fees.

If I had added a small fee to my transaction it would probably have been picked up much faster.

Trading

The idea of a currency is that you can use it to buy or sell stuff. Unfortunately the list of sites accepting Bitcoin isn't that overwhelming currently. This means to give the currency real value it has to be convertible to other currencies.

And that is exactly what happens. The biggest trader for Bitcoins is Mt. Gox who is said to handle Bitcoins for about half a million US Dollar daily. Like with a real currency, the exchange rate can vary and the following graph shows how the interest in Bitcoin during the recent months changed its value massively:

Bitcoin value over the last 4 months

For trying if I could easily convert bitcoins in anything of “real world” value without going through any bank transfer hassles, I decided to try BTC Buy which sells Amazon.com gift codes for bitcoins. I bought a 3 USD gift code for 0.25 BTC9). Thanks to the 0.0005 BTC transaction fee I used this time, my order went through in just couple of minutes.

Summary

I now know how this bitcoin thing works and I have to admit I'm intrigued.

The biggest problem is the adoption of course. A currency is only as good as is its acceptance rate. Unless it is backed by some bigger players 10) I fear that it will remain a rather geeky payment option only.

This is especially true if you really consider to use it as a Paypal alternative – the one thing Paypal makes easy is to let people add “real” money to buy something. My mom might be able to use her credit card to paypal me money, but buying bitcoins?

Anyway, if you like to donate for one of my projects or this article, feel to send bitcoins to 15B8b5yCB5sK7hSwbhyQQZpHrRYzvmxrAA ;-).

Tags:
bitcoin, howto, currency, paypal, technology
Similar posts:
1)
In case you're wondering: The problem with Paypal is that it is a centralized system that can easily freeze your money for whatever reason they see fit. Prominent examples are the frozen accounts for WikiLeaks donations, but there are lots of horror stories from individuals on the net. And no, just having Google Checkout or Amazon Webpayments does not solve that problem – it just puts a different name on it
2)
Meaning secure against counterfeiting, double spending and transaction loss
3)
So backups are essential
4)
by design, this amount is getting less each month until it reaches zero
5)
and I admit that I might not have understood it 100% correctly
6)
about 9.55 EUR currently
7)
about 0.01 EUR currently
8)
this shall prevent inflation
9)
I didn't care for good exchange rates here, I just wanted to prove the point
10)
Amazon or Google could easily add Bitcoin to their products from a technical standpoint, but probably never will for political reasons