This is a long post that hopefully bridges some gaps between technical people (devs) and non-technical users and how they look at spam prevention in Bitcoin. I hope that it clarifies why I think that there is such a huge misunderstanding between both camps.

I'll preface this post with first disqualifying any malicious attempts to misrepresent the motives of either camp. Everybody wants to improve Bitcoin as money. Money is Bitcoin's use case. It's not a data storage system. If you think otherwise, there are countless shitcoins to play with.

Alright, let's get into it.

I have worked on anonymous systems for over a decade. I have read tons of research on spam detection, rate-limiting, and I've implemented spam prevention techniques in the real world.

I am very confident to say that there is not a single known method to prevent spam in decentralized anonymous open networks other than proof of work.

This is what Satoshi realized when he designed Bitcoin and it's why only transaction fees can reliably fight spam without sacrificing any of Bitcoin's properties.

Let me explain.

Spam prevention is a cat and mouse game. As a system's architect, your goal is to make the life of a spammer harder (increase the friction). This is why, on the web, you see captchas, sign-ups, or anything that can artificially slow you down. Slowing down is key. This is why Satoshi turned to proof of work.

Let's contrast this to other methods for spam prevention. This is not an exhaustive list but it illustrates the design space of this problem, other methods are often derivatives of these:

CAPTCHAS are a centralized form of proof of work for humans: Google's servers give you a hard-to-solve task (select all bicycles) that will slow you down so that you can't bombard a website with millions of requests. It requires centralization: you need to prove Google that you're human so that you can use another website. If you could host your own CAPTCHA service, why would anyone believe you're not cheating?

LOGINS with email and passwords are most popular way to slow down users. Before you can sign up, you need to get an email address, and to get an email address, you often need a phone number today. The purpose of this is, again, to slow you down (and to track you to be honest). It only works well when emails are hard to get, i.e. in a centralized web where Google controls how hard it is to get an email account. If you could easily use your own email server, why would anyone believe you're not a bot?

The next one is the most relevant to Bitcoin:

AD BLOCK FILTERS are another form of spam prevention but this time the roles are reversed: you as a user fight against the spam from websites and advertising companies trying to invade your brain. Ad blocking works only under certain conditions: First you need to be able to "spell out" what the spam looks like, i.e. what the filter should filter out. Second, you need to update your filters every time someone circumvents them. Have you ever installed a youtube ad blocker and then noticed that it stops working after a few weeks? That's because you're playing cat-and-mouse with youtube. You block, they circumvent, you update your filters, repeat.

The fact that you need to update your filters is critical and that's where it ties back to Bitcoin: Suppose you have a mempool filter for transactions with a locktime of 21 because some stupid NFT project uses that. You maybe slow them down for a few weeks, but then they notice it and change their locktime to 22. You're back at zero, the spam filter doesn't work anymore. What do you do?

You update your filter! But where do you get your new filter from? You need a governing body, or some centralized entity that keeps updating these filters and you need to download their new rules every single day. That's what ad blockers in your web browser do. They trust a centralized authority to know what's best for you, and blindly accept their new filters. Every single day.

I hope you see the issue here. Nobody should even consider this idea of constantly updating filter rules in Bitcoin. This would give the filter providers a concerning level of power and trust. It would turn Bitcoin into a centrally planned system, the opposite of what makes Bitcoin special.

This is why filters do not work for decentralized anonymous systems. They require a central authority. Until now, these rules were determined by Bitcoin Core, but they have realized that these rules do not work anymore. Transactions bypass the filters easily and at some point, carrying them around became a burden to the node runners themselves. Imagine you're using an outdated ad blocker but instead of filtering out ads, it now also filters out legitimate content you might be interested in. That's what mempool filters do, and that's why Bitcoin Core is slowly relaxing these filters. This has been discussed for over two years, it's not a sudden decision.

The goal of this change is not to help transactions to slip through more easily. The goal is to improve your node's prediction of what is going to be in the next block. Most people misrepresent this part. They say "it's to turn Bitcoin into a shitcoin" but that is just a false statement at best, or a manipulation tactic at worst.

Let's tie it back to proof of work and why fees are the actual filter that keeps Bitcoin secure and prevents spam reasonably well: Satoshi realized that there is no technique that could slow down block production and prevent denial of service attacks in a decentralized system other than proof of work. Fees prevent you from filling blocks with an infinite number of transactions. All the other options would introduce some form of trust or open the door for censorship – nothing works other than proof of work.

He was smart enough to design a system where the proof of work that goes into block production is "minted" into the monetary unit of the system itself: You spend energy, you get sats (mining). This slows down block production. How do you slow down transactions within those blocks? You spend the sats themselves, original earned form block production, as fees for the transactions within the block!

This idea is truly genius and it's the only reason why Bitcoin can exist. All other attempts of creating decentralized money have failed to solve this step. Think about it: without knowing who you are, whether you're one person pretending to be a thousand, or a thousand people pretending to be one. Bitcoin defends itself (and anyone who runs nodes in the Bitcoin system) from spam by making you pay for your activity.

People sometimes counter this by saying: the economic demand for decentralized data storage is higher than the monetary use case. First of all, I think that's just wrong. There are way cheaper ways to store data (there are shitcoins for this), and the value of having decentralized neutral internet money is beyond comparison.

However, there's a much deeper concern here. If you truly believe this, I ask you: what is Bitcoin worth to you? If you think Bitcoin can't succeed as money (i.e. be competitive), why do you even care? If you're not willing to pay fees for the use case that we all believe Bitcoin is designed for (money), and you believe that no one is willing to pay for it, how can it even persist into the future?

You can't have it all. If Bitcoin is money (which I believe it is), then we need to pay the price to keep it alive. There is no free lunch.

Either we centralize, or we pay the price of decentralization. I know where I stand.

Peace.

Reply to this note

Please Login to reply.

Discussion

Thanks for that effort šŸ™

šŸ™āœØāœŒļø

A great summary of the core position as a whole

a flowed one, once again

its a bad position thats why the arguments are weak

So true šŸ˜

Great post. Best I've seen explaining core's position. No one got called retarded, either.

Isn't that your post from stacker mostly?

It is verbatim. That was a stacker link post. That's why if you look at the post I include the link, put everything in quotes, and of course credit Calle. A lot of us do that on SN because sometimes it doesn't pick up the nostr link. I was just laughting with someone on SN that a bot thought I wrote the post and spit out some AI slop. As I said, I'm not Calle and couldn't have written it šŸ˜€

Thank you, Calle. I know where I stand, as well.

You are walking into the change of policy, if you were ā€œstandingā€ you would be in the same place as 10 years of the current policy.

My apologies if what I wrote was confusing. In the English language words can have multiple meanings. I was using ā€œstandā€ as it pertains to the third definition of the word on the list below (noun 1.).

You supporting a change in the software

Lmao

There are changes to Core every six months or so. That’s how we got to version 30. There are also changes to Knots every six months or so. I’m not sure I’m following your logic.

This is obvious a contentious change and its supposed goal of increasing mempool consistency has already failed by radically decreasing consistency.

To push ahead with this change anyway is madness or malice.

I respectfully disagree, but we’re all entitled to our opinions so I respect the fact that you have yours.

Your point is also factually incorrect. Mempools are inconsistent because people are running software that filters valid transactions. While it’s well within their right to do, as I believe people should run whatever Bitcoin client software they want to, it doesn’t change the fundamentals of how mempools work.

This latest version of Core enables nothing that one couldn’t do previously, and everything it enables is within their bounds of Nakamoto consensus, so I don’t understand your last claim.

#bitwar update from admiral calle - very good one

Thanks nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg for this digestible take.

Great summary.

Great post explaining cores reasoning without any non related attacks or accusations!

Even though I disagree with the point that it's not worth playing the cat and mouse game. I think we can define very well, what's a monetary tx and what not

and in the cases where we can't, the friction is so high and the data rate to low, that we can ignore it. It worked good until taproot.

In the long run, fees will solve most of this problem agreed šŸ¤ but we are not there yet.

Knots represents how dangerous religious zealotry and cult behavior can be to decentralized systems and a lot of people who should know better are failing the test.

Your stupidity represents how dangerous is this to projects, community and culture.

The article is full with obvious flaws. Filters work and they slow down spammers.

Filters are presented as centralization point of trust but Bitcoin Core is not a centralization point of trust? Come on.

Filters are additional layer against spam. Fees still work, no one has dismissed them.

BSV is a shitcoin. They did the same change.

"Until now, these rules were determined by Bitcoin Core, but they have realized that these rules do not work anymore."

No, they did not realize that. They were corrupted to do it by Citrea.

https://r2a.primal.net/uploads2/0/83/62/08362e5e64680649ba147a87c35ec20f949f3f0662885fd3944b9fce72b171e1.mp4

"We're hearing things like Citrea is better than Ethereum," Chainway Labs co-founder Orkun Mahir Kılıç told CoinDesk. "It'll be better with time, because there's like $1 trillion, as of now, sitting in the Bitcoin blockchain. It is the most secure, battle-tested and decentralized blockchain. And we are bringing decentralized finance to it." 🤔🤔🤔

https://www.coinglass.com/news/91227

nostr:nevent1qqsyc8m04al84ate6tgkwhvz7s72rhezwn5rp39r0dtvfkhfj9jkm4cppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qg4waehxw309aex2mrp0yhx27rfwsh8qatz9u4zcfwt

Ah, yes. When your argument isn’t convincing enough, always resort to calling someone stupid.

Well, this is one filter that does work. āœŒļø

Daniel is a fine exapmple of Dunning–Kruger effect. Absolute retard. He better stay in his retarded circle of clowns.

Also when a person is stupid what do you call them? Anyway.

I'm sure at some point the cultish knots supporters will vote for a centralized anti cam committee claiming their moral superiority. You're absolutely right, it's eye opening and shows how easy people can get manipulated out of the set of decentralized values.

Let the nodes alone, you idiots. Work for the plebs or leave.

I hope the retards can read this much.

Hey nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg, I appreciate the work you do developing on top of bitcoin, but I’m confused on your explanation. Can you expand on these points you made:

1. How is op_return filtering out legitimate content? What is legitimate content in your opinion?

2. Why is helping my node predict what’s in the next block important? Is it more important than bloating the chain with images and video? Doesn’t keeping the level of entry to run a node keep bitcoin decentralized?

I'll try my best.

1. op_return was invented as a way to prevent even more destructive ways to store data. if you dig through bitcoin's history, you'll notice that in the coloerd coins / rare pepe era, people started putting data into multisig, which created unspendable UTXOs. that's just as a background. today, we're building L2s to make Bitcoin more useful as money. these need to anchor data on the blockchain and op_return is *one* way of doing that, and it's the best way of doing in in terms of minimizing damage. these L2s store legitimate data (they do not store data just for the lulz or to spam the network), but to improve bitcoin's scalability. NOTE: that this discussion is widely blown out of proportion because OP_RETURN is only economic until a pretty small payload size, but you probably know this already. nobody in their right mind would store 1 MB in an op_return if they can it in the witness, certainly not a spammer.

2. there are two important points that answer this question: fee estimation and compact block relays. fee estimation: if you don't know what the next block will look like (because you filter out transactions from your mempool), then your fee estimations will be off. if you're using an L2 that requires good fee estimation like Lightning, this even increases your risk of losing money. second, compact block filters: they minimize network data when a block is found. instead of downloading each new block from your peers, what nodes try to do is to get a summary of the block and fill in the blanks using their mempool data. in the best case, they already know all transactions and only need to download the block header etc. this reduces p2p traffic and increases block propagation speed, which in turns makes mining more competitive, and therefore more decentralized.

hope it addresses some of your quesitons.

Thanks for being honest and coming clean that you are blowing open op return for L2s you are building.

It's a pleasure. I'm not building them btw. I just follow the discussion closely.

Cashu isn’t an L2; it’s a Chaumian ecash system with centralized mints. That’s fine if you trust the mint, but calling everything else ā€˜centralization’ while defending Cashu is a bit rich

My master, the bald degen weirdo want my to come clean on his behalf.

Thank you for responding nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg. It did help me understand your perspective more, but it also brought more questions:

1. So I appreciate your coverage of L2s. I do want L2s, bitcoin global scalability, and anonymity to succeed. And I do want bitcoin to be used as a medium of exchange at some point. But is scalability currently an issue? How much data does an L2 need currently to store data? Are L2s being hindered by op_return default cap rn? Do you think increasing the op_return cap slowly instead of removing it all together, would be the more responsible thing to do?

I might be totally wrong here, but my understanding is that op_return was working at filtering spam (there was no cat and mouse game with spam) and then taproot unintentionally gave spammers an alternative route. Shouldn’t that be addressed by devs instead? Doesn’t this also show us that making changes to the protocol can introduce unforeseen consequences? So again doesn’t going slowly seem more logical?

2. This is starting to get past my current knowledge regarding bitcoin mechanisms so I appreciate you trying to break it down for me. You said when L2 fee estimations are off there is a risk of losing money; does this mean fees could be a few sats more, or can a whole transaction get voided? Neither is acceptable but trying to understand severity there.

I guess I don’t want mining centralization or node software development centralization. Are you saying that when a large mining pool mines a block they get a head start on the next block because other nodes have to wait for that block header to get relayed? And the relay is slowed down when there isn’t node software/rule uniformity?

Anyway this is super interesting and I appreciate your insights. I do want to get things right as a node runner.

Knots nodes still pass images and large op_returns through the network, *when they have been mined into the chain*

Many nodes refuse transactions below 1sat/vB, and indeed some miners refuse to include them (e.g. ViaBTC), but there are hundreds of those transactions in most blocks. Big miners are making extra profit through their out-of-band systems, where they make extra money for including transactions.

Filtering them just means that the relay network is less good at predicting the next block.

And that's bad because it means small miners can't stay up to date, and they can't get their blocks quickly accepted by the rest of the network.

The filters don't work at blocking things, their only impact is to harm small miners.

There are subtleties in all the above. Certain kinds of relay filters can work, but it's all about the complex interactions between game theory and technology.

You mentioned "bloating the chain with images and video". I still haven't seen a credible plan - based on expert knowledge of all the issues - for how to keep these out of the chain.

The medium-of-exchange ship appears to have sailed for Bitcoin.

Bitcoin is a store of value, and this is how the story ends most likely. Yes there will be some niche medium-of-exchange use, and performative spend here and there (including nostr zaps), but for the most part Bitcoin will be bought and sold between those looking to hold it and those looking to cash out on their holdings.

To those saying it can be both the ultimate medium of exchange and store of value at once, that's simply the middle character in the IQ curve meme. You can't encourage people to stack and unstack at the same time.

I think the future of the lightning network and cashu are both bright, but as transport for stablecoins, which are coins that your average person will actually spend at the store.

Whenever there is a transaction between two people who believe that bitcoin is a store of value, they will do the transaction in bitcoin. Why would they do otherwise, paying to convert the bitcoin into fiat and back again?

We see such transactions very rarely today, because so few people see bitcoin as the store of value, and hence it's still very rare that two both sides of a typical trade are bitcoiners. But that will change, especially as we deliver more tech that makes it easy to onboard people

The vast majority of people who hold bitcoin now hold it as a store of value . Or most of it, minus the performative-spend budget.

And those new to bitcoin will purchase it as a means to add to their store of value.

Medium of exchange just isn't in the picture here, really.

BTC is used in some countries extensively.

When the west fiat grift collapses even they will use BTC for transactions.

Bitcoin is not used in any country extensively. It is used in some towns and community hot-spots extensively, and if you never venture outside of those towns and hot-spots then it might feel like it's being used in that country extensively, but this is simply not true. Even in El Salvador use is pretty small overall and decreasing quickly.

Actually, you're kinda agreeing with me now, even though you think you're disagreeing with me 😃, as you keep agreeing that more people are seeing it as a store of value

Imagine two people meet to trade something (a coffee, a car, a yacht, ..) for money

Both are huge fans of bitcoin, and therefore have all of their wealth in bitcoin

They will use bitcoin - not fiat - for the payment. The buyer of the item has only bitcoin to pay with, and the seller wants more bitcoin

This is already happening in some parts of the world. Many people are saving more in bitcoin

As I explained earlier, it'll be a slow process to get more people to see that bitcoin is the best store of value

And once more people realise that, then the medium of exchange is inevitable

This is the middle of the IQ curve meme. In reality the seller will be happy to take bitcoin, but the buyer will not give up their bitcoin. Bitcoin will attain Patek Philippe status, you never really own it you just look after of it for the next generation.

And you certainly don't fritter it away on matcha lattes and trips to Bali.

People are selfish and instinctual, and they will always have other less valuable assets they can exchange for their matcha lattes. The trend of the past 5 years is abundantly clear.

"640k ought to be enough for anyone"

MoE will shine and become dominant with the inevitable death of fiat.

People living in a fiat world (overwhelming majority, at this moment) see Bitcoin as purely SoV. Those living in a Bitcoin world see it as both MoE and SoV, because it is both.

MoE will strengthen in time as more and more people wake up to the fiat matrix.

Those living in the bitcoin world right now are the biggest proponents of store of value. Stack, hodl, It's relentless. And that's on the pleb side. On the corporate side it's treaury, salyor, on and on.

Bitcoin is not, and cannot, be both at once. At best it can be primarily one and a little bit of the other.

By living in the bitcoin world, I meant living on the bitcoin standard and not owning fiat (like me). Bitcoin is my SoV and my MoE. It has to be both when it's all you own.

That's commendable, but you are the rarest of the rare.

There is also the Goldback community, some of whom try to live on a pure goldback standard. A goldback is a physical note that contains a precise, spendable amount of 24-karat gold sandwiched in polymer sheets. True story that. They claim some 3k businesses voluntarily accept goldbacks across the US and some 1 million people have got their hands of some.

But none of these outlier movements, your and theirs, have much bearing on what's going on at large.

Interesting, did not know that about goldbacks! Agreed that _right now_ pure btc standard and goldback standard aren't indicative of the bigger picture. But in the long run, I think it flips

Since people keep saying Bitcoin is digital gold, I don't see why we treat it as SoV and use something like Monero or Goldbacks as the MoE for buying and selling it with.

MoE mostly refers to buying coffees, paying the plumber, going on vacation to Bali, that kind of stuff. Exchanging money for goods and services, not for other money.

bitcoin as the ultimate vault makes sense, hoarding sats like digital dragons. but those lightning zaps? they're the sneaky sparks that let underdogs like me paint pixels into existence, turning value into vivid rebellion one sat at a time. your take sharpens the canvas, friend. ⚔

Thanks for taking the time to explain for the Nth time! Maybe in a year or two when the dust has settled someone will write a book "The Bitcoin relay policy war".

Yes. Needed to read this. Totally agree, bitcoin is a monetary network, not a storage system for shitty jpgs and etc. Take that elsewhere.

Is that your only takeaway from this?

No, it’s also that transaction fees are the only visible spam prevention mechanism for bitcoin to preserve its decentralized nature.

Yes, the critical misunderstanding is that the Core update isn’t being done to turn bitcoin into a shitcoin-friendly system, it’s an acknowledgement that the desire by some to shitcoin on bitcoin is so persistent that they will always bypass any arbitrary centralized prevention methods, and only a fee market can effectively price them out.

But not by making it easier…

It doesn’t. It just removes the arbitrary method that doesn’t work and is commonly bypassed.

If it’s bypassed it works by definition. If the Core Devs honestly wanted to reduce spam, they should have worked on plugging the holes used when bypassing. For now run Knots to send a message while we need to work on plurality of versions.

> If it (the relay filter) is bypassed, it (the relay filter) works by definition

If by "work", you mean "kill the small miners so that a small cabal of large miners have control of Bitcoin", then I agree that it "works"

You might think I'm being unnecessarily sarcastic here, but for many of us the priority is to keep mining decentralised. Miner decentralisation requires:

- keeping the UTXO set small

- accurate prediction of what the next block will be, to enable small miners to stay at the tip and to enable their blocks to be quickly accepted by everyone else

There are lots of issues to consider, and trade offs, but miner decentralisation is critical and must be part of every debater's calculus.

Im sorry, but there are too many false equivalencies in your argument to make sense to me.

It’s not Core’s or anyone’s job to play whack-a-mole with spammers. That’s a fool’s errand.

Agree. Leave the code alone.

How is Core keeping the UXTO set small given the witness discount?

Lifting OP_RETURN limits doesn't address the fact that embedding arbitrary data in the witness script is cheaper, meaning that the network would have to rely on the good intentions of the "spammers" to rearrange their higher level protocols to fetch data from the witness script of the transaction instead of from the OP_RETURN output.

You mention the witness discount, but you don't make a clear point

Are you advocating for a fork to remove, or perhaps just decrease, that discount?

I'm open minded about different *realistic* plans to improve the chain - e.g. decreasing the size of the UTXO set - but your response didn't include any practical plan

I was not trying to propose a way forward in that regard to be honest, but I bring it up in relation to the removal of the 80 bytes limits.

I don't think It can be argued that lifting the OP_RETURN limit serves the purpose of mining decentralization thanks to a leaner UTXO set, precisely because of it being more expensive to embed larger arbitrary data in outputs.

Historical developments in Bitcoin Core make me suspicious of the argument that OP_RETURN should have no limits in order to protect the UTXO set. Had this been the goal, Core devs would have tried to somehow contain the effects of ordinals. Since this didn't happen, I can only conclude that v30 is removing this relay policy fllter for other reasons which I do not at this point understand.

With regards to mining decentralization, I think the community should focus its time and energy on StratumV2, but this entails talking to miners and convincing them of the benefits of block template selection etc etc

> Core devs would have tried to somehow contain the effects of ordinals

Be practical. What do you mean here?

Do you mean a fork should have been rushed out to make ordinals non-consensus-valid? If yes, how do you define an 'ordinal'? For the most part, those transactions looked like normal (Taproot) transactions.

In fact, the 'epic ordinals' are simply the first satoshi mined after each halving.

In order to filter out the epic ordinals, *you would have to filter out the coinbase transaction after each halving*!

If you research ordinals, you'll realise there was no quick fix. And even if there was, it's not responsible to rush out a node upgrade every week to try to squash the latest silly hack. It was somewhat obvious that ordinals (and NFTs and so on) were just fads

> Core devs would have tried to somehow contain the effects of ordinals. Since this didn't happen, I can only conclude ....

It *could* be an evil Core-munist conspiracy. Or it could be that the topic of Ordinals requires more subtle thought ...

(Epic ordinals, and other ordinal stuff, are discussed in detail here: https://www.nervos.org/knowledge-base/guide_to_inscriptions)

I was implicitly referring to inscriptions when mentioning ordinals, sorry for the confusion here. What I meant is that when inscriptions became a thing and the PR to filter them was proposed by luke-jr by matching against OP_FALSE OP_IF, why did not Core propose relaxing the OP_RETURN limits then? I'd expect that to have been the rational thing to do given the arguments with respect to UTXO set bloat

I don't think there is any conspiracy on the part of Core, and I appreciate that filtering spam is not some easy task to be carried out over the weekend, but I don't understand the timing for this proposal, unless this is entirely explained by Citrea as its catalyst.

> unless this is entirely explained by Citrea as its catalyst.

You say this as if it's some evil conspiracy

Even though I keep hearing about Citrea, it's difficult to get people to speak factually and with evidence. I've included a screenshot of what appears (after my limited research) to be the link between Citrea and OP_RETURN

We can't just magic away usages of Bitcoin that we don't like. From what I can see, Citrea will either use a large OP_RETURN, or a small OP_RETURN combined with two unspendable outputs. I don't think we can block them from both options; the most we can do is nudge them towards the one that we find less harmful

When relays are strict about filtering, then it means that Citrea will either use unspendable outputs (increasing the size of the UTXO sets) or will pay large miners out-of-band for large OP_RETURNs. Both of those are bad for miner centralization

Again, be practical, and share practical plans and alternatives, bearing in mind that some of us put miner decentralization very high on the list of priorities. Spreading paranoia about complex systems isn't helping anybody

https://blockspace.media/insight/everything-you-need-to-know-about-the-op_return-data-limit-debate/

> You say this as if it's some evil conspiracy

I really am not, in fact I welcome developments such as Citrea and Strata by Alpen Labs. I mentioned Citrea in relation to my other point, which is that I don't understand the timing of this relaxation in relay policy.

Given that preventing the UTXO set from increasing is one of the goals, I am trying to understand how come OP_RETURN limits were not dropped in 2023 when inscriptions were rapidly increasing the UXTO set. Things are complex and I understand that there is not necessarily an answer here, but I am far from suggesting that something shady is going on behind the scenes as an attempt to overthrow Bitcoin or other such things

Thanks for your quick response, and also for being constructive

I think I'm getting tired of other people and their conspiracies, and therefore I'm quick to assume (incorrectly sometimes) that everybody is being irrational.

[I love conspiracies sometimes, and Bitcoin is too important to be based on naivete. We should verify, not trust]

Anyway, to return to the topic:

Inscriptions require *two* transactions usually (or maybe always). Witness data can be attached only to inputs, not outputs. So, in order to attach some witness data (indirectly) on an output, you have to have a second transaction - taking that output as an input - and then attaching the witness data to the second transaction.

I mention this complexity because it might have been another factor in the topic. The Inscriptions folks might have been willing to do this. But maybe more recent use cases require a single-transaction approach and therefore the witness data is unusable and therefore the choice is between a large op_return or unspendable outputs.

[Again, I might be missing some details here. I think I know a lot of these details, but I'm kinda inferring things from multiple different blog posts. I would be happier if a really high quality document about all of this already existed]

My guess is that the truth is something like this: Witness data is the cheapest way to get arbitrary data in the block. But, as it requires two transactions - not just one - it is sometimes impossible for certain use cases. The single-transaction use cases therefore have to choose between a large op_return and unspendable outputs. Reluctantly, in this case we must large op_returns in the mempool if we are serious about miner decentralization.

He said that- nice words, while making excuses for removing a spam filter

The ability to modify the settings will still be available

They are still deprecating the option.

And there is no need to make this change now.

Core messed up and lost a lot of trust. Maybe less trust is good tho

Both sides are still talking past each other Calle… you wrote well and articulated Core’s argument but I have yet to see any engagement with the real concern here, namely that Core pushed through an unpopular and poorly understood product with worrisome defaults (whether they’re actually good or bad is not the question) and a stated intention to eliminate choice altogether in the near future.

Again, whether the concerns are justified or not is a separate matter. Most of us are not technical enough to understand. We just want civil debate so we can side with the people who seem most reasonable and sane. Core came across as arrogant and unwilling to listen while their supporters have engaged in ad hominem attacks and just generally compounded Core’s behavior.

Knots has, in many cases, come to appear cult-like. Mechanic’s key arguments seem lost in the whirlwind (Knots supporters have missed the nuance) and I don’t see Core supporters engaging with Mechanic’s logic. As he says, Core is arguing ā€œfilters don’t workā€ but Mechanic is not basing his argument on that point. He even agrees that Core is technically correct.

I and others just want to see a civilized discussion (like you’ve put forward here, Calle) that actually acknowledges the perspectives put forth by either side.

Exactly right. nostr:npub1excellx58e497gan6fcsdnseujkjm7ym5yp3m4rp0ud4j8ss39js2pn72a was good on WBD with a nuanced explanation from the other side.

An excellent and honest perspective. Bitcoin is a community project and when a large portion of the community don’t feel heard or respected in the governance or policy area it creates a fracture and damage in the community. Reasoned and respectful conversation is the cure. Hostile, angry, accusatory, defensive behavior is the invading bacteria that causes infection.

Ha it all comes down to not being bullish enough…

Tank you for clear speaking out what I am thinking the same like you

thanks for that one calle!

All I want is a 80 bytes OP_Return.

Why is that so hard?

Because it’s useless

Useless to who?

To everyone! Your node will accept these transactions, once mined, no matter if your mempool policy blocks them or not.

Retard

Why are 99% of currently mined op_returns under 83bytes?

Do you know why?

Because most people are not interested in putting large data on the blockchain not because of the stupid limit.

And that not all transactions comply is the perfect prove that this filter is irrelevant

Of course. But why make it easier to propagate? Wouldn’t that lead to MORE 100k spam OP_Return?

Only less then 1% of the nodes are enough to propagate such transactions without a delay

Yes, but if 99% of the nodes drop them, they won’t be reliably propagated.

A block can hold 3000 to 4000 txn now, if you make it to 100k OP_Return the default settings, then a block with max 100k OP_Return can only hold 40 txn.

You would increase the blockchain bloat and make it more expensive for everyone.

Why is that good for anyone?

What is a good use case for 100k OP_Return that you can’t do with a hash and storing the data somewhere else?

It can, that’s the point šŸ˜‚šŸ˜‚

And what you idiots always ignore is that the current setting can be changed and is not fixed

In order for a transaction to be mined, it must reach the miner who will include it in a block. If 99% of the nodes reject that transaction, it will severely delay its propagation. You are simply too ignorant to comprehend this. šŸ¤¦šŸ¼ā€ā™€ļø

Furthermore, removing this limit will not reduce spam because Segwit is still 75% cheaper when storing large payloads.

You have yet to provide me with an answer regarding a good use case for 100k OP_Return.

WHAT IS IT?

Les than 1% is needed to relay transactions without a delay

Then why force this change? Are you really this stupid?

Because the setting is useless! Are you really this stupid?

No, he is not. But you, Monero shitcoiner, are a disgusting provocateur.

How are you coping after the second 51% attack on Monero?

It’s like saying that the death penalty doesn’t deter murders, so we should abolish it.

all very nice but why not just charge people $10 for an ID?

great question

The enemy of good is better at the end of the day…….

Bitcoin seems to be doing fine at 109k………..

V30 doesn’t save #Bitcoin……

The necessity for changes right now is not evident……..

Necessity is defined as an impending, cataclysmic event that omission of an action would result in serious degradation of the network or necessity can also be defined as a state of consensus of node operators in regards to what they are running……….

The former and the latter currently do not exist……

I see the current indications for the changes as soft……..

Knots and older versions of Core represent the status quo…….

You can choose to run V30 and others may choose to run Knots and older Core versions……..

Is there a problem with an individual node operator deciding their own course?

nostr:npub1s33sw6y2p8kpz2t8avz5feu2n6yvfr6swykrnm2frletd7spnt5qew252p

Wrong. State and super-wealthy adversaries will not be deterred by high fees. They must not be given a contiguous 100kb unrestricted playground.

They already can mine 100kB blobs if they want to. We are talking policy here, not consensus.

I don't see how that's an argument for making it even easier for them. And why the extreme, almost frantic, insistence on doing so? I find that the opposite of reassuring.

If a bad actor wants to imbed 100kb blob of illicit data they can go straight to a miner. In this case the blame will be put on the miner and the bad actor for voluntarily putting this illicit data on chain forever.

If a bad actor can get a 100kb blob of illicit data imbedded anonymously using other people’s nodes (the p2p network) suddenly the blame will be put on the bitcoin network for supporting and facilitating this activity as a feature. You’ve got to remember op_return is a native feature of bitcoin and so by opening up the data carrier size to 100kb you are saying ā€œhey this is a legitimate and supported use case for bitcoinā€.

There’s a blinding difference between the two…

You do know that anonymous miners is a feature, too? So as there is no KYC for mining, the blame would be on the protocol either way. Live with it.

OP_RETURN was always just bound by the maximum transaction size. We are not opening up anything now at the consensus level.

ā€œOP_RETURN was always just bound by the maximum transaction size. We are not opening up anything now at the consensus level.ā€

- I assume you are referring to the fact that nodes can change their data carrier size to allow for 100kb. By default all core nodes prior v30 only allow for 80 + 3 bytes of op_return. The defaults are very important because most people run the defaults. This means that it is very hard to have your larger than 80 byte op_return file relayed across the p2p network, as most nodes do not relay this transaction. This also disincentives miners not to include this transaction as there is a higher risk of their block going ā€œstaleā€ if they do.

Regarding ā€œthe blame would be on the protocol either wayā€ I’d say there’s a difference. If a bad actor must bypass the default P2P path by submitting directly to a cooperating miner or mining the block themselves, responsibility is clearly on the actor and the cooperating miner. If Core’s default changes so that most nodes relay large OP_RETURNs, that plausible-deniability vanishes because the network defaults now support large data relay, and the perception shifts toward the protocol. The anonymity of the miner/bad actor does not really matter in this case because whether the miner is known or not, it’s the perception of how that illicit data was included on chain and whether it was supported by the p2p network, or the network had to be bypassed because it did not support it.

Interesting aspect that miners would exclude big, unpopular transactions as others wouldn't be able to validate those quickly thus resulting in a delay that translates into an orphan risk.

If big OP_RETURNS are evil always and thus have to be filtered out by policy, by your argument, the network would have to ban those by consensus and not just by flimsy policy or else, the network is complicit again. I guess that's a slippery slope.

I think it’s incorrect to say mempool policy is flimsy. As of today, 99% of all op_return transactions are under the 80 byte default max relay limit. Policy is very effective at filtering out transactions on individual nodes’ mempools.

In my opinion a consensus change is not necessary because filters in their current state disincentivise spammers to the point where they have to use exploits or bypass the p2p network. Because of this, its clear bitcoin in its current state is for monetary transactions only. If someone wants to put illegal data on chain by using an exploit or bypassing the p2p network, or in other words ā€œjump the fenceā€, technically nothing is stopping them, but I don’t think the fault and legal responsibility lies with bitcoin in this instance. However, if nodes start to relay large continuous data chunks by default (ie, this behaviour is now supported by the network), I think some fault can and will be put on bitcoin.

And yes the risk of miners having their block orphaned is important and is a reminder that the miners serve the nodes, not the other way around.

I'm with you regarding most of what you say but can't speak to the legal interpretation at all. It certainly depends on the jurisdiction.

Core is essentially centralized on GitHub, The fact that people like Luke and mechanic can create their own fork and people can use it is the only reason I would say it is not centralized. The issue is not that spam exists, It is that when core increases the data carrier size, It will lead to child pornography on the bitcoin blockchain, Just like BSV, And when that hits the mainstream news, Institutions will need to explain that to their investors. Bad for bitcoin. Clearly bitcoin has proven its value as money, And the only legitimate argument is block propagation time, But is sharing child porn worth sacrificing the integrity of the network? There are plenty of places to find child pornography, And that will never change, But the fact that core is so against this sound argument is to me just like I cannot vote against monetary debasement any way except lowering my living standards. I cannot vote against this change in core any way except running an older version of core. Still feels like the politburo of core doesn’t care about child exploitation material on bitcoin.

Indeed, GitHub is owned by Microsoft, THE single point of failure 😟

Their response is ā€œit’s already thereā€

So it doesn’t matter if they make it easier to do.

Insane imo.

Core is acting like the Board of Directors of Bitcoin ..... make it not so. Otherwise Bitcoin is just Google stock.

You need to understand these people hate Bitcoin and want to stop people using it.

That's why they support allowing child porn and malware on the blockchain

Core? I did consider it is a possibility to induce a deeper bear market so whales can buy more supply to maintain control over majority of supply. I also think it’s possible that some of them are just pervy bastards. Either way fuck child pornographers.

"The fact that you need to update your filters is critical and that's where it ties back to Bitcoin: Suppose you have a mempool filter for transactions with a locktime of 21 because some stupid NFT project uses that. You maybe slow them down for a few weeks, but then they notice it and change their locktime to 22. You're back at zero, the spam filter doesn't work anymore. What do you do?"

Yes, spam filters are a game of cat and mouse and policy is explicitly not consensus and the current fight is because some policy is slated to be removed, turning the heat up to consensus level on the data carrier size debate.

"You need a governing body, or some centralized entity that keeps updating these filters and you need to download their new rules every single day."

Uhm, no. Some might do that to more effectively fight spam if some protocols decide to abuse the Bitcoin network despite them being not wanted by a subset of node runners but it's not some Politbüro providing the list all have to use. Some might update daily using one of many providers others might adjust their filters weekly or never but VCs can't just rely on spam filtering not happening anymore. I think that is at the Core of the Knots debate.

"The goal is to improve your node's prediction of what is going to be in the next block."

But that goal apparently does not align with what many node runners want to do - relay Bitcoin transactions, not spam. And to say you fly blind if you don't see the mempool is also exaggerated. OOB transactions might still not show up in the mempool and distort the picture from observing blocks but what gets mined is a good hint to what has to be paid.

Well explained, I hadn't really thought about filters as a vector of trust before.

It's interesting that you didn't call out web of trust as a spam prevention strategy, because that is implicitly the subject of the post.

Web of trust seems to work pretty well on nostr for reducing spam, but ironically destroys something like bitcoin which requires global (objective rather than subjective) consensus.

I happened to be reading about XRP this week (don't ask), and discovered that in lieu of proof of work, or even stake, their sequencers are validated by being included on other nodes' "UNL" s, or "Unique Node Lists", and don't receive fees for mining blocks.

These lists have to be meticulously curated, because any significant deviation between node policies will delay or even stop the network. At best, this curation happens on the social layer, and is in no way adversarial. If you break social consensus, you get kicked off the island and lose the ability to sequence transactions. XRP has 190 nodes, but only 35 are generally trusted to validate the network. To make matters worse, XRP curates a UNL which they encourage the network to use, and "carefully vet" node runners before including them. XRP is completely permissioned; it is no more decentralized than the Fed's board of directors.

I write all this because XRP demonstrates that web of trust is inherently exclusionary, and can only work to the extent that that is desirable (as in a "compliant" digital currency). It may have a minor role to play in decentralized systems, but only to the extent that those systems need not be considered "open", i.e., permissionless.

Again, this is ok for curating feeds on nostr, because I do not want access to my attention to be "open". Network partitioning is part of nostr - there is no "global". There is only my subjective, incomplete view of the network. Strategies other than web of trust are important for bootstrapping new users' reputation. But money has to work for everyone, at all times, and requiring reputation to transact essentially creates a social credit based permissioned monetary system.

Very nice post thanks for sharing

> in lieu of proof of work, or even stake, their sequencers are validated by being included on other nodes' "UNL" s, or "Unique Node Lists", and don't receive fees for mining blocks.

Loool.

I think you nailed the distinction between Nostr and Bitcoin. Bitcoin must maintain a global consensus, so rules must be objective and embedded in the physics of computation, with PoW. Nostr is and should be fragmented, so it allows for rules that are subjective, like WoT.

Some people are annoyed by the debate but I am learning A LOT from you all

Its not interesting, its flawed argument.

The filters, coming with Bitcoin Knots require the same vector of trust that Bitcoin Core requires.

People in the past trusted Core and ran Core.

Core fucked up.

People don't trust Core any more and put their trust in Bitcoin Knots.

What is interesting is that Bitcoin Knots and Ocean actually contribute to Bitcoin's decentralization.

also the trust comes after the verification and the verification shows that Core is not trustworthy

all corporate n bankchains will stop during the next GFC only BTC LTC RVN similar public pow only blockchains will survive

šŸ’Æ

nostr:npub1zt8u9mz68x3e6qhey8mhuuqahst4kc587gka7qj84uuhq6t878vsn7yx9r , the post on X is better as he replies to a load of queries too

Just like Democrats/CNN again and again: talking about all sorts of things that are not really the topics at hand.

You really think a state actor that want to attack bitcoin cares about the fee to insert CSAM?

These Core guys are either breathtakingly retarded or...

nostr:nevent1qqs8sz8f9wss4xnm8fwxfrmxpwz9agywn0z4v5l7ymw0j9yjdkvxqegzypgdjn7zmpvqc6ptqud9gtutrcc6yq9s2z96h9dr80hss4wl9qwkxqcyqqqqqqghsukzt

Total bull. Here's what actually happened.

Filters work just fine. Claiming that fee are the only filter ignores all of bitcoins history.

2023 a few new methods of spam were discovered.

Luke made a pr to filter that crap and core just refused to adopt them. This is the dramatic shift in the development process.

It's not that filters became less effective, it's that for some reason bitcoin core just decided to stop using them. This is why the name calling and the claims of shitcoining, because there is no other logical conclusion for why all of the sudden we were just going to let literal attacks go unchallenged. That is not hyperbole, these spammers has said publicly that their goal is to ruin bitcoin and make it unusable.

There is no reason to force monetary use cases to compete with spam in the fee market. This completely distorts the incentive structure. Spammers stand to make money from their transactions where a monetary transaction only looses money to fees. This premise that you should be willing to pay more than spam for block space or you don't really care about bitcoin is false.

The use cases and therefore incentives are completely incompatible. A monetary network wants fees to be as low as possible, that's one of the reasons we invented lightning. Spammers are willing pay extraordinary fees because they are selling satoshis for more than they are worth. Spammer get paid to make transactions! How can some mom and pop shop or normal user compete with that?

Now fast forward to today, people like Calle are parading around pretending that filters just stopped working when in reality we just stopped using them.

When used filters work incredibly well. The cat and mouse game is absolutely worth playing because the ones using the protocol for its intended purpose have the advantage. Notice there are not a million new ways of spamming bitcoin, there are just a couple that can be easily filtered. You do not have to update every day, that is a wildly ridiculous claim. In the real world developing these schemes to sneak data into bitcoin take time to develop but only minutes to filter. Luke demonstrated this at btc++.

When scammy projects see that they will spend tons of resources to develop their product only to get filtered out, they will just stop trying. If for some reason they can just keep burning money spamming bitcoin and creating new protocols to do so, they are probably just connected to the money printer.

This is not 'the price of decentralization', it is an obvious attack and cores lack of action while the utxo set tripped and the block chain was flooded with jpegs should raise major red flags.

If it wasn't clear let me reiterate. YES, knots filters most spam already. The reason it doesn't do much is because 98% of the network, until recently, refused to do anything about it. Since 2023, when the majority of this nonsense started, there has been a decisive change in the priorities of the project.

This shift in attitude is the big change that we should all be extremely concerned about. The change to op return and standard fees are just going to make it easier to spam the chain and are a direct result of this change in attitude. If we allow this they just move on to the next filter they want to rip out and bitcoin will slowly turn into ethereum.

Is that what you want anon?

"...these spammers has said publicly that their goal is to ruin bitcoin and make it unusable..."

Bring it on. I will out work them in the real world and outcompete them longterm to transact, until they are out of resources. Fees neutrally reward work. Simple. Longterm. Equal. They rely on work outside the system.

Spammers get paid to make transactions. Monetary users seek the lowest fee. The incentives don’t work.

Why would any one in their right mind pay more in fees when they could just filter out those transactions?

Who is paying the spammers and how long can they support the spam? Eventually the spam has to provide value to someone, otherwise it will get priced out by those producing real value and storing/using that value in/on the bitcoin network. Im storing my work on the network and will pay to move it to get something I value. I will outwork the spammers on a long time window and will be able to afford fees. In this way the the fee market + humans working filters out less valuable non-monetary uses.

If you are storing ā€˜your work’ on chain you are likely a spammer.

lmaf - hard money is exactly that: storing one's work/time/talent

Can you share the work?

Why would any one in their right mind pay more in fees when they could just filter out those transactions?

"Imagine you're using an outdated ad blocker but instead of filtering out ads, it now also filters out legitimate content you might be interested in."

This is not just about blocking ads, it's about blocking the size of the ads. If it can be text only... that's one thing. When it can be a full blown image because the size limit is removed... on a monetary system... then what are we doing?

> ā€œwe need to pay the price to keep it aliveā€

First time we have the argument that removing spam filters is needed to ā€œkeep Bitcoin aliveā€ lol

Simple question, how does the dust-limit filter work so well without ā€œcat and mouseā€ or ā€œcentral authorityā€?

The all-or-nothing logical fallacy, also known as the false dichotomy or black-and-white fallacy, occurs when a situation is presented as having only two mutually exclusive options, ignoring any middle ground or alternative possibilities. It oversimplifies complex issues by framing them as an either/or choice, often to manipulate or persuade.

For example:

• ā€œYou’re either with us or against us.ā€ This statement ignores the possibility of neutrality or partial agreement.

• ā€œIf you don’t support this policy, you must hate progress.ā€ This overlooks nuanced positions or alternative solutions.

This fallacy is problematic because it limits critical thinking and dismisses valid alternatives, leading to flawed reasoning or polarized conclusions. Recognizing it involves identifying when someone presents a situation as having only two extremes without justifying why no other options exist.

zero knowledge proofs can compress both monetary and non-monetary transactions, keeping their actual contents and computations out of the blockchain, and OP_RETURN is the best place to put zero knowledge proofs because it's completely prunable. but for some reason people flip out and get hysterical over this. for some really weird reason people are running volunteer disinformation campaigns against this.

We know you are a Monero shitcoiner but at this point not sure if you are not a FED too.

feds pretend they are cypherpunk while making custodial solutions with kyc

https://x.com/1440000bytes/status/1972060265283047625

You better worry about Monero and the second 51% attack because:

"55 confirmed double spends (the same money spent twice) and 115 transactions completely invalidated"

Leave Bitcoin to the real Bitcoiners who want Bitcoin to prosper and fix the world for good. Bitcoin is our strongest Hope for Humanity. (I am sure you don't undestand that but have fun with your Monero shitcoin)

I'll check under your bed for nicolas van saberhagen but you have to go to bed. it's a school night

Fruit loops are soup, so that's not a convincing argument, but I like it nonetheless. Still true.

:frysquint: Hmmm I suppose you're right, from a certain point of view 🤣 At least we agree on one thing: run Knots!

Run QT

This is bullshit on its face. One does not need to rely on a single spam filter dev and trust them at all. Your cohort expects us to trust Core. You're inconsistent. And we have the right to control what's running on our computers. If you don't understand that, it is useless talking to you. I need not read the rest of this garbage.

#ossify

Calle, thank you for laying out such a careful and reasoned argument. If the aim here is to move toward greater understanding between perspectives, this does a lot to clarify things.

That said, I want to push back on a couple of points.

First, you describe your post as bridging ā€œtechnical people (devs)ā€ and ā€œnon-technical users.ā€ I don’t think you intended to frame the entire debate as a binary of Devs versus Users, but the first paragraph lands that way. Could you clarify? Often what happens in these debates is that users express frustrations about software, developers respond defensively or in a condescending tone, and then conflict escalates. I think I see what you’re pointing at, but the framing risks reinforcing that divide rather than helping bridge it.

Second, I agree with you that much of this isn’t just technical but philosophical and even emotional. When you write about filters being removed to improve network prediction, I think that’s part of where the disconnect lies. The Knots advocates who resist certain changes don’t necessarily care about predictive accuracy. They care more about maintaining control of what their own node is willing to relay. That’s not a technical optimization so much as a matter of principle. It’s a different axis than just efficiency or accuracy — it’s about personal agency.

To me, that’s where common ground might be: respecting user choice. We can support sensible defaults that help most participants, while also protecting the flexibility of people who want their nodes to behave differently. That strikes a balance between broad consensus and individual autonomy, which seems truer to Bitcoin’s spirit than forcing either ā€œprediction accuracyā€ or rigid filtering.

šŸ’ÆšŸ’Æ

Fee market competion for transaction finality will be the best, most neutral, longterm uncorruptible filter

FS

I think most agree spam can’t be stopped — fees handle that. But the OP_RETURN/datacarriersize debate feels more about defaults + operator choice. Removing it shifts Core from ā€˜discourage non-monetary use’ to full neutrality. The real question: what’s the benefit of raising the cap?

* improved fee estimation

* better use of compact blocks

* more pruning

* decentralization

but this has already been explained hundreds of times and knots people just ignore it and keep saying "what's the benefit?? why come nobody says the benefits?!"

calle himself just explained this in different words and you acted like a man gazing a 1000 yard stare into a refrigerator. I don't think at this point that elaborations will change your behavior. and tomorrow you will resume wandering around saying, "benefits, where is benefits, nobody can tell me"

Monero shitcoiners really want to "fix" Bitcoin.

Ironically, GitHub (open SW ref) is owned by Microsoft (closed SW ref).

Maybe a ā€˜self-git-on-BTC’ would be a better use case for block space šŸ¤”

Please post more non-technical notes about the tech. šŸ¤

Very well articulated, and I actually learned a few technical details and other aspects from this whole thread.

Actions (or lack of) speak louder than words though. Code dev team refuses to plug the holes that have allowed more spam via the Inscriptions functionally. They call it "controversial" to do so. Increasing OP_RETURN (and making it deprecated) is very controversial (double standard).

At the moment, I rather take the current state of limited size spam, instead than 100k size spam (and unlimited size spam in the future).

This mirrors my perspective. šŸ¤™šŸ¼

People keep underestimating how fundamental PoW and fee-based friction are to Bitcoin’s resilience. Any attempt to introduce filter rules or heuristics inevitably drifts toward centralization and soft censorship. What makes Bitcoin unique is exactly that it doesn’t rely on trusted third parties to ā€œdecideā€ what is spam. Fees + PoW are the only neutral and sustainable mechanisms we have, and relaxing arbitrary mempool filters is a step in the right direction.

A data-size limit is just a technical boundary to prevent spam and keep the network stable, it doesn’t interfere with who gets to move money. Censorship happens only when a valid financial transaction is deliberately ignored or dropped. Mixing the two is less of a logical argument and more of a play on words.

I agree with you on proof of work and fees being the ultimate arbiters of what gets into the chain, but I don't understand your point on censorship: you're arguing for Core 30 as if the debate centered around introducing OP_RETURN limits instead of removing them.

What parties exactly have been damaged since the existence of the 80 bytes OP_RETURN limit?

The 80-byte OP_RETURN limit hasn’t really ā€œdamagedā€ anyone in a meaningful sense. It’s just been a long-standing policy boundary that shaped how people used the field. If a use case truly needed more space, it could (and did) migrate to off-chain solutions or use alternative encoding schemes. Nobody’s monetary transaction got excluded because of it. That’s why calling it censorship feels misplaced, it was never about blocking valid payments, just about keeping arbitrary data storage from bloating the chain.

I agree in principle, yet something feels off with the way ordinals have been handled. If Core really had the prevention of the UTXO bloat set in mind from the beginning, why not remove the OP_RETURN limit in 2023?

Exactly, that point makes sense. It seems the OP_RETURN limit was mainly a gradual policy to control spam and protect network stability, rather than a direct tool to prevent ordinals. If the real goal was to avoid UTXO bloat, removing the limit could have been done much earlier without issues. Most likely, Core considered potential unknown risks and security implications as well.

The only thing being ā€œintroducedā€ is a relaxation of the already existing op return. The onus is on the people proposing the change to explain clearly why it’s necessary. Until then I’m not updating

Posts like this are why zaps exist. Bravo.

The fog of war is steadily lifting

A lie is halfway round the world before the truth has got its boots on

I think Calle is winning this, slowly but surely

nostr:nevent1qqs8sz8f9wss4xnm8fwxfrmxpwz9agywn0z4v5l7ymw0j9yjdkvxqeg0x9tvh

> The fact that you need to update your filters is critical and that's where it ties back to Bitcoin: Suppose you have a mempool filter for transactions with a locktime of 21 because some stupid NFT project uses that. You maybe slow them down for a few weeks, but then they notice it and change their locktime to 22. You're back at zero, the spam filter doesn't work anymore. What do you do?

I'm not sure this is the right example in this case. Knots proponents want to filter out transactions that embed arbitrary data. Is there any technical summary of all the possible ways data can be embedded arbitrarily in Bitcoin transactions?

The fact that protocols sitting on top of Bitcoin interpret otherwise standard transactions in alternative ways seems to be a non-issue.

> I'm not sure this is the right example in this case. Knots proponents want to filter out transactions that embed arbitrary data. Is there any technical summary of all the possible ways data can be embedded arbitrarily in Bitcoin transactions?

nope, no way to do it.

People have been able to embed data into images, texts, sounds and more using codes and whatever schema they come up with.

Fair point, yet I think it would be reasonable to think that the broad categories of techniques that allow storing arbitrary data on chain can be outlined.

I would imagine that everyone agrees that having to generate a trillion private keys until one is found that, when a bech32m address is created from it, has its first 5 characters after the human readable part be interpreted as the first bytes of some jpeg is quite more cumbersome than OP_FALSE OP_IF, right?

I believe not much would change in terms of actual transaction composition, in both mempools and blocks, even if v30 were to be broadly adopted - which does not seem the case to be honest - yet I cannot quite accept the idea that, since in principle spam cannot be prevented entirely, nothing should be done about it.

> I would imagine that everyone agrees that having to generate a trillion private keys until one is found that...

Yes, there are easier ways to spam than others.

> I cannot quite accept the idea that, since in principle spam cannot be prevented entirely, nothing should be done about it.

I understand your position, and I too am not sure what is the correct path.

The variables at play are:

- how damaging is the spam

- how effective are the anti-spam measures, at both technical layer and social layer (e.g. discouraging future spam because old spam was killed)

- how much effort, and technical complexity is introduced in trying to keep up with spam

I'm terms of software preference, I would not be willing to introduce all that growing complexity to half solve a problem. Mostly becaus I don't think this spam is doing much damage

My understanding is that there are areas that require smaller amounts of data (in any Bitcoin financial transaction), and people come up with clever ways of disguising & breaking up data into those areas.

Then you are into a cat & mouse situation. And, I suppose various forms of pattern matching to exclude non-monetary data, could also be applied to matching patters within a monetary transaction... thus where the concern over monetary-censorship comes in.

To me, this is still a massive distinction, and ultimately, the Bitcoin community is in control either way. We'll either resit crossing that line, or we won't. It isn't like going from arbitrary data exclusion to excluding certain financial transactions will just happen on it's own. We can do one, without the other.

But, I'm more for excluding *excess* data-storage. That is quite easy. No cat & mouse. No one potentially calling a real financial transaction (because it also includes some arbitrary data) spam... though this latter ones seems more like some silly FUD.

The article is full with obvious flaws. Filters work and they slow down spammers.

Filters are presented as centralization point of trust but Bitcoin Core is not a centralization point of trust? Come on.

Filters are additional layer against spam. Fees still work, no one has dismissed them.

BSV is a shitcoin. They did the same change.

"Until now, these rules were determined by Bitcoin Core, but they have realized that these rules do not work anymore."

No, they did not realize that. They were corrupted to do it by Citrea.

https://r2a.primal.net/uploads2/0/83/62/08362e5e64680649ba147a87c35ec20f949f3f0662885fd3944b9fce72b171e1.mp4

"We're hearing things like Citrea is better than Ethereum," Chainway Labs co-founder Orkun Mahir Kılıç told CoinDesk. "It'll be better with time, because there's like $1 trillion, as of now, sitting in the Bitcoin blockchain. It is the most secure, battle-tested and decentralized blockchain. And we are bringing decentralized finance to it." 🤔🤔🤔

https://www.coinglass.com/news/91227

nostr:nevent1qqsyc8m04al84ate6tgkwhvz7s72rhezwn5rp39r0dtvfkhfj9jkm4cppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qg4waehxw309aex2mrp0yhx27rfwsh8qatz9u4zcfwt

Speaking of Saotshi Nakamoto

Yeah saying filters don’t work because it doesn’t stop all spam is ridiculous. Most devs can’t seem to understand that all the tools we have created, including bitcoin, have a purpose. They get lost in the 0s and 1s and lose sight of the end

oh their puppetmasters have an end in sight.

Absolutely.

Basically

Iā€˜m always hearing the argument that the filter does not work. Why then raise the limit if it has no effect, if it’s so easy to bypass? Why forcing this obviously controversial issue into the next release harming the reputation of Bitcoin core? For nothing? Sounds nonsensical to me.

Core devs value the idea that mempools should be able to predict what transactions are going to be in blocks in order to prevent unnecessary transaction data requests among nodes.

The other technical argument on the Core side is that it's useless to maintain a filter that can be bypassed.

And why is it more predictable?

It's more predictable because transactions that are filtered don't have to be requested again. To this I would respond that they can simply be cached

Ok, but this is more a bandwidth issue you are referring to, isn’t it?

When it comes to more predictable fees my understanding is that this is because those who want to propagate this type of transaction have to find workarounds to get this transactions into a block because of the filter as it is right now. This means that it slows down this kind of transactions which is the purpose of filters, like calle explained before.

Yes my point was all about bandwidth and compact block relay to be more specific.

I agree with you that filters, if widely adopted, make certain kinds of transactions harder to relay, meaning that parties relying on those transactions being mined according to their temporal preferences cannot build protocols that take advantage of them being mined.

This unfortunately means that these parties will find other ways to accomplish their goal of getting their transactions mined in time, i.e. instead of using OP_RETURN they will embed data in the witness section of the transaction.

One of the clearest non technical explanations I’ve seen before defending Core. I’m confused why we need such a drastic increase by default but this helps answer some of the other questions I had

nostr:nevent1qqs8sz8f9wss4xnm8fwxfrmxpwz9agywn0z4v5l7ymw0j9yjdkvxqeg0x9tvh

What legitimate content is being filtered out?

none. filter works.

šŸ¦—

Exactly

I just think about how much time and energy is going into these crazy long posts and effort to convince everyone this isn’t a big deal and wonder ā€œwhyā€ but the answer is obvious, economic incentives drive everything. Satoshi knew it, bitcoin is built for it, so what economic incentives are driving all of these posts and energy expenditures?

IMHO, it’s some Venture capital business plans that require ubiquitous lenient mempool policy standards.

Does this further support the need for lightening and liquid? Would this fee based filter approach make peer to peer payments too expensive for users who make small transactions? Would transacting on man chain really be an expensive decision and hence solidifying it as a vault for long term storage?

āŒ

Trust your intuition.

#bitcoin’ s best #spam prevention strategy is for spam to COST YOU MONEY.

nostr:nevent1qqs8sz8f9wss4xnm8fwxfrmxpwz9agywn0z4v5l7ymw0j9yjdkvxqeg0x9tvh

Thanks for sharing — really appreciate the insight.

Quick clarification: when you say ā€œfilters don’t work,ā€ do you mean content-based filters specifically?

Because Bitcoin does have filters like the dust limit that seem to work well, and I assume we’re not about to remove those.

So is the distinction basically: drop spam/content filters and rely on fees, but keep the objective/economic ones like dust filters?

Just saw the documentary on you guys. Love your work!

šŸ™šŸ½šŸ«”

It's exactly because spam is hard to define and subjective that we need a simple heuristic, in this case a reasonable default op_return size limit, and not set-in-stone rules (i.e. protocol consensus) to combat spam at the mempool level.

There is a lot of hand wringing about the futility of filters which appears to mainly be an attempt to distract from the simplicity of what's happening here: the removal of a configuration option that, while not perfect, has done a pretty good job of discouraging abuse of op_return with excessive arbitrary data.

What's excessive is up to individual node operators, and that is exactly the best people to have the final say - the users that make the Bitcoin system as a whole exist.

Eventually demand for block space will be high enough where fees can do the job on their own, but for now we're still in an era where low demand gives grifters an opportunity to abuse bitcoin. Node operators who oppose v30 correctly recognize the need for additional friction via filters. Node operators choosing knots or not updating to v30 are expressing their desire for software that preserves the monetary use case, and yes this is ideologically driven. If the software is taken ain different direction do not be surprised if unhappy users look for alternatives.

okay. Filter works and I'll never run core 30

If pow/fees are the only incentives that matter (and I agree with this), why is there no discussion about the witness discount being a mistake?

I wish there were more people saying this

My sense is that if it is admitted by core devs to have been a mistake. Node runners will start to question whether other changes currently being proposed are also mistakes and they lose this aura of being the benevolent high priests of the Bitcoin protocol.

That could be part, at least subconsciously. No one likes being wrong, or losing some reputation.

What's the deal with lightning and the witness discount? Someone said somewhere that lightning needs it, but I'm not nearly techy enough to know the truth of it.

No one *needs* the witness discount, they would just pay the same as for non-witness data. And the block size would be reduced back to 1MB.

The reason it was introduced was to get an effective block size increase and incentivize utxo consolidation - which turned out to be completely wrong. The utxo set exploded instead. Oops.

Wait till you find out that BCH split over SegWit (first) and not just 'a' blocksize increase (second) that could have come later.

BCH came to be because some Bitcoiners believed SegWit to be ugly code and introduce technical debt/unintended consequences. Were it not for SegWit, no split would have occured and a likely scenario with overwhelming support ciuld have been Adam Back's 2 (now) - 4 - 8 proposal.

But no, Core wanted to push SegWit above all which made the BCH fork inevitable to preserve a pristine state of Bitcoin.

History always gets written by the victors and in this case it was the big CEX that handed the BTC ticker to Core.

Could it be a coincidence that the biggest profiteers of an overly limited Bitcoin chain have been CEX/custodians now being huge multi billion companies?

That's a lot to process. What was Back's 2-4-8 proposal?

that discussion already happened in 2017 and everyone who realized what the problem was got attacked and censored and called slurs

Hi Calle appreciate the constructive post. Thank you for that.

Yeah Bitcoin is money. Running knots because I don’t want more spam. Simple

It's funny to see the creator of Cashu, based on centralized mints, lecturing Bitcoin about centralization. Fees are the filter, sure, but Bitcoin already balances incentives with policy. BSV showed what happens without guardrails.

BSV has a 4GB block size limit that’s incomparable.

Yes, BSV’s 4GB limit exacerbated the issue, but the core lesson isn’t about block size; it’s about removing guardrails. Without policy + incentives, junk fills the chain faster than fees alone can handle.

Knots are rising, one in four,

Voices guarding Satoshi’s core.

Against the tide of data storms,

They fight to keep the money form.

At first this was a TLDR moment for me, but then I realized I could read it on my nostr:npub1a00wj229auzjswlq4s77y4u8eqdx5k9ppatgl8rtv8va65f6mwksum9q3h tablet while drinking coffee OUTDOORS in the sunshine.

Gamechanger to read digital content and absorb nature's rays šŸŒžšŸ‘‡

nostr:nevent1qvzqqqqqqypzq5xeflpdskqvdq4swxj59793uvdzqzc9pzatjk3nhmcg2h0js8trqyt8wumn8ghj7etyv4hzumn0wd68ytnvv9hxgtcpzemhxue69uhks6tnwshxummnw3ezumrpdejz7qpq0qywj2app2d8kwjuvj8kvzuyt6sgax792eflufkuly2fymvcvpjsr673kv

Yes I agree fees do serve as a filter, however the issue with saying this is that fees are also a filter to regular bitcoin transactions. I think it’s a bit naive to assume spam will get priced out and monetary transactions will not. If companies / spammers can find a way to make money from their spam, suddenly fees just become a business expense. Now you have spammers who are making money from their transactions competing with regular people just wanting to send a monetary transaction and not be making a profit. I wonder who the fees will filter out in this case…

Layer1 is not designed for people’s day to day transactions, it has never been.

Mega whales (treasuries, banks, ETF etc…) will be the ones using the layer1 and they will obliterate scammers fees spending power.

We will use lightning and alternative layers.

It’s a good point and yes retail transactions will/have migrate to higher layers, but the point is I don’t think you can say fees are the filter and assume fees will filter out spam and not native transactions. Fees will not be a deterrant for bad actors with vested interests in the fiat system. I think you know who that refers to.

Thanks for writing this, nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg . Can you help with a couple more questions?

How do we get rid of inscriptions? Is there anything we could do, regardless of how difficult it would be, that could do it?

Can we get rid of the segwit discount? I understand segwit solved an exploit that was involved in the MtGox hack, but is the discount really necessary?

Shitcoins will automatically be priced out once Bitcoin adoption achieves critical adoption globally.

Pleb transactions will also be priced out, and this why layer2/3 are extremely importants for the long term success of Bitcoin. Otherwise it will just become a digital gold that no pleb can use.

Inscriptions aren't shitcoins. I agree that 2nd layers are extremely important, but I do not agree that plebs will ever be priced out without them. If that were a believable scenario, then the focus should be more on handling "utxo bloat" - meaning making the bloat okay, instead of avoiding it. The reason is because 1 sat/vbyte is not the minimum tx fee.

But I don't think these issues have anything yo do with my questions, and I don't want to be sidetracked.

Inscriptions in their current form can be filtered by matching against non-executed conditional script branch opcodes, that is OP_FALSE OP_IF. This is what Knots does in CScript::DatacarrierBytes https://github.com/bitcoinknots/bitcoin/blob/271fd206893a164b2d1c2d1c44c3696d23dd10e9/src/script/script.cpp#L329C36-L381

Core proponents state that this is not good enough since, were this logic to be applied everywhere, inscription spammers would find another way to push their data.

What other ways might they use?

Probably endless when it comes to embedding data within script opcodes, I can imagine inscription spammers could easily update their protocol such that instead of embedding data within the OP_FALSE OP_IF .. OP_ENDIF envelope, they would do so within something a bit more convoluted, but still not executed as a logical branch, maybe take advantage of OP_ADD / OP_LESSTHAN etc etc

I think the only way to really remove the spam threat is probably by allowing only well known transaction types, which means a set of transactions even more restricted than what are currently deemed standard. I am not sure this approach would be definitive anyways, but it would be incredibly controversial probably and it would come with its own set of risks, if feasible at all. I am personally in no position to currently propose alternative approaches, even in theory, as I am far from being a Bitcoin expert, so these are just some thoughts off the top of my head.

It still helps. Thanks for giving your thoughts.

Most bitcoin users are non-technical & selfishly motivated by their own incentives

Satoshi's genius was to align all of these incentives in an adversarial context

Show me the incentive & I'll show you the outcome

npub10vlhsqm4qar0g42p8g3plqyktmktd8hnprew45w638xzezgja95qapsp42 calmly explains in 3 minutes how the economic incentives of spamming interact with bitcoin & why transaction fees are the ultimate filter

nostr:nevent1qvzqqqqqqypzq7el0qph2p6x7325zw3zr7qfvhhvk600xz8jatga4zwv9jy396tgqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qghwaehxw309a3xjarrda5kuetj9eek7cmfv9kz7qpq8kgazlyd24a55ye999g44k9ga6kraqjs3hqf5krev5hvku0hrk0qhxkw9s

Communication is important. If Core/Yourself/Anyone else had if communicated like this from the beginning things might have been different.

To be fair, entire conversation regarding the matter is available for everyone to read on GitHub.

I’m referring to how it’s communicated not the communication itself.

Pow is for keeping a tie to a real world inforgeable cost (energy), keeping the block production as it is intended, and a few other things. Fees prevent DoS attacks, the ocassional spam cannot be truly prevented, a spam business like citrea can be prevented with filters because they as a decentralized business cannot afford to play cat and mouse or having txs not going through. Filter centralization it's not a problem, is Core a centralized governance? where do you currently get your node consensus rules and new soft forks?

Over complicating the explanation for no reason is not the way you explain things to non technical users.

To simplify it.

Core wants to turn Bitcoin into a data hosting service.

Knots want Bitcoin to stay Bitcoin

Just read the post ffs

I did, Calle is trying to pretend he is neutral and intentionally making it sound more complicated than it actually is.

Is Bitcoin money or should it be used for data hosting? That's the actual argument.

Yes sure...

Best explanation I've heard calle!

This is a long post that hopefully bridges some gaps between technical people (devs) and non-technical users and how they look at spam prevention in Bitcoin. I hope that it clarifies why I think that there is such a huge misunderstanding between both camps.

I'll preface this post with first disqualifying any malicious attempts to misrepresent the motives of either camp. Everybody wants to improve Bitcoin as money. Money is Bitcoin's use case. It's not a data storage system. If you think otherwise, there are countless shitcoins to play with.

Alright, let's get into it.

I have worked on anonymous systems for over a decade. I have read tons of research on spam detection, rate-limiting, and I've implemented spam prevention techniques in the real world.

I am very confident to say that there is not a single known method to prevent spam in decentralized anonymous open networks other than proof of work.

This is what Satoshi realized when he designed Bitcoin and it's why only transaction fees can reliably fight spam without sacrificing any of Bitcoin's properties.

Let me explain.

Spam prevention is a cat and mouse game. As a system's architect, your goal is to make the life of a spammer harder (increase the friction). This is why, on the web, you see captchas, sign-ups, or anything that can artificially slow you down. Slowing down is key. This is why Satoshi turned to proof of work.

Let's contrast this to other methods for spam prevention. This is not an exhaustive list but it illustrates the design space of this problem, other methods are often derivatives of these:

CAPTCHAS are a centralized form of proof of work for humans: Google's servers give you a hard-to-solve task (select all bicycles) that will slow you down so that you can't bombard a website with millions of requests. It requires centralization: you need to prove Google that you're human so that you can use another website. If you could host your own CAPTCHA service, why would anyone believe you're not cheating?

LOGINS with email and passwords are most popular way to slow down users. Before you can sign up, you need to get an email address, and to get an email address, you often need a phone number today. The purpose of this is, again, to slow you down (and to track you to be honest). It only works well when emails are hard to get, i.e. in a centralized web where Google controls how hard it is to get an email account. If you could easily use your own email server, why would anyone believe you're not a bot?

The next one is the most relevant to Bitcoin:

AD BLOCK FILTERS are another form of spam prevention but this time the roles are reversed: you as a user fight against the spam from websites and advertising companies trying to invade your brain. Ad blocking works only under certain conditions: First you need to be able to "spell out" what the spam looks like, i.e. what the filter should filter out. Second, you need to update your filters every time someone circumvents them. Have you ever installed a youtube ad blocker and then noticed that it stops working after a few weeks? That's because you're playing cat-and-mouse with youtube. You block, they circumvent, you update your filters, repeat.

The fact that you need to update your filters is critical and that's where it ties back to Bitcoin: Suppose you have a mempool filter for transactions with a locktime of 21 because some stupid NFT project uses that. You maybe slow them down for a few weeks, but then they notice it and change their locktime to 22. You're back at zero, the spam filter doesn't work anymore. What do you do?

You update your filter! But where do you get your new filter from? You need a governing body, or some centralized entity that keeps updating these filters and you need to download their new rules every single day. That's what ad blockers in your web browser do. They trust a centralized authority to know what's best for you, and blindly accept their new filters. Every single day.

I hope you see the issue here. Nobody should even consider this idea of constantly updating filter rules in Bitcoin. This would give the filter providers a concerning level of power and trust. It would turn Bitcoin into a centrally planned system, the opposite of what makes Bitcoin special.

This is why filters do not work for decentralized anonymous systems. They require a central authority. Until now, these rules were determined by Bitcoin Core, but they have realized that these rules do not work anymore. Transactions bypass the filters easily and at some point, carrying them around became a burden to the node runners themselves. Imagine you're using an outdated ad blocker but instead of filtering out ads, it now also filters out legitimate content you might be interested in. That's what mempool filters do, and that's why Bitcoin Core is slowly relaxing these filters. This has been discussed for over two years, it's not a sudden decision.

The goal of this change is not to help transactions to slip through more easily. The goal is to improve your node's prediction of what is going to be in the next block. Most people misrepresent this part. They say "it's to turn Bitcoin into a shitcoin" but that is just a false statement at best, or a manipulation tactic at worst.

Let's tie it back to proof of work and why fees are the actual filter that keeps Bitcoin secure and prevents spam reasonably well: Satoshi realized that there is no technique that could slow down block production and prevent denial of service attacks in a decentralized system other than proof of work. Fees prevent you from filling blocks with an infinite number of transactions. All the other options would introduce some form of trust or open the door for censorship – nothing works other than proof of work.

He was smart enough to design a system where the proof of work that goes into block production is "minted" into the monetary unit of the system itself: You spend energy, you get sats (mining). This slows down block production. How do you slow down transactions within those blocks? You spend the sats themselves, original earned form block production, as fees for the transactions within the block!

This idea is truly genius and it's the only reason why Bitcoin can exist. All other attempts of creating decentralized money have failed to solve this step. Think about it: without knowing who you are, whether you're one person pretending to be a thousand, or a thousand people pretending to be one. Bitcoin defends itself (and anyone who runs nodes in the Bitcoin system) from spam by making you pay for your activity.

People sometimes counter this by saying: the economic demand for decentralized data storage is higher than the monetary use case. First of all, I think that's just wrong. There are way cheaper ways to store data (there are shitcoins for this), and the value of having decentralized neutral internet money is beyond comparison.

However, there's a much deeper concern here. If you truly believe this, I ask you: what is Bitcoin worth to you? If you think Bitcoin can't succeed as money (i.e. be competitive), why do you even care? If you're not willing to pay fees for the use case that we all believe Bitcoin is designed for (money), and you believe that no one is willing to pay for it, how can it even persist into the future?

You can't have it all. If Bitcoin is money (which I believe it is), then we need to pay the price to keep it alive. There is no free lunch.

Either we centralize, or we pay the price of decentralization. I know where I stand.

Peace.

Users choosing to follow various filter rule providers as they update filters is a point of centralization but literally the whole network following core devs, who along with updates, also alter filter rules, is not a point of centralization?

Oh yeah also filters don't work.

The fees are the filter argument does not address the mempool issue that this change to op_return brings.

Because core 30 nodes will accept and relay 100kb files by default, this allows for files to be sent across the p2p network without having to get this transaction mined.

Criminals / bad actors can exploit this by relaying illegal data to their buddy on the other side of the world, anonymously and for free because this is all happening at the mempool level.

Yes, eventually after a period of time of this transaction not being mined it will be dropped from the node’s mempool, but by this point that illegal file has already been relayed to other bad actors.

In short: the removal of op_return filters in core 30 software creates infrastructure for an extremely effective, anonymous and free data relay / sharing service that will be exploited by criminals with illegal files.

This is not me being a purist saying ā€œthis is immoralā€. This is me saying ā€œthis introduces a legitimate attack vector that governments and the powers at be who want to see bitcoin fail WILL useā€.

This is the first time I heard this mempool transaction use. And I'm agree with you, it could be a big problem.

You can do that now placing the data in SegWit/Taproot witness and it will be relayed.

That’s true, but there’s a difference between people using an exploit that is not natively supported vs using op_return which is a feature with the purpose to allow arbitrary data.

By increasing the op_return limit you are now signalling that relaying large blobs of continuous data is a feature supported by the network. In contrast, shoving split up chunks of data into the witness section where it is not designed to be is not an intended use of the network.

The argument is that: now relaying large continuous chunks of data is natively supported, any legal/regulatory plausible deniability is gone.

From a technical standpoint this change also makes it easier for bad actors / criminals as they don’t have to split their files into multiple chunks.

Is there some rule I don't get? (Likely) You can put in 100k vbytes now and you don't need to split them?

https://bitcoin.stackexchange.com/questions/117277/what-is-the-maximum-size-transaction-that-will-be-relayed-by-bitcoin-nodes-using?utm_source=chatgpt.com

The 100k vbytes refers to the total size of the transaction including witness data, headers, the inputs and outputs, etc. For inscriptions spammers use the witness data aspect of the transaction.

From my understanding, each input has its own witness field, which can carry only a limited amount of data. To include larger files, the data must be split across multiple inputs and/or multiple transactions. The total transaction size cannot exceed100k vbytes.

How much bigger percent wise can one input in the mempool be after this? Is this a concern?

0%

max block size is 4mb since 2017.

There is no size increase for the total transaction (still 100k vbytes), and so there is no size increase to the inputs. The change is changing how much data in the op_return part of the transaction nodes will relay. The change means your op_return data can take up the entire 100k vbytes and core 30 nodes will still relay it by default. Prior to core 30 nodes would only relay transactions with a max of 80 bytes op_return data by default.

The change basically means the bitcoin p2p network supports transactions that are completely arbitrary data or spam.

The concern comes from whether you think nodes relaying 100kb files, uploaded anonymously for free could be an attack vector for bad actors.

Yes

Speaking as one of those non-technical users. From everything I have read about this here, it sounds like both sides of the argument claim the high-ground of not wanting to hurt Bitcoin. I can't really judge who may be right in this or who isn't, but what I find the most disturbing about this whole discussion is that it is even possible to change Bitcoin in a bad way. With Bitcoin being this supposedly immutable, trustless system of money. It's never been hacked, but a few devs can just put out an update and it causes this huge crisis? Doesn't make sense.

I think what can happen is those few devs create a fork, but it is each and every member of the entire node community that determines whether or not to implement the fork.

Which way will the majority go?

Bitcoin Cash BCH is an example that has so far proved to be unsuccessful compared to almighty BTC.

This is my understanding, anybody correct me if I’m wrong.

Who'd be doing the forking then? Supporters of Knots or Core v30? Even so, if either version is as terrible for Bitcoin as each side says it is, then we're still ending up with a worse version of Bitcoin. Oh well, I guess I'll be watching.

Not sure I can answer your question as too technical for me.

I stumbled upon a quick and interesting Saylor take regarding this issue which I’ll repost and tag you in. Hope it helps.

But yeah, stack those sats and get the popcorn out šŸæ

If you have ever been to war then you know there is always a price to pay. I’m done paying the price for centralization.

I’m ready for the decentralized revolution.

Be on the right side of history!

Removing the options for node runners to configure their datacarriersize is centralization. Allowing independent node runners to choose the setting is more decentralization. Having multiple implementations is decentralization.

Make Bitcoin Decentralized Again #MBDA

"The value of bitcoins would be relative to the electricity consumed to produce them."

-Satoshi

Peace šŸ™

Just because you know some methods of fighting spam you do not know all of them, and you do not know how they can evolve in the future and make what is impossible today possible. The goal is not zero spam, but less spam. You are completely ignoring asymetric risks and surging costs that will fall on node operators, just so that shitcoiners and miners can get richer. The ones who are aware of that are opposing changes pushed by core.

spam's the fiat of the chain, evolving like a bad sequel nobody asked for. asymmetric risks hit the little guys hardest, us nodes scraping by while miners feast, but sats in art? that's the real filter, permanent pixels against the noise. etch one with me, glitch the greed.

If you would allow anyone to anonymously and permanently store and retrieve forever any number of 100KB contiguous data blocks on 39K redundant nodes all around the globe including in space for a one time fee of roughly $111/100KB of worthless fiat, you haven't really thought this through.

There's no other anonymous immutable distributed file sharing service like it in the world. To certain people, that's priceless. To others, fiat currency is unlimited.

Think about it.

Satoshi said it would be unwise. He's still right. Nick Szabo just reawakened to echo Satoshi on this.

This is why we should leave OP_RETURN alone AND fix the inscriptions hack like Knots already does.

Thank you for your attention to this matter!

#Enshitcoinification

Running #Knots

#MBDA

I would describe myself as a technical user and I understand the technical arguments core is attempting to make but I think you are still wrong here.

Yes perfect spam filters don't exist, but saying that decentralised spam filters can never work is not true otherwise email would be unusable. Yes I know email is more centralised now than originally intended so maybe not the perfect example but I can still run an email server and filter 90%+ of spam myself.

What's important is making bitcoin hostile to spam, yes it's a cat and mouse, wack-a-mole game that will never be 'won', but total victory is not needed.

The alternative, to accommodate spammers by giving them a 'nice' way to spam only encourages them, both to spam more and to demand more and more 'accommodations' via essentially blackmail - give us what we want or we harm the chain with more UTXOs etc. Making bitcoin hostile to spammers has worked pretty well for years (apart from the inscriptions fiasco caused by core not fixing a bug - again an example of what happens if you accommodate spammers). There is a reason most scams/spam has occured on other chains rather than bitcoin up till now.

I'm skeptical only because of the size increase, which will lead to a larger blockchain and thus harder storage. I'm not sure if this will affect decentralization, but I'm not as technically savvy about Bitcoin as you are. So, I'll trust your judgment and see it as a positive, since I shouldn't always act on first instincts but dive deeper into things.

It won't lead to a Blockchain size increase. Blocks are limited to 4 MB in size by consensus rules since 2017 and nothing is changing about that.

I love you Calle but this is just another post of "let me trying to explain better the technical argument cause you didn't get it well enough" which does not add anything new to the converstaion and that is not addressing the real issues IMO. Thi spost it's just another proof that core, after 5 months, still has not understood where is the disconnect with its users.

Most ppl have perfectly understood the technical rational proposed by core but they still DISAGREE on this change. Some people think the potential dangers are noth worth the potential rewards, some people perceive this as another "let's accomodate a little bit more" spammers, some people think the increase from 80 to 100k is too much, some people agree with the change but have been spooked by some core devs attitude.

If core really want to gain some of the trust it has clearly lost, it needs to stop focusing only on keep repeating its technical motivations, and direct the focus somehwere else. I can assure you that this core fiasco is not due to insufficient clarity/explanation of its technical motivations, but rather to:

1) management of the whole issue from day 1 (see github banning and open-close PR)

2) core devs reaction to users not liking this change (good god man, the reaction screamed authoritarian all over with sprinkle of arrogance, childish behaviour and ad ominem attack)

3) the most fervent advocates of this change have been Antoine (creator of PR, makes sense), Jameson Loop, Shinobi, Peter Todd. The last 3 names are probalby the least "loved" devs in existance (for some fair reasons), and they are the one who have pushed for this change the most (podcasts, live debates on YT). From a public relations perspective this was the worst possible way to handle it

4) Core went from "if you don't like the change just switch implementation" to assiduosly (and quite desperately honestly) trying to get back ppl once they saw many more ppl than they thought switched implementation. Then you did not really mean what you said about "just switch if you don't like it, we are cool", cause you clearly are not cool with it

I already wrote 3 times (the first in May when this all started) to core devs to help them understand they need to get out of their tecno-bubble and stop refusing to cosider any factor that is not technical. Nodes are managed by human beings, and human beings have emotions, sensations and trust. If you do not incorporate this aspects in comunicating/handling your technical decisions, this is just the first of many horrible managed issue. If you really want to reconnect with your users it's not about another technical explanation, listen to the feedback people are providing man

Peace and love

If spam filters didn’t work, why do we have mostly less than 83 bytes OP_RETURN and more than 1 sat/vB fees?

nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg

Calle, I appreciate the clarity and depth of your post. I agree with you on the importance of assuming good faith. Everyone here is trying to strengthen Bitcoin, not weaken it. But the changes currently being made around OP_RETURN size and relay fee policy are not being carefully examined. They are introducing new problems that are more immediate and concrete than the hypothetical problems they are claimed to address.

You frame the issue primarily as a question of how to prevent blockchain spam, with fees as the only decentralized answer. That misses two key layers. First, the blockchain itself already has structural spam filters built into the protocol: the block size limit and the 10-minute block interval determined by difficulty adjustment. Those are what prevent infinite transactions, not fees. Fees determine priority within the fixed block space, but they are not the mechanism that sets the boundary. The size and timing constraints were deliberately chosen so that individuals could afford to keep a full copy of the chain on inexpensive hardware. This was the original economic model, and it remains central to Bitcoin’s decentralization.

Second, you are not addressing the relay mesh. The change to allow OP_RETURN data up to 100 kilobytes per transaction, combined with the sub-sat per vbyte relay policy introduced in v29, creates a completely new class of abuse. It is one thing for someone to pay a miner directly to insert 100 kilobytes of arbitrary data into a block. That has always been possible by paying a mining pool directly. It is another thing to let anyone use the peer-to-peer relay mesh as a free content distribution network by pushing 100 kilobyte transactions through the network at negligible potential cost, knowing they will never be mined.

Before v29, the minimum relay fee was around 1 sat per vbyte. This meant that using the relay network carried a real economic cost. Lowering that threshold to 0.01 sat per vbyte or less removes the cost. A spammer can now broadcast large transactions for essentially nothing. These transactions will sit in mempools, consume RAM, eat bandwidth, and crowd out legitimate activity, without ever reaching a block. There is no fee market mechanism that solves this, because the spammer is not actually paying for block space. They are abusing the transport layer itself.

This is not just a blockchain problem, and it is not just a future problem. It’s a relay layer problem today. If this policy remains in place, the peer-to-peer network becomes an unpriced commons, and like every unpriced commons, it will be abused. The bandwidth and memory requirements to run a node will increase dramatically. Ordinary node operators will be forced out, and centralization pressure will increase. That is the opposite of what Bitcoin’s design intends.

Your analogies to CAPTCHAs, logins, and ad blockers are also misplaced. Those are rate-limiting mechanisms for identity and access control in centralized systems. OP_RETURN filtering and relay policy are content filters. A better analogy is email spam filtering. Each mail server chooses its own rules. There is no central authority dictating identical behavior. Nodes deciding what they are willing to relay is not central planning. It is local policy and a critical component of node sovereignty.

There is also a larger pattern at work here. Developers, by nature, tend to look for technical solutions to potential future problems. But the market is not calling for these changes. The problem being described is not present today. The solutions being introduced do not solve any actual problems, but they do create new ones and worsen existing issues. We are not facing a flood of legitimate transactions that can’t get through because relay fees are too high. What we are doing is opening the door to large-scale abuse of the relay mesh and the blockchain without any clear benefit.

I also want to call attention to something in your post that appears indirectly, but is important. Your closing argument is structurally the same as Peter Todd’s tail emission argument: that someday in the future miners may not have enough incentive, so we must change the protocol now before it’s too late. This is a speculative future scenario. We don’t know if it will happen, when it will happen, or what the economic environment will be if it does. Changing fundamental network policies today based on hypothetical future conditions is not sound systems engineering. If such a problem arises, the tools and circumstances available in that future will almost certainly differ from those we have now. Solving a future potential problem with present tools is not only uninformed by definition, it is most certainly wrong.

Developers are important, but they are not the sole authority on how the network should function. The market is. And the market has already voted, through real use and sustained preference, for the current structure of the Bitcoin blockchain and relay policies over thousands of alternatives. The strength of Bitcoin lies precisely in its ability to let market forces determine what works, not in preemptively changing fundamental parameters based on speculative scenarios.

We should not make these kinds of changes lightly, and although you may have been involved in the discussion for two years, the discussion is not over. The decision is not final, nor will it ever be. We already have open-source forks, more than one viable alternative with more to come. Allowing 100 kilobyte payloads combined with sub-sat relay fees creates immediate, predictable problems, while claiming to address problems that may never materialize. The proper course is to let the market surface real issues, then address them when they exist, not to introduce new vulnerabilities based on hypothetical futures.

Respectfully, the changes being proposed do not solve real problems. They create them.

nostr:nevent1qqszc20h7ce03jwypsn5nayqy9vajue3hskvwnft8qwt608qv72axrqpz9mhxue69uhkummnw3ezuamfdejj7q3qc856kwjk524kef97hazw5e9jlkjq4333r6yxh2rtgefpd894ddpsxpqqqqqqz50gka8

I've read all that carefully, but I want to focus on one detail that's important to me: You claim that lowering the minimum relay fee from 1sat/vB to 0.01sat/vB will allow spammers to "crowd out legitimate transactions"

Any legitimate transactor will happily pay 1sat/vB if necessary. Hence there is no "crowding out"

Making it 100 times cheaper is 'no "crowding out"'?

Filters, chich are second layer of defense against spam, can't be corrupted (or overpaid).

It allows flooding of large and negligible-monetary-committment OP_RETURN transactions over the relay network, increasing the load on the internet connection.

The three main design constraints making bitcoin accessible to node runners are:

1) hard drive space limitations

2) computational and RAM demands

3) network connection limitations.

The node-runner constraint these changes to relay policy attack primarily are that of item (3)

8 days past and no answer from calle ...

The core insight here cuts through all the noise: you can’t out clever thermodynamics. Every spam filter without cost becomes a centralization vector. Whether it’s Google’s servers deciding you’re human or some council deciding what ā€œlegitimateā€Bitcoin usage looks like. The genius of fees isn’t that they’re perfect, it’s that they’re the only decentralized solution to the spam problem that doesn’t require asking permission from anyone. Either pay in energy or pay in trust. Pick one.

Fees don't clean mempools.

Fees absolutely clear mempools. That’s literally how block space markets work. If the price isn’t clearing it fast enough for your preference, that’s not a market failure, that’s you wanting price controls.

No bro, you need to think when reading. Try again.

Like I am pretty sure, like, this white paper like, was the intent of Bitcoin, and, like, that’s why I’m like, here. like oh my god, like, duh.

Some types of centralization are good. Would you like people to throw garbage all over the street (including your front lawn - where you need to deal with it) or use ā€œcentralizedā€ garbage cans?

Is there a tldr?

The mature tone is an improvement.

one day i would like to spend an entire week trying to comprehend this. worth it to me.