pull down to refresh

I really like this calm, clear explanation of the issue. I really needed something like this. And, as an added bonus, he didn't call anyone retarded.
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. Sunday, September 28, 2025 · 8:22 AM 1 Replies 2 Likes 2 Reposts
avatar Hanshan hanshan@nostrplebs.com 1 min.
replying to
@calle Thanks for that effort 🙏
My fav quote about Bitcoin (also from Calle)
reply
My views align with this post. It’s always been very simple for me. If you pay the fee your transaction gets mined.
If bitcoin was congested and fees spiked and were elevated for a long time this wouldn’t be an issue at all.
But thanks to all the degen trading being nerfed by Wall Street the chain isn’t used as much as it used to be thus fees are always at or near the lower bound of 1 sat.
reply
228 sats \ 1 reply \ @ek 9h
reply
210 sats \ 0 replies \ @sudonaka 9h
I wonder if Calle will address why he pushed the fake story about a hard fork?
reply
10 sats \ 3 replies \ @000w2 6h
The question is why do inscriptions spammers (for example) get a discount on fees relative to my monetary transaction data?
reply
Because Witness data gets a discount. And inscriptions disguise that arbitrary data as 'program script' basically fake scripts or pushdata (that's my understanding).
The 'witness limit' is 4mb meaning that individual transactions can be quite large. And a certain developer figured out a way to 'pretend' that certain sats were 'traceable'...
So you can 'pretend' that a certain sat corresponds to 'ownership' of certain arbitrary data and then 'sell it' as an nft or collectible etc. It's all so pointless because you can right-click on a jpeg.
reply
0 sats \ 1 reply \ @000w2 2h
Let me reword. Why should they get a discount over my monetary transactions?
reply
My understanding is that the 'witness discount' was created to make the consolidation of UTXOs, and the batching of transactions cheaper.
Legacy addresses were cheaper to spend than to consolidate, meaning that people wouldn't spend/consolidate their change which would result in UTXO bloat over time.
Segwit (and Segwit addresses) made that cheaper (which was its intention) however a much-later byproduct was that arbitrary data, disguised as witness script, also got the same discount basically 75%.
#1 rule of engineering is that design decisions years later can have unintended effects.
reply
276 sats \ 1 reply \ @ek 12h
This is great, thanks for sharing @siggy47
I want to add to this because I recently did some math around it:
There are way cheaper ways to store data
Imagine how expensive and how much time it would take to just store one gigabyte on the bitcoin blockchain:
Let's assume you can store 4MB per block.
So to store 1GB, you would need to fill 256 blocks with your data. This means you need to price out everyone for 256 blocks. I was lazy and just looked at the last three blocks and I got an average of 0.003 bitcoin (~$300) for total transaction fees.
So you would have to pay $76,800 to store one gigabyte. But you would also have to wait 42 hours because blocks are mined every 10 minutes.
Surely there are more efficient ways to store data without ever losing it, like database replication.
(Also this data is immutable, so you have to pay again for every modification.)
reply
Exactly why I think using bitcoin to store data should only be a passing fad, even if it's a hugely annoying one right now. (Though I do think some people will still use it for data storage in the long run, just not at scale.)
The thing is, I am strongly supportive of decentralized data storage. I was very interested in IPFS and Filecoin when they were coming out; not so sure their status now. But the ideas are cool. I just don't think people should be trying to use bitcoin for that.
reply
277 sats \ 4 replies \ @sudonaka 10h
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.
How does opening up the op_return filter keep bitcoin alive?
Why does the Dust limit filter work so well?
IMO- If you want to change your -datacarriersize to 100k then go ahead and do that. But changing network defaults without broad agreement and in the face of massive backlash is irresponsible.
Trust in core devs is at an all time low, I wonder what is the technical explanation for that.
reply
Why does the Dust limit filter work so well?
Because this filters is aligned with the actual logic the miners use to decide "What to include in the block".
reply
Trust in core devs is at an all time low
This is not true. I am of the opinion that in the long run increasing/unlimiting op_return is good for Bitcoin.
Do I think that right now at this time exactly is the best, most perfect, absolte time? Maybe not.
But in the long run absolutely. We need to educate people as much as possible about the value of self-custody and using Bitcoin because fees are the greatest filter we have ever had.
reply
0 sats \ 1 reply \ @sudonaka 5m
Name a point in Bitcoin history when the sentiment against the core team was worse.
reply
it's... not. It's influencers, most of them with incoherent ideas about how bitcoin works, talking nonsense
dude they sound like bcashers
reply
72 sats \ 0 replies \ @nolem 12h
So interesting reading everyone's point of view, as Bitcoin increases in scale or size or adoption or whatever metric you care to use, the pressure of centralization weighs down harder and harder and creates these debates where there are no finite answers, power corrupts and agendas surface, arguments ensue long enough to realise we are back full circle and there is no right answers. Extremely frustrating when two groups have different visions of how to proceed. The road is never closed there is always a way forward, even if that means a split in the ways, that's when history will tell who made the right path. I'm sure Hal is reading all of this with a mixture of emotions from his laptop in the devsky 🙏
reply
Love me some serious Calle amidst all the shitposting Calles, once in a while~~
reply
36 sats \ 0 replies \ @anon 11h
reply
33 sats \ 1 reply \ @LibreHans 6h
This post is complete nonsense. Core refused to fix the inscription bug, and then tell use filters don't work. Lol. Create problem, refuse to fix it, use problem as justification to remove all protection and create more problems.
reply
It is impossible to fix the 'inscriptions bug' at this time. Maybe there was a small window in 2023 (maybe - it's not guaranteed) with enough social and technical pressure it could have been 'addressed' with a very aggressive change in relay policy.
But now? No way that ship has sailed. Only a very small percentage of nodes need to relay a transaction to have it get to miners, and generally speaking miners like fees.
Op_return is 4x as expensive as witness script for its size.
reply
0 sats \ 0 replies \ @Fenix 5h
I'm happy to see that the drama has slowed down and the options that have always existed are clear again. Don't update or use other options— this is decentralization.
reply
stackers have outlawed this. turn on wild west mode in your /settings to see outlawed content.