ExploreTrendingAnalytics
Nostr Archives
ExploreTrendingAnalytics
calle170d ago
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.
💬 43 replies

Replies (43)

Frank Corva170d ago
Thank you, Calle. I know where I stand, as well.
0000 sats
The Daniel 🖖170d ago
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.
0000 sats
calle170d ago
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.
0000 sats
Oshi (推し)170d ago
Yes. Needed to read this. Totally agree, bitcoin is a monetary network, not a storage system for shitty jpgs and etc. Take that elsewhere.
0000 sats
The Daniel 🖖170d ago
Is that your only takeaway from this?
0000 sats
ck170d ago
Ha it all comes down to not being bullish enough…
0000 sats
The Daniel 🖖170d ago
It doesn’t. It just removes the arbitrary method that doesn’t work and is commonly bypassed.
0000 sats
siggy47170d ago
Exactly right. @c9b19ffc…1e108965 was good on WBD with a nuanced explanation from the other side.
0000 sats
Trainer Dan170d ago
I found the following largely accurate summary of the state of the debate on @c9b19ffc…1e108965's feed https://primal.net/e/nevent1qqsda06kthpra62zyjr6qnjk6l6s2…
0000 sats
calle170d ago
It's a pleasure. I'm not building them btw. I just follow the discussion closely.
0000 sats
Oshi (推し)170d ago
@84630768…fa019ae8
0000 sats
calle170d ago
I addressed this in the post. Here some more. 📝 0d4d5381…
0000 sats
The Daniel 🖖170d ago
It’s not Core’s or anyone’s job to play whack-a-mole with spammers. That’s a fool’s errand.
0000 sats
hodlbod170d ago
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.
0000 sats
Pip the WoT guy170d ago
> 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.
0000 sats
calle170d ago
yes, I strongly believe that argument is a total nothingburger made up to manipulate the conversation.
0000 sats
calle170d ago
great question
0000 sats
mIX170d ago
"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?
0000 sats
mIX170d ago
Dang it, hit post too early. Where are the current filters blocking legit monetary transactions exactly?
0000 sats
Oshi (推し)170d ago
The ability to modify the settings will still be available
0000 sats
Frank Corva170d ago
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.).
0000 sats
Frank Corva170d ago
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.
0000 sats
Frank Corva170d ago
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.
0000 sats
Pip the WoT guy170d ago
> 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.
0000 sats
Sourcenode170d ago
What legitimate content is being filtered out?
0000 sats
The Daniel 🖖170d ago
Ah, yes. When your argument isn’t convincing enough, always resort to calling someone stupid. Well, this is one filter that does work. ✌️
0000 sats
bitcoinekasi170d ago
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?
0000 sats
Bitcoin Mechanic169d ago
Lol. PoW exists to make it hard to rewrite history, not to prevent spam. This is obviously just more dishonesty masquerading as "bridge building" after a week of non-stop character assassination after many months of bad faith interaction. Citing your credentials "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." ...is not enough to make people pretend you're arguing in good faith here which you obviously aren't having opened with rewriting the entire function of what PoW does and how Satoshi used it. We know specifically what Satoshi did about spam and you're ignoring it because that would contradict your premise. (Further - spam filtration does not imply centralization. The opposite is the case. No one is going to run nodes if they do not posses the tools to prevent their mempools filling up with porn/malware and anything else that can leverage the idiocy of Bitcoin's developers.)
0000 sats
calle169d ago
cry harder 😂
0000 sats
Bitcoin Mechanic169d ago
Oops. Nostrudel makes me bad at Nostr.
0000 sats
Bitcoin Mechanic169d ago
Yes otherwise I'd let this nonsense go unchallenged
0000 sats
bitcoinekasi169d ago
🙏🏽🫡
0000 sats
🟠 isolabellart169d ago
Peace 🙏
0000 sats
Bitcoin Mechanic169d ago
Srry fam
0000 sats
calle169d ago
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.
0000 sats
calle169d ago
0% max block size is 4mb since 2017.
0000 sats
calle169d ago
lol Adam Back would like to have a word
0000 sats
Contra168d ago
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.
0000 sats
Sourcenode168d ago
Exactly
0000 sats
Contra167d ago
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.
0000 sats
Pepe López 14d ago
marked, i'll read later
0000 sats
Oshi (推し)170d ago
No, it’s also that transaction fees are the only visible spam prevention mechanism for bitcoin to preserve its decentralized nature.
0000 sats
The Daniel 🖖170d ago
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.
0000 sats