Originally from Melbourne, Australia but now living in the US, Gavin Andresen is the technical lead of the Bitcoin virtual currency system.
Started by Satoshi Nakamoto in 2009, Bitcoin is a digital currency system consisting of an open source client and P2P network. The aim of the Bitcoin project is a decentralised, secure peer-to-peer currency system that does not rely on banks or central transaction processing authorities.
To generate “Bitcoins” people on the network use a cross-platform, open source client developed in C++.
In addition to the open source aspect of Bitcoin, there is now an emerging market in services around the cryptocurrency such as exchange portals and virtual clearing houses.
Previously, the Open Source Identity series has featured interviews with Ruby on Rails creator David Heinemeier Hansson, Linux’s Linus Torvalds, Jan Schneider of Horde, Mark Spencer of Asterisk fame, Spine CMS creator Hendrick van Belleghem, Free Telephony Project founder David Rowe, and PulseAudio creator Lennart Poettering. This time we talk to Gavin Andresen about the new, decentralised approach to money – Bitcoin.
What’s your role within Bitcoin and how did you become involved?
I've been acting as technical lead for the open source project for the last month or two. I heard about Bitcoin a little less than a year ago, and it matched several of my interests (economics, cryptography, peer-to-peer technologies) so I just jumped in and started helping out.
How can technical people get involved with Bitcoin? Does the project need volunteer resources like code and hosting, similar to open source projects? What’s the hacking culture like?
There is no “Bitcoin foundation” or formal organisation — there is only the bitcoin.org and volunteers who are mostly self-organising and who take the initiative to do things that need to get done. Fortunately, there is a lot of free infrastructure for open source projects these days, so, for example, development and bug-tracking is hosted at GitHub and binaries are distributed from SourceForge.
The Bitcoin hacking culture is vibrant — lots of people are doing lots of interesting things with the technology. As the technical lead, my primary job is to be the "bad guy" and make sure any change to the core Bitcoin code is necessary, solid and safe.
Is Bitcoin an example of pure anarchy in action or does it still have some form of central authority and direction [including code management]?
I think it is a good example of a self-organising community. There is a core group of developers, made up of people who have shown they can write safe, solid code, but there is almost no hierarchy and almost all decisions are made by consensus of whomever wants to participate (by joining the discussions that happen in IRC chat or on the forums at bitcoin.org).
The only real exception is if there is a critical bug or security vulnerability that needs immediate attention; in that case, one of the core developers who has write access to the source tree might unilaterally make a change and ask people to download and run a new version of Bitcoin to address the problem.
So it is controlled anarchy – anybody can do anything they like, but the “official” version of Bitcoin will be created by rough consensus, and that's what most people will choose to use.
Bitcoin is described as being in "beta" development phase. When is it likely to be deemed "stable" and what features are likely to be added?
"When and What" are very hard to answer; there is no product development team working under a deadline, there are just volunteers working on whichever feature matches their interests and talents.
Before being tagged "stable 1.0" there are a couple of key features that I think should be implemented (such as making it much easier for non-technical users to back up and restore and password-protect their Bitcoins), and there is some internal work to be done to make it more robust and scalable.
The concept of currency or money is essentially an abstraction of the value of tangible goods and services. Why does Bitcoin also offer a virtual currency at all? Why not create a P2P system for bartering goods and services? I guess it’s a long-winded way of asking, “Why do we even need currency at all?”
Barter is inefficient. I write software and there is an Alpaca farmer near me who creates very nice wool socks. We met for lunch a couple of weeks ago and I paid him Bitcoins for socks; if I had to barter my software-creating-talent that transaction would not have taken place, and I'd have cold feet.
If the system is distributed by CPU power, what’s stopping organisations from “earning” an unfair share of Bitcoins through collusion of computing power?
Nothing stops anybody from generating more Bitcoins by using more CPU power; since the rules are the same for everybody – that is fair. However, because the generation rate is fixed (50 Bitcoins about every 10 minutes right now), so is the amount you can generate, no matter how much CPU power you have.