Avatar
Murch
95361a2b42a26c22bac3b6b6ba4c5cac4d36906eb0cfb98268681c45a301c518
Does bitcoiny things at Localhost Research
Replying to Avatar leon_21

Hi Murch, thank you for putting out your argument.

What I don't understand is why the limit for op_return is being changed when filters are actually working. Yes they don't filter out everything but they do filter out most of it.

Then you have a couple of folks claiming that filters are useless and we should give up on them entirely because spammers could use out of bound transactions via services as slipstream by MARA to circumvent filters (which is right but also proves that filters are working pretty well since they wouldn't need to go out of bound otherwise).

I may be misrepresenting the opinion by individual core devs since I don't know what everyone said.

What puzzles me as well is the statement that transaction fees are enough to filter out spam. You might be right with this claim but I am not sold on it entirely.

As long as bitcoin evolves the way as projected and increases in global significance a lot more folks might want to spam the chain even though fees would be higher at that point the incentive for spamming and using more resources to do so would grow similarly.

In general I think spam is harmful and might lead to unintended consequences so I don't think we should give non monetary transactions more room and easier ways to use the protocol.

I said core seems compromised because they would not ship many "controversial" implementations in the past but this time when controversy is obvious as you can tell from the debate they don't care and ship anyways.

My technical skills are limited so I didn't know how to write this up in a shorter manner. I am very interested in your response.

Hey Leon,

thanks for your reply. Given the many points you raised, I will quote for context what I’m replying to.

> Leon wrote:

> What I don't understand is why the limit for op_return is being changed when filters are actually working. Yes they don't filter out everything but they do filter out most of it.

I am puzzled how you arrive at the conclusion that they "filter out most of it". 53% of transactions over the past year had OP_RETURN outputs or inscriptions. Could you perhaps explain further what effect you perceive filters to have had?

> Leon wrote:

> Then you have a couple of folks claiming that filters are useless and we should give up on them entirely because spammers could use out of bound transactions via services as slipstream by MARA to circumvent filters (which is right but also proves that filters are working pretty well since they wouldn't need to go out of bound otherwise).

Some miners appear to be running Libre Relay or have otherwise loosened their mempool policy. These miners accept transactions considered non-standard by default Bitcoin Core configurations in-band. They appear to track them normally in their mempools, and include them in their blocks whenever those transaction’s feerates put them in the block. The myth that non-standard transactions need to pay a multiple of other transactions appears to be based on the OP_RETURN_BOT service charging a premium and sending at a higher feerate, but if you are willing to wait, non-standard transactions appear to be getting confirmed at the same feerates as any other txs.

> What puzzles me as well is the statement that transaction fees are enough to filter out spam. You might be right with this claim but I am not sold on it entirely.

Given limited blockspace, it is obvious that transaction uses that can afford to pay more for blockspace will price out transactions that can only afford to pay little for blockspace. This means especially that large value transfers have a much bigger budget to pay for blockspace than small transfers (if you are sending 10 ₿, you don’t care about paying 10'000 sats in fees, but if you’re trying to send 10'000 sats, paying 10'000 sats is prohibitive). This isn’t a new observation, I wrote in 2016: "Transaction fees are not in relation to the amount of value transferred, but in relation to the amount of block space they'll take. Therefore, it is relatively cheap to send large amounts of value in Bitcoin but uneconomical to send micro-payments." (via https://bitcoin.stackexchange.com/a/48422/5406). I’m not sure what your expectation is, but any form of Bitcoin succeeding will mean that small payments will be economically infeasible on chain. In the past couple years, we saw the third hype wave of people using Bitcoin for publishing data. Just like the prior two times, the excitement eventually subsided and as the premium came down, the cost curbed the transaction volume. Even at the peak of the hype, large transfers easily price out this sort of use. If you are upset that small payments were priced out, I’m afraid that’s the expected outcome either way. I don’t see the point in lying to Bitcoin users by trying to keep transaction fees low artificially.

> Leon wrote:

> As long as bitcoin evolves the way as projected and increases in global significance a lot more folks might want to spam the chain even though fees would be higher at that point the incentive for spamming and using more resources to do so would grow similarly.

> In general I think spam is harmful and might lead to unintended consequences so I don't think we should give non monetary transactions more room and easier ways to use the protocol.

OP_RETURN outputs do not grow the UTXO set, because they do not get added to the UTXO set. They are easier to validate than payment outputs, because they don’t contain signature operations. Since OP_RETURN data is in output scripts, it has no witness data that would be discounted. As far as I can tell, besides competing for blockspace, they use less resources in every way than other transactions per byte.

Inscriptions also do not increase the UTXO set per se, because it takes creating an output and spending an output to publish the Inscription in the input’s witness stack. Witness data is validated once and retained with a full copy of the blockchain or discarded by pruned nodes as any other blockchain data.

It seems to me that most of the UTXO set increase is due to Ordinals—the notion that satoshis have a serial number and some of those serial numbers are more valuable than others—and users splitting up UTXOs to isolate satoshis with certain Ordinals. Sometimes inscriptions are attached to Ordinals, but I’d still blame that on Ordinals more than on Inscriptions. The transactions that split UTXO amounts to isolate certain Ordinals are indistinguishable from payment transactions without out-of-band information about Ordinals, so the main UTXO set bloat is not easy to filter.

So, overall I see UTXO bloat from Ordinals and blockspace demand by transactions that offer to pay more for blockspace. I don’t see a practical way of preventing Ordinals, and don’t perceive Inscriptions or OP_RETURN outputs as particularly harmful (dumb sure, but not harmful). Perhaps you could elaborate how spam is harmful, if you disagree, because I don’t see it.

> Leon wrote:

> I said core seems compromised because they would not ship many "controversial" implementations in the past but this time when controversy is obvious as you can tell from the debate they don't care and ship anyways.

I don’t know which examples of controversial changes that did not get shipped you are referring to, but the ones I recall were sunk by convincing technical arguments against them. I have yet to see a convincing technical argument against raising the OP_RETURN limit.

P2TR keypath inputs weigh 230 Wu (57.5 vB), so P2TR outputs with 1000 sats are economically spendable at feerates up to 17.3 sats/vB.

Would you like to share your concrete concerns, so I can address them?

I have not received any money or other incentives to have a specific position in this matter, not am I aware of any other participants in this discussion being paid to represent a specific position.

To me the arguments for lifting the limit make sense by themselves. My skepticism to the viability of filtering transactions with significant demand aren't exactly new, I pretty much write the same thing on last year's pull request for "match more data carrying" which I found to be similarly poorly motivated.

New major versions are only released twice a year, in April and October. Even if the PR were merged, which it has not yet, it would not be released until Bitcoin Core 30.0 is released in October.

If a pull request doesn't pass review, the reviewers leave feedback on what to improve until it becomes ready for merge or work on it is discontinued. When pull requests run into well-reasoned opposition they tend to get closed to curb review time spent on things that are unlikely to be merged.

nostr:nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq36amnwvaz7tmwdaehgu3wvf5hgcm0d9hx2u3wwdhkx6tpdshsqgy4xcdzks4zds3t4sakk6aych9vf5mfqm4se7ucy6rgr3z6xqw9rqdwmzvs post contains a critical oversight in conflating contributors with maintainers (most of the world has the same misconception or wrong perception as well). Bitcoin Core currently has just 5 maintainers with commit access (Hennadii Stepanov, Michael Ford, Andrew Chow, Marco Falke, and Gloria Zhao [just two years ago Gloria told me they were eight contributors then.]), not the "40 regular contributors" mentioned. This distinction matters profoundly for decentralization.

The maintainer exodus is concerning - Wladimir van der Laan (lead for 9+ years), Samuel Dobson, and Jonas Schnelli have all departed. These maintainers serve as gatekeepers with actual power to merge code, while contributors merely propose changes. This is a topic rarely discussed because the core of Core is not something you want the world to know about regarding their politics, risks, and threats. That's the main maintenance garage for the only workable money vehicle in human history.

Both Core and Knots ultimately represent centralized decision-making structures:Core with its 5-person bottleneck and Knots with its single-developer approach. The recent OP_RETURN controversy perfectly illustrates this tension, with Core's removal of the 80b limit triggering a 137% surge in Knots nodes (from 674 to 1,890 nostr:nprofile1qyxhwumn8ghj7cnjvghxjme0qyt8wumn8ghj7etyv4hzumn0wd68ytnvv9hxgtcqyr7at68k4cxms9a7pdca5gzf3svqd95d3fj9j4vuyj0nyta8x3j2whad7ya nostr:nprofile1qythwumn8ghj7ct5d3shxtnwdaehgu3wd3skuep0qyt8wumn8ghj7ct4w35zumn0wd68yvfwvdhk6tcqyp60l3gucvq4pnmekm9nzmf6zh8nx24jngu0aj0tfp9tz4gad5v9v94ulq2 nostr:nprofile1qyvhwue69uhkyat8d4skutndva6hjtnwv46r5dpcxsuqz9nhwden5te0vfjhgcfwdehhxarjd9kzucmpd5qzqxvfqd89dw8kqmrjfaz6zt8gfggcg93p4tm3s2slv4jrszuugfmt74rjkj ) as users actively choose which monetary values they want preserved.

While Bitcoin Core currently benefits from nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqyehwumn8ghj7mnhvvh8qunfd4skctnwv46z7ctewe4xcetfd3khsvrpdsmk5vnsw96rydr3v4jrz73hvyu8xqpqsg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q8dzj6n 's principled funding (providing over 60% of its $8.4 million annual development budget), this centralized patronage model fundamentally contradicts Bitcoin's sovereign design and creates vulnerability to future influence shifts. The passionate debates between Bitcoin Core and Knots supporters may appear toxic to outsiders, but these confrontations serve as essential alarm bells that educate the ecosystem about threats to Bitcoin's monetary properties.

This is Bitcoin's true governance at work. While development teams may act as centralized decision-makers, ultimate power rests with individual Bitcoiners who collectively determine which vision prevails through their choice of software. Every node operator independently decides which implementation best preserves the monetary properties they value - whether that's #Core 's more permissive approach or #Knots ' stricter filters against non-monetary uses. This symbiotic relationship between Bitcoin and its most principled defenders ensures long-term resilience against changes that might compromise its fundamental value proposition. demonstrating that #Bitcoin needs sound money maximalists, imo, as much as maxis need Bitcoin to preserve the world's only truly sound money.

No, I did not conflate contributors and maintainers. In Bitcoin Core nothing gets merged until it has been reviewed by several regular contributors, usually several times. Sure, one of the five maintainers (who are part of the regular contributors) is usually the last reviewer and will merge a PR if it has had enough review and they're satisfied, but they don't merge things that haven't been reviewed by other knowledgeable developers, mostly from those 40 regulars.

Murch didn't talk about the OP_RETURN limit at all in that post, he was addressing claims that Bitcoin Knots has more developers than Bitcoin Core.

If you want to know my thoughts on the policy change, I've left a comment on the PR.

Okay, what for? For informing people about the options they're choosing from?

Replying to Avatar Ademan

Humorous punctuation: https://bitcoin-irc.chaincode.com/bitcoin-core-dev/2025-05-15#1121197;

As recently as *today*, someone savvy enough to make it into IRC, and is aware the mailing list exists asked "Is there a ml post (I can't subscribe, it probably just sits in mod queue forever) which goes over the rationale/reason (from bitcoin core's view) for why op_return is to be changed (and the option to configure it potentially removed in the future)?"

Stop wondering whether that was a joke

Is that a gut feeling, wishful thinking, or did you see anything specific in that repository that indicated review activity?

Witness data is discounted by a factor four not three, but yeah, OP_RETURN data takes more blockspace and is more expensive to the same degree. Either way the sender pays for whatever blockspace they win the bid on.

That's where we disagree. We should make the benign way of writing data easier so they stop using the malign one.

Yes, that's correct. Small data payloads get slightly cheaper. It just seems that people are much more concerned about big amounts of data and those are significantly more expensive with OP_RETURN. Either way, data occupies whatever blockspace the transaction bids the premium for.

It's not a bug. Dropping the script size limit is an intentional design decision. As BIP 342 says:

"Why is a limit on script size no longer needed? Since there is no scriptCode directly included in the signature hash (only indirectly through a precomputable tapleaf hash), the CPU time spent on a signature check is no longer proportional to the size of the script being executed."

You could always put data in the block chain by paying for the block space. The DoS protection was always the block size limit and blockspace market: it's expensive and people stop doing it whenever the hype has jumped the shark.

Could you elaborate how "inscriptions are more onerous for the data hoarders to inscribe and reconstruct in order to access their data"? Serialization and deserialization of data is a standard exercise that gets designed once and then used per a library. Why would they care which function they call on a library?

Could you tell me more about the concern you have when you say "if we let them put data on the Blockchain in its raw form that could be inviting even more problems than it solves"?

Theoretically you could have done the same reveal truck with p2sh, but the redeem script had to fit into a single 520 byte push. Segwit introduced the witness section and witness discount, Taproot removed the 520 byte limit for witness stack items. Altogether, you could then do big scripts for less in the witness.

The main reason to do it is the same reason as 2013: it's preferable for people to write into op_return outputs than into unspendable payment outputs. Dropping the limit makes OP_RETURN a reliable replacement for the latter which is currently standard and essentially unpreventable.

Data in OP_RETURN is significantly more expensive than data in inscriptions, so I have a hard time understanding the concern that the overall block space occupied by data transactions would increase.

Whether more should have been done about inscriptions seems like a separate debate that mostly muddies the water here.

1. I don't understand why people think Peter Todd is a regular contributor to Bitcoin Core. I don't think I've seen him make that claim, I've certainly not seen other contributors make that claim, and as far as I can tell, he has made three commits since 2016.

2. You will have to ask Peter why he said that and how he meant it.