„Consensus is not a thing some developers can decide, but something that should emerge from the actions of individuals.“
Andrew Stone „theZerg“ developed the new exciting Bitcoin Client „Bitcoin Unlimited“. In this interview he explains the story behind Bitcoin Unlimited, the properties of the software and the reaction of the community and critics.
Hello Andrew, I guess you like Starcraft?
Hehe, that’s funny. I played starcraft earlier, part I and II. Why the name “theZerg”? It’s not so much that I love starcraft, but that I thought how bitcoin might take over the world. In the early days of starcraft I usually lost with zerg, until I realized that the effective tactic is to takeover everything via slow expansion of your zerg “slime” into enemy territory — basically via a groundswell of support. Another tactic to win with zerg is the zerg rush, you build little creatures in mass. I think, when Bitcoin is not doing the slime thing, it’s doing the rush.
Hehe, all right. Can you tell me more about you? How did you learn about bitcoin?
I run engineering for a small company in the telecom and defense space. We produce high availability and scalability software. Bitcoin I found mostly because of the flaws of the conventional financial system.
Around 2012 I had built an open source hardware circuit board as a hobby and was selling it internationally. After taking all things – import chips of china, fabrication, selling it international – I learned that paypal got 10 percent of it all. Later I consulted with one of the top European luxury automotive manufacturers, on interior lighting prototypes. This company didn’t wanted to pay with paypal. But my local bank account didn’t accept international payments. Tellers were even unaware that they did not, so the effort to figure all this out was significant. Ultimately I had to open a new account on a big bank and pay a 10-Dollar-fee each month, just to accept a few payments. So I looked for alternatives and found Bitcoin.
I didn’t use Bitcoin in this effort — it was too small then and my business partner was one of the pre-eminent luxury automobile manufacturers. But I got excited about the possibilities
You have written the code of Bitcoin Unlimited. When and why did you develop Bitcoin Unlimited?
To answer this question I have to go back in time. Bitcoin Unlimited is basically the product of a bunch of people who met on the thread „gold collapsing, bitcoin up“ on bitcointalk, which startet long ago to become about more than money and gold but Bitcoin and Economy in general. In summer 2015 the rampant censorship started at bitcointalk, that surpressed and censored any discussion that was not bitcoin core. So was our thread. So it was hostet on bitco.in and became some kind of echo chamber about our disgruntlement with core.
While “echo chamber” is normally a pejorative term, in this case it amplified and streamlined our ideas and messages and at some point we realized, that the blocksize is not a consensus issue. It’s a network issue. That is a very powerful idea. My belief is, that as less parts of Bitcoin as possible should be considered a consens issue.
And then you started to code Bitcoin Unlimited?
I thought about it and came up with the idea, that, if a node receives a block that he doesn’t like, maybe because it is too big, he could refuse it, but at the same time, if the rest of the network accepts it, he should finally say „ok, I accept it.“
One year ago I would have gone to the Bitcoin Mailing List with this idea. But now I’m sceptic. I often read the mailing list and saw people making innocent suggestions and being shut down. I was no longer motivated to take part in this exclusive club and throw my ideas in this hostile environment. Lines have been very clear at September 2015.
In this moment I wanted to create a specific environment, where all people, not just engineers, can present their idea. For example, Peter Rizun had for long taken part in our „gold“-thread and made a position statement, some kind of manifesto. I took it, combined it with ideas from other people and wrote our articles of federation. Bevor we created the code, we’ve done a lot work for our philosopy and for details about the organization and the framework in which the code should be written.
What’s the philosphy of Bitcoin Unlimited?
It’s important that the articles of federation reflect that it’s not my project. So many people contributed. The purpose of the articles is to specify the philosophy of Bitcoin Unlimited and what we feel should be the philosophy of bitcoin itself. The most important thing is: bring bitcoin back to be a currency for individuals; a currency that allows money to be transmitted from people to people, without settlement layers and without third parties being involved.
Everything resolves from that. For example zero confirmation transactions: We don’t consider them as insecure, but as the lowest point on a continuum of security. They serve a purpose and it should be supported that people use them when they fit that purpose.
Another important idea of Bitcoin Unlimited is that nodes have agency. They should be able to do what they are empowerd to do within the scope of the protocol. Consensus is not a thing some developers can decide, but something that should emerge from the actions of individuals.
Like the traffic shaping I wrote for BitcoinXT. As I had a lackage of bandwith with my Bitcoin node, I wrote for myself a traffic shaper with which I can decide how much bandwith I spent. It was immediately accepted by XT. In Core it would have never been accepted. They earlier discussed bandwith shaping, but one single develeper said no, it’s not good for the network, and so it was refused. This is not the philosophy of Bitcoin Unlimited.
Can you explain Bitcoin Unlimited, the software, in easy terms?
The problem with all that consensus finding is, that we don’t know if there is a consens. Do you know the roadmap for scalability, the core devs signed? They pretend as if there was consensus for it, but you don’t know without an objective measure. There was suddenly consensus because one developer announced that there was — its a hidden dictatorship. When I read that announcement, I felt like I was a character in a Kafka novel.
Bitcon Unlimited basically let the users find a consensus. The theory is that nodes and miners build together an emergent consensus and that this consensus is likely better than one set by any developer like a central planer.
What I built is very simple. I made some changes so that the user can change blocksize-parameters by himself. Miners cannot set the maximal blocksize. There is no maximum block size. Instead, users can set their own excessive block size. If miners release a block that has a size above the excessive block size, than the node does watch this block and the chain build with this block on top, but it does not yet become part of the active chain, that matters for your balance and for your relayments.
The user can also figure an acceptance depth. If you set it to let’s say 4 blocks, than there needs to be built 4 blocks on the excessive blocks and than the client says, „Ok, I’m convinced that this blocksize is ok for the network and I accept that chain.“
That’s the key change, although there is also a dialog box and RPC calls to allow the user to change this configuration and traffic shaping. However, Bitcoin Unlimited remains a very thin “patchset” on top of Core. If you like Core but want larger blocks — any larger blocks — then Bitcoin Unlimited is the client to use.
So it was very easy to built. Bitcoin Unlimited is more about philosphy and the concept.
But it provoked a lot of criticism from core. They said it can’t work …
Nobody has formally criticised Bitcoin Unlimited. Do you know the term Bro-gramer? It means you code like you play American football: pushing your enemy with the shoulder, taking the ball, running through the field, throwing your opponent to the ground. On bitcointalk there have been these “Bro-gramers” criticising Bitcoin Unlimited. They had no idea what Unlimited does, they literally just made up their own idea of how it worked. They didn’t read the work nor the code or the articles and not Peter Rizun papers about the fee market. In fact there has been no core developer who formally criticised Bitcoin Unlimited.
But Adam Back – who is a core developer – says it has a lot of weakness …
If you read his mail, it’s the definition of FUD (a term used to describe the communication tactic of spreading Fear, Uncertainty and Doubt). When he was asked, what are the weaknesses, he showed that he doesn’t know how Unlimited works. In the first conversation on bitcointalk I didn’t take part, because of the censorship. Later Adam confirmed that bitcointalk is no neutral place and opened a thread on r/btc. I was very active on this thread for 48 hours, but nobody made a real criticism.
But there is indeed one attack we acknowledge. That is the idea that if the network really needs 8 MB of transaction space and your client can’t handle that space, than you will fall behind. It can happen, for example maybe when you use a Raspberry, that your CPU is no longer able to handle it. But ask yourself, what is better, if some client is left behind the network, or if the network as a whole cannot meet the demands of a worldwide cryptocurrency? We can’t wait for the slowest person. Especially not Bitcoin. Bitcoin’s great advantage over newer cryptocurrencies is its adoption. To hamstring adoption is to allow a technically more advanced cryptocurrency in.
And anyway who should decide who gets left behind? Who decides 500K vs 1MB vs 5MB blocks? No person or organization should have this power — I think the network as a whole has it by the size of the blocks it builds. Miners are effectively voting with their hash power.
Unfortunately at this moment we run out of time. I would have prefered to speak longer with Andrew, about several attacks that have been outlined by critics and about the future plans of Bitcoin Unlimited. For example, Unlimited currently plans a tool to let users decide about the BIPs regarding the blocksize, so they can vote for BIP101, for BIP248 or for BitPays new approach. Also there is a vivid discussion about how Unlimited should deal with upcoming changes like RBF and many things more.