Open source identity: Bitcoin technical lead Gavin Andresen
- 21 March, 2011 14:29
Bitcoin technical lead, Gavin Andresen
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.
More generally, what measures are in place to ensure Bitcoin doesn’t become “corrupted” by the same people in the standard currency trading system who are just out to “make money”?
There are no measures in place to stop people from trading Bitcoins for whatever they like, whether that's buying a nice pair of socks or trying to manipulate the exchange rate to make a profit. There is a grand tradition of wealthy people who manage to bankrupt themselves by trying to monopolise and control a market; they typically either run out of money before they gain control or find that once they gain control and drive up prices people find a substitute for whatever it is they are trying to monopolise.
I do think there will be pretty wild swings in Bitcoin exchange rates for at least the next few years, just because it is such a small, new market.
How is the Bitcoin “economy” going? What is the level of interest among buyers and sellers to use Bitcoins?
Small but steadily growing is how I'd describe it. Using Bitcoins is still “clunky”, although I'm optimistic because there are so many innovative projects using Bitcoins in lots of different ways – everything from youtipit.org, which lets you give small payments to people who's work you think deserves support, to integrating Bitcoin payments into point-of-sale cash-register software so you can use your mobile phone to make a payment at your local store.
You are originally from Melbourne, and I noticed an Australian was prepared to trade a car for Bitcoins. Any other stories like that you can share? Any news on Bitcoin activity in Australia?
Editor’s note: Gavin asked that question on the main Bitcoin forum and it received some timely responses.
While the car didn’t end up selling for Bitcoins, forum member "noagendamarket" has set up Bitcoin.com.au as a resource for Australians interested in Bitcoin. There's also an Australian Bitcoin investor, Cameron Garnham, so there is definitely some local Bitcoin activity.
Is Bitcoin happy to see third-party trading and brokerage portals pop up? You run such a service yourself with Clearcoin.com. Is it in the spirit of Bitcoin to collect fees for Bitcoin transactions?
Charging for useful services is very much in the Bitcoin spirit – there are actually a lot of people who think every Bitcoin transaction should have at least a token fee attached. The idea is that world-wide competition will make fees as small as possible, and will make companies providing services as efficient as possible.
I think in the long run every Bitcoin transaction will have a small fee associated with it, but I also think that consumers may never see those fees — they will be paid by merchants, in the same way credit card transaction fees are hidden in a slightly higher price for things we buy.
So seeing more third-party exchanges and other services pop up is very good news!
The code for the Bitcoin client is distributed under a BSD-like licence. Is the project happy to see people redistribute the code in binary form only? I.e. create “proprietary” distributions of the client?
As long as the distributor is honest about what they are distributing and don't try to defraud people by releasing a client that steals their coins then that is just fine. However, without releasing the source code how could anybody be certain that a binary release would NOT steal your coins? Personally, I wouldn't trust a binary release unless it was from an organisation with a trusted brand-name.
Recently there was a lot of controversy because Compute4Cash is distributing an easier-to-use version of "gpu mining" software (it is not a version of the Bitcoin client, but a version of related open source software for creating Bitcoins using your graphics processor).
Distributing an easier-to-use version is fine, but what caused the controversy is they don't tell their customers that they are generating Bitcoins, and they only pay their customers about half of what the generated Bitcoins are worth. Several people in the Bitcoin community think that is unfair.
Personally, I think what compute4cash is doing is okay. I would rather they mentioned Bitcoins, and it would be nice if they paid their customers more... but if I felt strongly about it then I should create my own, competing service that was more honest and "fair". I think technical people tend to underestimate how difficult and costly it is to do all the marketing and support required to build the kind of business compute4cash has created.
What are some of the limitations of Bitcoin? Could it be used as a replacement for all currency? I ask this as there is still the “exchange rate dilemma” where people are trading different value currencies to get in and out of Bitcoin. Does the “standard system” still apply for non Bitcoin-to-Bitcoin transactions?
Theoretically it could replace all currency – you could even have Bitcoin-backed physical coins or notes.
There is a thread on the Bitcoin discussion forums challenging somebody (and proposing a Bitcoin reward if done successfully) to "live solely off of Bitcoins" for a month, see: http://www.bitcoin.org/smf/index.php?topic=3500.0. I haven't been keeping close tabs on that thread (I tend to be busy with the development and technical discussions), but just the fact the people are talking about that being possible fairly soon is interesting.
The goal is to grow the Bitcoin economy so it is large enough you don't have any exchange rate dilemma – you can buy the products and services you need using Bitcoins that you earn by providing products and services that others need. You will probably still have to exchange some of your Bitcoins into dollars to pay your taxes, though.
One criticism is Bitcoin won’t handle supply and demand driven inflation and deflation very well. How do you think it will stay relevant amid such fluctuations in “value”? Supply is capped, but the value can dilute over time.
Bitcoins are designed to be like gold – only a limited supply, so, assuming demand continues to grow (as it should if the economy becomes more productive), the value rises over time.
There should be a natural feedback loop with respect to hoarding of Bitcoins — if people hoard their Bitcoins instead of buying goods and services or investing them by giving them to somebody else to spend on productive activities, then the economy will NOT become more productive. So there will be less demand for money, and their Bitcoins either won't rise in value as fast or, if the economy is doing really badly, might actually fall in value. And if that happens, then people have a natural incentive NOT to hoard them.
For me, the key feature that makes Bitcoins extremely attractive as a currency is their predictability. We know how many are going to be created, so at least the "supply" side of the supply-demand equation is fixed. That should make it much easier for entrepreneurs and investors to figure out whether or not a project or investment makes sense.
What, if any, is the relationship with Bitcoin and other Internet-centric money management services such as PayPal?
Bitcoin is more like dollars or Euros than PayPal. In the future, I hope I will be able to hold Bitcoins in my PayPal account, just like I can hold US dollars or Australian dollars in it today.
It gets confusing because Bitcoin is both a currency and a payment network. In the future the Bitcoin payment network might be used only by major banks and financial institutions, with large-value payments made to "settle accounts" periodically through the day. Small transactions might be bundled up by the banks over proprietary payment networks, as is done now with Visa and MasterCard or bank debit-card payments.
I don't think it will evolve that way – I think computer and networking technology will keep up with the volume of Bitcoin transactions so we can all "be our own bank". But either model works.
Follow Rodney Gedda on Twitter: @rodneygedda
Follow TechWorld Australia on Twitter: @Techworld_AU