Bitcoin Core op_return Debate
So it turns out that when I wrote this post four days ago about MARA mining company and their philosophical stance on censorship resistance (aka shitcoins/spam on Layer-1 Bitcoin protocol) that I was just inches away from stepping on a huge pile of shit. Over the last few days this situation has escalated into an all-out brawl between the maximalists.
https://x.com/FractalEncrypt/status/1917600450343293420
On the one side of the debate we have a group of Bitcoin Core devs telling everyone they don't really understand the issue very well and the debate has shifted from a technical issue into virtue-signaling nonsense. The devs are quick to point out that this is not a democracy, and that the opinions of random plebs is irrelevant to the conversation. Of course that kind of attitude really pissed off everyone being infantilized in such a way, so it made the situation even worse.
https://x.com/EliNagarBrr/status/1917702252485128688
Apt meme is apt
The proposed change to Bitcoin in this case is a very small one and hardly matters at all, but it's going to take a lot of explanation to prove why that's the case and why these non-dev maximalists are making such a big deal out of it. I will admit that I was actually on the side of, "don't change the code it's not worth it," but when I realized that basically everyone on the other side of the debate was essentially a maximalist-dev that hates shitcoins I must not have had all the information I needed to make an informed decision. My guess was it was only a matter of time before I had done enough research to switch sides, and that guess turned out to be perfectly accurate.
https://x.com/mattkratter/status/1917916051263914150
This 15 minute video was a great explanation of the concerns of the people who don't fully understand the issue and want to, "Keep shitcoins off of Bitcoin." This Kratter guy goes through it all in a very calm and professional/reasonable manner. He's dead wrong on about a dozen different issues, but it is a great summary on pretty much exactly what's going on with the debate especially from the side of those who don't know any better.
At its heart, this is not a technical software discussion.
Actually that's exactly what it is.
Rather, it's a philosophical debate that any Bitcoiner has the right to participate in.
It's not, and they don't, at least not on the dime of the devs writing the code.
https://x.com/lopp/status/1918281368942895427
Lopp doing damage control
This is a maximalist-dev that I've been following for a while and seems to have gotten very popular over the years, going from 200k followers to 500k, which is obviously quite high for someone who just does technical Bitcoin stuff. He's had to do a ton of damage control over the last few days in response to all this drama, and what he's saying in this tweet basically reiterates what I am saying: Bitcoin devs don't owe you anything. It's not their job to teach plebs how this stuff works. Plebs don't get a say in the work that open-source devs do. Open-source devs get to do whatever they want; that's the entire point of open-source.
Imagine it like this:
- You are an open source dev.
- You create open source code.
- Success! People like your code and start using it.
- You decide to change your code.
- Some people using your code (largely people that don't understand the code) don't like the changes you made to your own code... and they demand their voices be heard.
- You tell them to fuck off and you'll do whatever you want.
- Chaos ensues.
That is exactly what's happening here.
And the people on the wrong side of the argument can't even see what they are doing, and continue believing this is some travesty against them, and that they have every right to tell devs what they need to be doing. But as any Bitcoin dev will tell you: if you want to change the code: then code the change.
What is the change we are even talking about?
It all gets lost in the weeds! Bitcoin Core devs are telling the world they are going to remove the 80 byte limitation on the op_return variable at the end of transactions. The reason maximalists would get so up in arms about this is that the only reason to do something of this nature would be to allow "shitcoins", NFTs, and other non-standard bloat into that slot. We brings us to the current comical debate of hardcore maximalists telling other hardcore maximalists-devs that they must have been shitcoiner sellouts the entire time. Clearly this is just masking to hide their own ignorance about how this works.
https://x.com/i/grok/share/ALBnIDbVFPlgacukMXbL95fx4
At some point it seemed like a good idea to ask AI a couple of questions on this so maybe I could glean an opinion that was perhaps a little bit less biased, so I started asking questions about the op_return limit and found out some interesting facts.
Bitcoin Core's default policy enforces a maximum of 80 bytes.
That's the crux of this discussion
That's the thing that's changing.
Going from an 80 byte cap to unlimited.
So what does that mean for Bitcoin?
Will blocks look any different going forward?
Not really because these filters don't work.
Are people forced to use Bitcoin Core?
Also no.
Wait what is Bitcoin Core exactly?
If you wanted to run your own node one way you can do it is download Bitcoin Core. The important distinction here is that Bitcoin Core is not the only option. Due to all this drama a lot of people are signaling they'll use a different piece of software to run their node. The alternative that I see popping up is Bitcoin Knots. And because it's all open source anyone can fork/clone/change any piece of code they want and run it; it will work if it follows the rules of consensus on BTC.
ROLLBACK to 2014
We can see here that AI provides us with some important context: the 80-byte limit on the op_return
was never a protocol rule but rather a custom rule that Bitcoin Core implemented in the first place, so this entire thing is just a reversal to what it was like back in 2014: deleting that custom Bitcoin Core rule that was never a rule on Bitcoin to begin with.
This is what's called a soft-fork because both versions of the code work perfectly fine with Bitcoin consensus. Either option is backwards compatible with all the other versions. In fact, the last hard-fork that Bitcoin experienced was the one in 2018, and those who recall can remember it did not end well (creating both Bitcoin Cash and Bitcoin Satoshi's Vision as a result).
softfork vs hardfork
A softfork is a change that can be implemented without permission that does not change the network protocol. It is a change to an individual node. Whether other nodes decide the adopt the change is completely optional, as both versions can still run within the same blockchain.
A hardfork, on the other hand, is a change that forces nodes to obey new rules if they want to keep running on the same chain. Bitcoin pretty much never does hardforks because the result is always a contentious split of the community and a new token that isn't Bitcoin. Hive, for example, does hardforks all the time because it only requires a smaller group of consensus witnesses to agree to make the changes, whereas Bitcoin it's impossible to get worldwide consensus.
This is a process often referred to as "ossification": Bitcoin can't make big changes because it's impossible to get supermajority consensus to make those changes. Many would claim, "This is a feature not a bug." Bitcoin is consistent, durable, and we can depend on it to not make big changes, adding stability to the network and the networks it's connected to.
https://x.com/w_s_bitcoin/status/1917921290620481929
Seeing this post made me realize that pretty much all the devs (wicked is a dev) agree that this change is fine and preferable, while all the plebs that virtue signal their hate for Bitcoin just bring up some other random point that does not apply to the situation at hand. This has been a very common theme during this fruitless dramedy.
https://x.com/lopp/status/1918267129247531163
By removing these filters that don't work Bitcoin Core is actually attempting to reduce the spam and centralization caused by all the tricks that are used to get non-standard data onto the chain anyway.
Conclusion
Bitcoin is so censorship resistant that maximalist Bitcoin Core devs have unilaterally realized that it's basically impossible to censor shitcoins and NFTs from the chain. And so they've decided to jailbreak op_return <data>
and just let it happen. That really pissed off other maximalists who don't quite understand how this all works and will fight tooth and nail to keep a filter that never worked in the first place. It's honestly kind of funny watching them go at it. What a shitshow.