The bitcoin space has been embroiled in a two-years-long debate about scalability. One vocal participant in the debate is Jameson Lopp, a BitGo engineer. He supported Bitcoin XT back in 2015, now strongly supports segregated witnesses (segwit). After a number of Bitcoin Unlimited nodes went down crashing, he publicly said:
“Confession time: I lobbed the RAM grenades earlier. Core nodes were sufficiently armored to repel the shrapnel. All's fair in cryptoanarchy.”
Confession time: I lobbed the RAM grenades earlier. Core nodes were sufficiently armored to repel the shrapnel. All's fair in cryptoanarchy. pic.twitter.com/3OFJRYXZtn
— Jameson Lopp (@lopp) April 24, 2017
On the surface, it appears like a remarkable confession. “Just to clarify,” I asked him, “are you saying you exploited the BU bug yesterday that sent their nodes crashing?”
“Of course not;” he replied, “it's a ridiculous joke tweet in line with the rest of my ridiculous "Bitcoin Civil War" stuff. I don't have time to be doing such things… Good to lighten the mood every once in a while.”
I was slightly disappointed because I thought I had a nice article, but as they say, never let an opportunity go to waste. I remember Lopp was a strong supporter of bigger blocks, then suddenly changed in favor of segwit. I wondered why, thus started a conversation.
Andrew Quentson: I recall you're a big block supporter, or were, now seemingly strongly supporting segwit's activation. What led to this change of opinion?
Jameson Lopp: Right, my views have always been that we need every type of scaling. At this point in time SegWit would be faster, but yes, much larger blocks will be necessary if Bitcoin is to go mainstream.
So I'm not against larger blocks as a general concept (the vast majority of people expect larger blocks eventually) though I am certainly against Emergent Consensus and how it changes the balance of power in the ecosystem.
AQ: Many segwit supporters state that an increase of the blocksize would lead to centralization. What's your view?
JL: I think everyone should be careful about making blanket statements regarding centralization. Centralization can refer to any number of variables and it's often hard to measure or predict.
I think that what most people are referring to when they speak about larger blocks increasing centralization is that larger blocks increase the cost of running a node and thus fewer people will choose to pay that cost. I wrote a lengthy article about how I believe a fundamental point of the scaling debate that no one really talks about is what the acceptable Cost of Node Option should be.
Those who are often identified as "small block supporters" are of the mindset that we should minimize CONOP as much as possible so as to increase the number of people who can afford to run nodes.
Those identified as "big block supporters" believe that larger blocks will increase the user base enough that more businesses that can afford higher CONOP will start running nodes, thus the absolute node count and overall node decentralization will increase.
There's no way to predict the future and say that one perspective is more accurate than another. In my opinion, the question comes down to a trade-off of targeting low node cost vs targeting low on-chain transaction cost. Either one will end up disenfranchising a subset of Bitcoin users.
AQ: In your 2015 article, you state that eventually, we may need 10GB blocks. Considering the aversion some have to hardforks, do you think the base blocksize will ever be increased at all?
JL: I do believe it will be eventually increased; the question will come down to the research being done in order to increase the safety of performing hard forks. There will always be a few people who are fundamentalists but if the tide of meatspace consensus moves toward a hard fork, it will be impossible to stop.
AQ: Some speculate or fear that if segwit is activated the incentives will be to maintain on-chain capacity as limited as possible so that the Lightning Network (LN) or sidechains are used. What's your view?
JL: Layer two solutions are amplifiers for on-chain transactions; thus layer two solutions work even better when layer 1 has higher transaction throughput capability. Though there's an interesting balance there - if layer 1 has so much transaction throughput capability that fees are practically zero, there is little incentive to use layer two and thus reduce CONOP. Many variables at play; few things are as simple as they may seem at first glance.
AQ: The main criticism of LN is that hubs would be centralized due to network effects and/or economies of scale. What do you think?
JL: We don't know LN topology until it's deployed at production scale; I speculated that the topology will actually develop into a scale-free model but it's just another example of predicting the future being quite difficult.
I think folks on both sides of the debate should realize what they have in common: perseverance. Note that whenever Bitcoin Unlimited gets exploited and the nodes crash, many BU supporters say "OK, we'll fix the bug and now BU is stronger than before."
The same thing will happen with LN. There will be bugs and edge cases and they will get fixed out of sheer perseverance of developers. This is how development of open networks occurs: it's an adversarial process.
AQ: On your segwit article, one of the reason why you support it seems to be self-interest, that is BitGo does a lot of multi-sig transactions, segwit would lower their costs. This is due to the much talked about 75% discount. If you look at the whole bitcoin network and try to do so impartially, do you think such distinction between simple and complex transactions is a good idea?
JL: Would SegWit lower on-chain fees for BitGo users? Sure! You know what would lower costs for BitGo users even more? Layer 2 protocols. The reasoning behind the discount is to incentivize UTXO cleanup. In my opinion, the discount could have possibly been optimized to be even more fair but would have required much greater complexity.
AQ: Regarding your joke tweet, I understand it's meant to be lighthearted, but you say "all's fair in cryptoanarchy." We have seen DDoS and other "uncivilized" behavior, if I can put it that way. Plenty of hostility too. Do you think such means are justified if they achieve the desired end result?
JL: From an individual standpoint is it not moral to attack others (I'm a firm believer in the NAP) but from a network standpoint you can pretty much be assured that if you don't exploit bugs, someone else will. I'd refer people to Andreas' Sewer Rat talk.
You can't stop people from exploiting bugs on an open network. Thus you have to stomp out all the bugs.
AQ: Sure, but do you think it is justifiable to exploit bugs for political reasons instead of responsibly disclosing them?
JL: Responsible disclosure is certainly preferable; my understanding is that a number of exploits have been disclosed to BU developers but they haven't fixed them. That's why I tweeted this a while ago: “I'm long on Bitcoin drama and Bitcoin Unlimited version numbers. I'm short on grokking other people's views and compromise.”
AQ: The bitcoin community remains very divided after two years of debate. The only objective measure we have, although imperfect, is miners signaling. Currently, 40% are in favor of BU and 35% in favor of segwit, showing an almost 50/50 split. Do you think they'll ever be able to bridge their divide?
JL: Bitcoin consensus is a tricky concept because people tend to conflate machine consensus with human consensus. I often refer to the latter as "meatspace consensus" which is an impossible-to-define, amorphous thing that we are still trying to understand. Though I think coindance does a good job attempting to make it more objective.
I think it may require a change in thinking if we are to progress the protocol more easily. I especially like Shaolin Fry's view, which is that we should support any permissionless innovation so long as it doesn't actively harm us. I suspect that SegWit will end up similar to P2SH in that many people will choose not to use it because they don't see a need for it.
Though I'm also of a mindset that if Bitcoin does go mainstream, it may be inevitable that subsets of users fork off due to irreconcilable philosophical differences. This is fine; it's how the system is designed to support voluntary interaction.
AQ: In your estimate, when do you think a resolution might be reached?
JL: When will people become frustrated enough that they will actually take action rather than posture? There's a lot of value on the line to incentivize against action without clear consensus. I suspect that tensions will continue to rise as the end of SegWit's BIP9 activation window draws near. Perhaps we'll see a resolution by the end of the year, one way or another.
AQ: Have you looked at extension blocks? Could that be a way forward?
JL: Sure, if you're willing to wait another 6 - 12 months for the entire ecosystem to implement it. As of yet, it's not even really at the phase of general ecosystem acceptance as the best path forward, much less at the point of libraries and wallets working on implementing it.
AQ: A number of bitcoin businesses have seemingly pivoted to eth due to, they say, high transaction fees and delays. Not sure if BitGo supports eth, but do you have any such plans?
JL: BitGo intends to support any digital asset that has sufficient value to make it profitable for us to support.
AQ: What's your view of ethereum and how do you think it relates to bitcoin?
JL: I've spent a fair amount of time working with ethereum; it really is a lot more complex than Bitcoin. You trade off the additional complexities of the protocol with a more feature-rich layer 1. Though we see that this also creates a trade-off with the size of the attack surface.
It's hard to compare Ethereum with Bitcoin because they're very different, not only from a technical perspective but also from a social and philosophical perspective. It will certainly be interesting to observe how Ethereum responds to scaling issues as it becomes more mainstream.
AQ: Thank you. I don't have any further questions. Do you have any other comment or statement you wish to make?
JL: There's a lot of frustration in the Bitcoin community because various groups believe that Bitcoin is not changing in the way that it ought to change. My advice is for folks to realize that Bitcoin is outside of their control; seek the Tao of Bitcoin as I described in "Nobody Understands Bitcoin."