Thread

did you know you can get the bitcoin whitepaper from your pruned node? Its stored in the utxoset permanently. Heres a one liner i created to extract it seq 0 947 | (while read -r n; do bitcoin-cli gettxout 54e48e5f5c656b26c3bca14a8c95aa583d07ebe84dde3b7dd4a78f4e4186e713 $n | jq -r '.scriptPubKey.asm' | awk '{ print $2 $3 $4 }'; done) | tr -d '\n' | cut -c 17-368600 | xxd -r -p > bitcoin.pdf This is why we prefer people use large OP_RETURNs instead of 947 outputs that can’t be pruned. OP_RETURNs are probably unspendable so they will never end up in your pruned nodes utxoset. They also produce smaller blocks than inscriptions. Unfortunately they are 4x more expensive… but lifting the filter restriction is one small thing we can do to encourage it over other options that are much worse for bitcoin spam-wise. You definitely don’t want illegal, unprunable stuff in your utxoset permanently, which is why i am running core v30 to do what i can to disincentivize this spam.

Replies (81)

You are getting closer to a valid argument, but it remains incomplete. Filters still provide resistance to spam, making it more expensive the more nodes filter it. Your argument is essentially: "Since Core doesn’t filter spam in OP_RETURN or the UTXO set, and UTXOs are less efficient for the network, then spammers should be allowed to use OP_RETURN." The real question is whether spam should be filtered. The only counterargument presented is "filters don’t work," which is a red herring. The argument against filters that do work is that they are centralizing, but this claim is made without evidence. Yes, IP RBLs are centralized, but they are an ancient and ineffective solution, especially in the era of Tor. Bayesian filters are far more effective, though they can be poisoned; again, an old problem. The fact that we don’t have perfect filters is not an argument against using filters at all. The assertion that every mempool on every node must be identical is presented without justification, and that requirement itself is a centralizing force. This leaves us with: "Core devs are dedicated and underpaid and shouldn’t have to argue with non-experts; they should just do what they’re good at, which is writing software." This is the most pathetic argument of all. It relies on argumentum ad authoritatum and argumentum ad passiones, and implies that we should entrust our future and fortune to people who are wholly socially inept. Not only is this a highly questionable request, it also leaves open the possibility that these same developers might be unable to defend their "technical" positions against more cunning and malevolent influences; whose presence we are fully aware of.
Brunswick's avatar Brunswick
@npub12rv5...85vg 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. View quoted note β†’
View quoted note →
Szabo has a degree in computer science and a degree in law. He says: "illegal content in a contiguous standard format, thus readily viewable by standard software, is more likely to impress lawyers, judges, and jurors, and thus is legally more risky, than data that has been broken up or hidden and thus requires specialized software to reconstruct. Such demos would be part of convincing these legal decision-makers that a defendant node operator had knowledge of the content." And remember, this issue is not 100% technical and cannot be fully understood using technical arguments only.
here is the equivalent op_return one liner bitcoin-cli getrawtransaction 6ae4de7542bebb0884b08db8265d7567b27673034da179980c632b8d592ffe9b true \ | jq -r '.vout[] | select(.scriptPubKey.type=="nulldata") | .scriptPubKey.asm' \ | sed 's/^OP_RETURN //' \ | xxd -r -p I don't think its much different.
Thank you for providing this. Sorry for a late reply, but after looking it seems this directly targets inscriptions and ordinals. ie. this is a cat and mouse game. We can do that and break ordinals and inscriptions... until they change their protocol to just do it a different way. Then devs would have to explicitly update DatacarrierBytes() with another case to catch it. like ad blockers... They work until the ads use a different scheme and the blocker no longer works until the devs implement a new blocker. It's not a real solution to the problem. This is just whack-a-mole imo. What’s the real β€œfix” A consensus rule that says: β€œNo witness stack element may exceed X bytes, no witness script may exceed Y bytes, no input may have more than Z stack elements.” But this requires a hard fork.
So you answered the question right? Spam was under control until the taproot change, and inscriptions in 2023. IMO- It was another spam event, which was handled before in Bitcoin history: satoshi dice, colored coins, and counterparty. All blocked by policy filters and SOCIAL DISINCENTIVES The difference today is the core dev team redefined the documentation and pretended a bug was a feature. Plebs are now saying enough is enough.
IMHO that means monetary transactions only. No image or other non-monetary data warrants the bloat created down the road on the main chain. Even the Bitcoin white paper doesn’t need to be imbedded in the Bitcoin time chain. Just because something can be done, doesn’t mean it should. It helps to think long-term and all users. Hardware requirements for node runners has already become much more expensive and 3rd world plebs deserve their financial sovereignty just as much as we do.
Your technical arguments appear to me to be sound and worthy of very serious consideration and debate. However, it’s important to acknowledge that many in the community feel Core initially dismissed their concerns and then doubled down, which fostered division and mistrust. While the technical rationale holds and is reasonable, the perception of arrogance has fueled ongoing controversy. Many believe Core leaders could have done more to build consensus and dialogue before pushing a fracturing change. Core devs feel insulted, attacked and unappreciated, personally threatened. This is more a community, political, leadership and governance issue than it is a technical issue. IMHO.
Let's recap: - they were technically right - misinformation campaign to discredit and shame them publicly was initiated - this noise completely overwhelmed Bitcoin dev process and distracted people for months if anything all this did was to further separate dev from angry mobs. not sure it accomplished it's intended goal you described. best way to make change in the dev process is to become involved, gain credibility amongst current devs, and then put in your well informed technical review on these changes. this is what everyone else involved in the dev process has done and will continue to do so, even in the presence of misinformed angry mobs.
Let me be clear, I have great respect for you and everything you’ve done for NOSTR and Bitcoin, as well as the other core devs and leaders in the bitcoin community. You can be technically right and still struggle to manage perceptions. When perception and reality don’t equate, perception becomes reality. I get that this Is far more personal and raw for you than it is for most and I understand why you feel attacked and betrayed by a large chunk of the community. My only motivation is to try and encourage people to consider others perspectives and try to reconcile where possible. I understand that may not be possible in many cases and that people will do so on their own time. I appreciate your willingness to engage with conversation. I hope that people will step up to help manage perceptions and that our community can come to a consensus soon.
And pray tell, was anything done so that, after huge opreturns are allowed, the technique that creates 947 unprunable outputs as data will be effectively rendered inoperable? Because if not, it would be like adding bars to your windows after the thieves have already broken in. This is the funniest of all, really! All the talk about "Hey fees are the best antispam! Filters do not work! Spammers will be kept at bay thanks to the costs!" but then you suddenly expect spammers to elect the method which is 4x more expensive over that which adds 947 unprunable outputs? The arguments from this side keeps getting more and more unbelievable.
The key word here is "pruned" nodes. Full nodes will still carry the spam. And spammers will obviously use and abuse both methods, plus they will be encouraged by Core opening a door for them. You definitely don't want to cave to spammers and be a pushover. You know what to run.