Dogecoin’s Ross Nicoll: Bitcoin Needs To Stop Talking & Start Doing

With the debate on Bitcoin’s scalability still unresolved, and even escalating over recent months, the digital currency could learn from other cryptocurrencies that have faced difficult and fundamental decisions before. One example of the latter can be found in the altcoin Dogecoin, which struggled last year with block rewards running low by the end of the 2014. This was increasingly becoming a network security risk, hence Dogecoin switched to Auxiliary Proof-of-Work (AuxPoW) mining one year ago on September 12, 2014. Essentially this allowed Litecoin miners to mine Dogecoin as well, raising Dogecoin’s security level. AuxPoW followed after Dogecoin’s community had feverishly searched for a solution for several months, during which several solutions were proposed. Most of these proposals only raised tensions and anxiety surrounding the coin’s future. Digiconomist approached Dogecoin Core Developer Ross Nicoll, who personally preferred AuxPoW as a solution, to learn more about the decision making process surrounding AuxPoW’s implementation and the lessons Bitcoin could take from it.

You are well known within the Dogecoin community, but could you provide an introduction to whom might not know you as well?

My early career was as a researcher in academia, and while I joined due to an interest in distributed systems, available funding took my work in other directions. In the end I decided that I much preferred the hands-on coding over the more theoretical aspects, and made the jump to full time software engineer back in 2011. I experimented with open source trading bot development for a few years, looking primarily at currency markets, and while it became apparent that competing against vastly better institutions was essentially masochistic, I remained interested in the technology.

I first discovered Dogecoin in late 2013, around a week after launch, and started contributing to the code early in 2014. I refer to my role in relation to Dogecoin as Software Architect, as I mostly provide high-level guidance and structural improvements rather than focusing on pushing new functionality. I also handle routine updates to the community, and communication with other coins.

AuxPoW was implemented in Dogecoin about one year ago. Could you elaborate more on why it was required?

The highly accelerated mining schedule of Dogecoin required that the price increased quickly in order to maintain mining rewards at a level where it made commercial sense. Unfortunately two months after the coin’s launch, MtGox stopped all withdrawals, triggering a landslide in Bitcoin’s price, along with the vast majority of altcoins due to loss of confidence.

A core of dedicated miners, notably the Dogecoin Defense Force, managed to keep the mining effort artificially high, but it became apparent that no turn-around in the market was coming. With the release of ASIC Scrypt miners the relative hashrate of Doge vs other coins such as Lite was dwindling quickly. Even if we had managed to push past that crisis, competing with Litecoin for hashrate would most likely have led to unhealthy competition between the two coins.

Merged mining with Litecoin was first proposed by Charlie Lee in April 2014, but still it took until August before it was announced for Dogecoin. What were the biggest hurdles in the decision making process?

We really wanted to give the coin the best chance of making it on its own, and I think there was concern about the motivations of others in pushing the technology. The decision was essentially made a while before the announcement, too, however we needed to ensure we had a functioning prototype before we could widely announce the change.

How did Dogecoin’s community behave during this discussion and how did it affect decision making?

The community were mostly really supportive, and we did receive a few other suggestions, most notably a move to proof of stake, which we’ve avoided so far for other reasons. The mining contributions through this time absolutely kept the coin alive. In the end though there was no easy answer, and we spent a lot of time doing our own analysis to form a conclusion.

How did you personally experience the mining debate?

Something I underestimated before getting involved with the coin is how much mental energy it can take, and certainly at points we’ve all had to take short breaks away to recover. Over time and with experience I think we have all learnt to manage stress better, as well as make better and clearer decisions. The Dogecoin developers hold only very small amounts of the currency, as there was no premine or other up-front funding, so we’re relatively isolated from the price movement. Although this also means that we depend on full time jobs which obviously have their own demands as well!

This was around the time we one of the founders (Billy [Markus]) quietly left, so definitely the stress of managing a coin and its impact is not a trivial issue.

What event do you think caused a breakthrough in finally reaching consensus on AuxPoW?

I think primarily as the Litecoin mining rate rocketed upwards and ours held stable (i.e. diminished as a proportion), it provided the catalyst to break the deadlock. Various malicious actors in the community were beginning to look at how to actually 51% attack the coin, and in many ways decision was forced through necessity.

Are you satisfied with the both the process and result?

I think we took the least bad option, at the least bad point in time, which worked. I had vastly underestimated how quickly Litecoin miners would switch to enable Dogecoin mining, which meant our miners were isolated far faster than expected. Still between that and the impact of multipools enabling always-on Dogecoin mining (as we’re compatible with essentially any Scrypt coin, not just Litecoin), we added about 900% to our mining rate, and have had no significant 51% attack risks, which I’m pleased with. Essentially I think we made the best we could of the situation.

With hindsight, do you think there is anything that could have been done to speed up decision making?

Delegate decisions to a magic-8-ball? Honestly, not really. As much as months may sound like an extended decision making process, for a multi-million dollar project I think it’s about right. We’ve all gained a lot of experience from this, and I would like to think we’re better placed to make such decisions now, though.

One idea I want to experiment with is enabling community-led hard forks, so that if in the future the community wants to push for proof of stake or change the block reward or whatever, they can write a configuration that describes the fork they’re proposing, rather than having to compile code to do it. If they can then get a majority to adopt their configuration over the default, it succeeds as any other fork would. I don’t know that this would help with decisions per-se, but I think it would give a much better understanding of the issues facing such changes.

What are the main similarities and differences that you see between the discussion on implementing AuxPoW and Bitcoin’s current block size debate?

There’s an uncomfortable number of similarities; both sides make good points (although as you may have seen elsewhere I have clear opinions on which has the better plan), there’s concerns about the motivations of those presenting arguments, but little in the way of strong evidence of which is correct. It’s also likely that the wrong answer could be an existential threat to the coin!

What would be your advice to Bitcoin’s development team in trying to reach consensus the block size debate?

I think the best bit of advice would be to stop talking, start doing. We have lots of theoretical, but a lot less actual modelling than we need. Let’s stop talking about what a large-block chain would look like, and instead put one together and see how it works, what the block propagation time is like, etc. We also have a huge lack of realistic models of how many transactions Bitcoin needs to support for different use-cases (clearance network, global transaction network, micropayments, etc.), and I find it particularly frustrating when I see talk of Greece adopting Bitcoin without any consideration for how many transactions Bitcoin would need to support to handle a country of 11 million people!

Lastly, do you think Dogecoin might experience its own block size debate?

I think there’s a risk of it, yes, but so far no-one seems to be leading an anti-increase group, so I’d not anticipate problems. We use 1MB blocks, but every minute instead of 10 minutes, giving us effectively 10 times the throughput of Bitcoin, which reduces pressure for a change to be made soon. The recent stress test of Dogecoin on the testnet up to around 500kB blocks (so 5MB equivalent for Bitcoin) went far better than expected, which is extremely encouraging about our ability to scale. I’m going to write up a proposal once Dogecoin Core 1.10 is out, and that will most likely involve moving to parity with the BIP 101 block size increments.