Jeff Garzik could be considered one of the guardians of bitcoin. When we caught up with him, he had just finished working with others to stop a network-wide event â a DDoS attack that exploited some stray code in the reference bitcoin client (Bitcoind) to target certain parts of the cryptocurrencyâs distributed infrastructure.
He became one of the core developers of the Bitcoin protocol after he began working on the project during its early days. He was involved in many of the early forum discussions with the mysterious Satoshi, and even exchanged a private email or two with him.
CoinDesk caught up with him to talk about Satoshi Nakamoto, the open source development community, and where the protocol is headed. One of the first things we asked him was how he viewed its current status.
âBitcoin is out of its infancy and starting to mature. There are increasing numbers of merchants at BitPay, and people are starting to see it as money over IP,â says Garzik, speaking in his gentle North Carolina drawl.
However, there was no one single event that set the cryptocurrency on a course for success, he asserts. It was more of a slow, organic process. Over the last four years, the currency has matured to the point where it has continuous value. Thatâs pretty good going, in his book.
That said, there were promising developments along the way. The Central Bankâs activities in Cyprus in April prompted speculation in alternative currencies, he says.
âThe FinCEN guidance was a positive turning point too, that happened right around the same time. In my humble opinion, that guidance said that bitcoin is ok. Theyâre not interested in pursuing bitcoin users for selling and buying goods and services in bitcoin â theyâre interested in regulating the exchange points.â
There was a turning point for Garzik, though, when he was hired by bitcoin payment processor BitPay in May. Overnight, he went from being a developer for Red Hat who worked part-time on the Bitcoin protocol to being a full-time Bitcoin developer. Now, he has more time to spend processing changes to the protocol, and thinking about its technical direction.
The currencyâs development is following expectations, he says. âWe wanted it to be a usable currency for anyone in the world regardless of country or economic status,â he says, adding that itâs spreading quickly, although heâs still hoping for more accessibility in less wealthier nations, on the African continent, for example. But heâs encouraged by bitcoinâs fast adoption in China.
This is just the start for bitcoin, however. Today, itâs little more than a currency system. âIn a payment system you have many products built in many layers,â he says, likening the currency itself to the bottom layer.
âOn top of that, you have a layer of banks, and lending, and futures and options trading, and shorting. Thatâs the next step for bitcoin, getting those advanced financial tools layered on top of bitcoin.â He eventually expects to see credit and debit cards denominated in bitcoin.
But Garzik is more of a coder than a macroeconomist. He enjoys the technology behind bitcoin, and with others, has been responsible for many crucial parts of the software that developed out of the Satoshi client.
âSatoshi was a fantastic designer and architect,â he says, adding that the originator of Bitcoin has thought about the system at a very deep level. âHe spent a couple of years thinking about the system, and then according to what he said, he had to write the system to prove to himself that it would work.â
The software went largely unnoticed until news of it hit Slashdot in July 2010. He posted his initial code and it didnât really gain a lot of attention for 6-9 months and then it started getting a few tech mentions. Then it hit Slashdot in July 2010.
But in spite of being an excellent architect and designer, Satoshiâs coding practices were unconventional, says Garzik, adding that the original version of Bitcoin was Windows only, not very portable, and âa jumble of source codeâ with several half-finished projects.
âHe was the oracle to which we would go for questions about the system, but he rarely followed standard engineering practices, like writing unit or stress tests or any of the standard qualitative analysis that weâd perform on software,â Garzik recalls. âSeveral things had to be disabled almost immediately upon public release of Bitcoin because they were obviously exploitable.â
Things have come a long way since then. Now, Bitcoin is a project managed by a group of core developers, with Gavin Andresen, Garzik and a core group of others managing the Github pulls.
âItâs a meritocracy like every other open source project. Your contributions are valued if everyone else has consensus about it being a valuable contribution,â Garzik says.
This notion of consensus doesnât necessarily make Bitcoin a push-button democracy, though; the core developers carry ultimate veto, and theyâre notoriously cautious. âIn general, the devs try to be very conservative. Typically, we donât introduce new features. We just try to ensure that the existing ones work.â
That isnât to say that new features canât happen. Thereâs a mechanism called the Bitcoin Improvement Proposal (BPI) used to put forward proposed new features for the protocol. But itâs controlled by the core devs. âIf we want to extend it, weâll write up a BIP and publicise it through blogs, and we just try to judge through user feedback whether they like the feature, or donât understand it, or things of that nature.â
So, does Garzik see the need for any new features in Bitcoin?
âRecurring payments,â he says emphatically. Bitcoin is great if I want to send you some bitcoins once. But if I want to pay regularly for a subscription to, say, an online service, or for regularly updated content, itâs flawed. âBitcoin is a push model where you push payments to someone else, but it isnât in the protocol that you pay someone on a regular basis. That needs to be filled in.â
Another must-have for Garzik is what he calls âtransaction lifetime determinismâ â the retrieval of bitcoin payments from limbo. Transactions on the bitcoin network have to be mined in a block, and the network calls for those transactions to be confirmed. The general recommendation is six confirmations (one per block), but in practice, the number of transactions required by a party is variable.
I donât think itâs likely that the second generation will produce any useful, viable long-term cryptocurrency, but I do think that all this experimentation will absolutely inform the Bitcoin ecosystem
If a transaction isnât confirmed, it becomes stuck in the network, and you need an expert to help you recover those funds. âA user always needs to know what is going on with their money. If it isnât confirming after a set period of time, it should just kick the transaction out of the system rather than just sitting around for weeks and months.â
Bitcoin activists and evangelists like me have a bunch of answers. Itâs borderless, itâs irreversible, and thereâs low risk of fraud. Nonetheless, itâs difficult to get on the radar of your average person.
Features like these should go into the core protocol, but there are plenty of other features that Garzik wants to see layered on top of the network, without affecting the core protocol.
Coloured coins is one. Garzik wrote one of the first implementations of this, called Smartcoin. This concept enables attributes to be assigned to a coin, so that it can become a token for ownership. They could be used for everything from exchanging ownership of physical assets, to marking stocks, bonds, and options.
âThere are zero modifications needed to support coloured coins today,â he says. âBitcoin wouldnât need to be upgraded.â
Read part two of CoinDeskâs interview with Jeff Garzik, where he reveals his thoughts on alternative currencies, ASIC miners, and getting everyday users on board for bitcoin.