pull down to refresh

I've been asking a lot of questions here on SN about the controversy of a recent pull request made on Bitcoin Core, so here is a look at my best representation of both sides of the aisle.

Stephan Livera on his x account gives this explanation of Core's proposed op_return changes, using the following analogy:
Picture a city with a strict limit on how much graffiti can be painted on a designated public art wall. Because the space is so restricted, some artists start spray-painting their work on nearby buildings, creating permanent damage that’s costly to clean. To reduce this, the city decides to expand the art wall, allowing more graffiti in a space designed for it, where it can be easily painted over or removed without harming the city’s infrastructure.
The city doesn’t support unchecked graffiti, but by expanding the art wall, it redirects the activity to a less harmful place. Similarly, removing OP_RETURN limits in Bitcoin Core channels spammer's data into pruneable, provably unspendable outputs, minimizing pollution in the UTXO set without endorsing spam itself.
This is a fair and concise way to put it, except that it uses 'art' in a way that may contribute to some misunderstandings for reasons explained below. Furthermore, while Core may not be 'endorsing spam' in the way of jpegs, they do seem to be fairly open and vocal about validating Citrea's harships (#968877).

Core

One issue that motivates the change to op_return limits is UTXO bloat, since the unprunable UTXO sets being used in lieu of the restrictive op_return outputs (i.e. op_false and op_if or 'taproot inscriptions') are a burden to noderunners. All UTXOs need to be included when a node syncs to the network, and a bloated UTXO set, due to non-monetary uses of block space, contributes to the very large initial block download (~1TB). You can see from the graph (below) that close to a majority of utxos are unspendable, or dust (<1000k sats), which is a symptom of non-transactional use-cases of bitcoin block space.
Since larger (>143 btye) data becomes uneconomical when using op_return compared to the other means of storing non-transactional data on Bitcoin (taproot witness scripts, aka inscriptions), then the steelman case for Core would be that eventually the Ordinals, Runes and other 'spam' using Bitcoin as a data anchor eventually get priced-out and datacarrier storage starts to only get used for the 'interesting' projects (like Citrea's) that buy block space for non-transactional reasons. Dropping the op_return configuration option will make it easier for these projects to include their data in mempools that use Core.

Knots

The other side will say that Core is bending the knee to (or otherwise 'embracing') a private company that is interested in anchoring data in Bitcoin nodes. And those that find this objectionable will run Knots, which ostensibly is against dropping the op_return datacarrier config option.
They also raise cultural objections to being permissive to projects that use bitcoin for anything except its monetary properties.

Concerning Mining Centralization

My understanding based on some digging I've been doing is that the Knots mining pools will only be able to restrict what gets into their mempool, but will not (pun unintended) determine what kind of transactions other miners pick up and include in blocks. The reason for this is that all miners have the economic incentive to include transactions with the highest paying fees and will seek out private mempools when it is in their economic best interest to do so. This change would allow smaller miners running Core to profit by the non-transactional op_return data.
The claim is, larger mining pools are already finding larger op_returns in 'private mempools' that come from non-Core implementstions of Bitcoin, and this gives them a leg up on smaller mining pools. The latter have less means (manpower, resources) to adapt to this and face the threat of getting priced out. It would follow that Core's push for dropping the op_return datacarrier configuration will allow all mining pools running Core to profit from the non-transactional data that would then be permitted in their mempools.
It would follow that miners running on Knots, if they are excluding these op_return outputs will not allow these fee-paying outputs into their mempools. The blocks they mine, therefore, will also exclude these fee-paying outputs. However, the op_return data will be stored on their nodes, even if they exclude it from their mempools, since other miners (i.e. those running less restrictive policy implementstions) will be continue to include it into blocks.

Conclusion

Miners have a choice as to which implementation of Bitcoin they will run. Core, the most pervasive, wants to make changes so that miners who choose them will profit from the non-transactional use-cases of block space. Knots will allow miners the config option to exclude this kind of data from their mempools, but they still have no power to stop others from mining blocks with this data.
Ordinals, Runes and other large data files, are not stored in op_return outputs, but in taproot witness scripts. Even with the propsed change, if their data exceeds 143 bytes, op_return doesn't seem to be a viable option for them. Relaxing op_return limits should incentivize small data storage use-cases, such as Citrea's, to take up fewer UTXOs in block space and curb the amount of unprunable data that node runners need to download and store on their machines.
361 sats \ 2 replies \ @Murch 2 May
Furthermore, while Core may not be 'endorsing spam' in the way of jpegs, they do seem to be fairly open and vocal about validating Citrea's harships (#968877).
I just wanted to address a point that I have been seeing a lot. People seem to think that @petertodd is a big-time Bitcoin Core contributor and that he is speaking for Bitcoin Core. Nobody is speaking for Bitcoin Core, everyone is speaking for themselves. And while Peter is certainly engaged in a lot of discussions around Bitcoin, he’s not regularly contributing to Bitcoin Core; he last contributed code to Bitcoin Core in 2016.
reply
Yes, this was an unfair metonymy and was not intended to be a jab at other core devs. Nevertheless, I am critical of Todd, whose voice, evidently, has much import in the space. Thanks for making that point of clarification.
reply
reply
FUCK CITREA Do we really need their garbage?
reply
If this comment raises a million sats i'll vibe code a similar platform that uses OpenTimestamps and WebTorrent and call it Shitrea
reply
Im almost tempted to zap you this 1M to see if you will really do it
reply
lol, I had to think carefully about the amount to make sure it was high enough to be unlikely but low enough to bait some zaps... i'd probably get way more into it than I have time for
reply
be careful... Justin is a very determined guy...
reply
Want to see if he is THAT determined! If I get a boatload of sats I may have to see if he is truly a man of his word
@remindme in 5 months
reply
27 sats \ 1 reply \ @petertodd 21h
OpenTimestamps is not a solution for the problem Citrea is facing. They need a proof-of-publication: proof that data was widely published.
OpenTimestamps just doesn't solve that problem, and fundamentally can't.
Lightning uses this concept too: HTLCs are a proof of publication mechanism too. If they go on chain, the transaction ensures that the pre-image is made publicly available, ensuring the next entity learns the pre-image that they need to collect their funds.
reply
Good explainer...
Do you suppose a hypothetical Shitrea could carry forward the entire history with each update? this would obviously result in bloating itself toward unusability, but for shit shootings sake, do so instead of socializing that cost to the chain?
reply
LOL "shitrea" hahahaha good name!
reply
478 sats \ 2 replies \ @petertodd 22h
Dumb comment.
Citrea is using perfectly standard transactions right now; we can't stop them.
In the process, Citrea occasionally creates unprunable outputs that bloat the UTXO set. We would prefer that they use OP_Return instead. They can't at the moment, as they need more than 80 bytes of data.
reply
Peception is you're playing ball with a company that doesn't give a damn about using Bitcoin as money.
We would prefer that they use OP_Return instead.
Sjors recently said in the mailing list that they probably won't.
So is the public/userbase that sees bitcoin as money supposed to then believe this pr is justified by the off-chance that "occasionally" it will divert unnecessary UTXOs?
Will it create the incentive for those non-monetary use-cases that are already spamming the network to play nice because you "would prefer" it that way?
In fact both scenarios seem unlikely to me.
And even less likely, is that this is a also a thorn in the side of mining centralization.
On the contrary, this change opening the door to new-non-monetary ways to spam the network seems much more likely to happen.
I get that Core devs are doing often thankless work, and I certainly don't take that for granted. Nor do I want to drag your name in the mud, Todd. But in spite of the countless hours I've spent trying to understand what's going on, there are still things that don't add up. I wouldn't suppose to know the details as intimately as you, but please try to afford me and the other concerned users sympathy, as I have afforded you.
reply
I didn't asked how much bytes they need for their shit. I asked why bitcoiners need Shitrea...
reply
I agree, it's definitely a bad look for Core to be so cosy with them.
I'm glad my comment cannot be hidden on SN 😅
reply
0 sats \ 0 replies \ @ek 15h
I'm glad my comment cannot be hidden on SN 😅
Comments can be hidden on SN. If enough stackers downzap one, it will be hidden for everyone who didn't enable wild west mode in their settings.
reply
230 sats \ 2 replies \ @anon 2 May
No, but they will post it whether the OP_RETURN limit is relaxed or not. And there is nothing that can be done to stop that, not even if everybody runs the strictest configuration of policy rules you can assemble.
reply
Then why do we have to remove the restriction anyways? There are more things we don't know yet about this fucking citrea... so better do not play their game.
reply
Because if their spam is in op_return... it has minimal impact. If their spam is in bare multisig or fake public keys... it creates unspendable utxos that increase the utxo count permanently.
reply
0 sats \ 0 replies \ @dwami 20h
What we need is serious spam filters implemented and maintained so this people will get expelled form the bitcoin ecosystem and find something else to destroy from withing. If this will not be done bitcoin would experience dead of a thousands cuts in a few years. It is my opinion that ETFs and inscriptions are dark side attacks. Let's see if bitcoiners will have the courage to fight again! I sense a great disturbance in the force this days pain and confusion avoid we must!
reply
Ordinals, Runes and other large data files, are not stored in op_return outputs, but in taproot witness scripts.
This is not accurate. Ordinals is just a numbering system for sats... it 'pretends' that sats are ordered from 1 to whatever depending on the 'order' in which they were originally mined (it's dumb).
Inscriptions are specifically the use of Witness data to combine the 'ordering' of Sats with arbitrary data... so you can "own" that data based on "ordinals theory." So you can "sell" that Jpeg/specific sat to another moron.
Op_return isn't used for this, just some arbitrary witness data that's associated with the 'ownership' of a particular "sat" (based on "ordinals" theory) which can then be traded or identified.
Like if i pretended that sat # 237568274691 is in the 'transaction' where the witness was 'revealed'... I "own" that particular sat and I can sell it to other people.

Runes are specifically not large data files. And Runes don't even use 'ordinal theory' from what I understand. A 'rune' is just a made-up token identified by a tiny op_return in a transaction. The 'dog' token is identified by a 'dog' tag in an op_return in a 'normal' Bitcoin transaction... and whoever owns that 'output' owns that 'token'.
Which then can be traded with other morons (for the purposes 'creating' memecoins).

Which has more value long-term, Bitcoin as 'sound money' or this stuff? Will the users of jpegs and memecoins 'pay the miners' indefinitely?
See Giacomo's presentation from Bitcoin Prague 2023 Ordinals Are Retarded
reply
Thanks, I appreciate the points of differentiation. At this point, I didn't have the mental bandwith to look into how these shitcoins work (although, I acknowledge that I should have.)
What I'm finding confusing is that I'll read that these things don't use OP_RETURN (as you've said), because witness discounts make other opcodes cheaper.
But when the point is raised, 'well, why would they change, even with OP_RETURN limits eased?' the response is, 'well, they probably won't but they should (especially Citrea), because of UTXO bloat.' (see Sjor's latest message in mailing list); when this was asked of Todd, he was very explicit in citing the needs of Citrea (#968877)
reply
WIthout understanding how the ****coins are being used, and how they are propagated, it's impossible to mitigate them.
It's one of those cases where the 'devil is in the details' and talk is cheap... People say oh 'we'll just block arbitrary data Bitcoin is only monetary etc etc'.
Great! I agree! Now I ask, well how exactly do you do that???
reply
Op_return isn't used for this,
Then why we have to remove it?
reply
Because op_return the filter... isn't working. It is not filtering the blockchain in its current state. So it needs adjustment. It will be more beneficial and cheaper for the spammers to use it rather than something else (I am not an expert but this is the explanation I keep reading)
reply
Nice synthesis, thanks.
reply
Agree leave the limit in. Use L2 like Liquid for this move to L2s
reply