Clarification of my thoughts and a brief explanation of how I get to where I am currently for anyone interested: Miners and nodes were originally pretty much the same thing. They aren't now. What happens when the incentives of miners and the incentives of nodes become misaligned? Miners want to get revenue from any source imaginable - stuffing spam into blocks is potentially lucrative. Nodes of course do not have any immediate incentive to relay this stuff and certainly don't benefit from storing it or competing with it and paying higher transaction fees as a result. The theme coming from @darosior is that Core must do what is incentive compatible for *miners* - i.e pay attention to what it is spammers want to store in the chain and quickly or preemptively adapt Bitcoin Core as quickly as possible to relay this to prevent any large miner soliciting it out-of-band and developing a competitive edge against miners who are "stuck" with the transactions being relayed around the network. His concern compounds with the idea that if Core fails to do this, it will be unadopted and lose market share to an implementation that does. However we have seen significant migration away from Core, for perhaps the first time ever, to Knots, which takes a different approach - it concerns itself with the incentives of people running those nodes who, as mentioned, do not wish to be relaying junk data around the network and storing it for free. So if we are concerning ourselves with the incentive compatibility of Bitcoin Core, why is the incentive the actual users of that software to not participate in spam not a part of the discussion when it is so clearly relevant? Knots has jumped to about 10% of the listening nodes over the course of May from less than 2% before that. This, I believe, is where the rift between Core and those angry with Core formed because Core's response to this is generally to say that nodes are being short-sighted. Their desire to reject spam is going to undermine more subtle things in the longer term. This was expressed initially in a crude and insulting manner which further deepened the rift but - no matter how much we might want to dismiss them as genius devs somehow missing the forest for the tress - are they correct? More simply - are nodes doing themselves a disservice by opting out of the relaying of spam in the hopes that at the very least, they aren't participating in the hypershitcoinization of Bitcoin? How bad are the tradeoffs for nodes if they do this? 1. If Core is "incentive incompatible" (at least with regard to miners/spammers who both clearly want to use Bitcoin to store non-Bitcoin stuff) is there going to be un-adoption of Core? So far the only un-adoption we have seen is a (from my perspective) a few thousand nodes switching from Core to Knots - this isn't really fakeable like some suggest with AWS because you'd have need to have spun up Core nodes far in advance of this battle in order to send this signal by having them switch. The "incentive compatible" alternative is Libre Relay - this of course does the opposite of what Knots and its updated filters permit - it preferentially peers with fellow trash-enjoying nodes in what is (to my mind) a misguided effort to fight what they call censorship. Of course I fundamentally believe that censorship resistance doesn't come in the shape of nodes relaying what is against their own interest. Libre Relay is nowhere near as widely adopted as Knots. So Core, if wanting to maintain marketshare must take more into consideration what has actually happened to Core as a result of its incentive incompatible design (from the perspective of *nodes* rather than *miners*). They must convince us that Knots users are making a mistake in philosophy, not just more immediate concerns around practicalities and risks of running something that isn't Core. Those are valid of course but let's assume Core and Knots are of equivalent standard and reliability and just focus on differences in approach and design philosophy here as its what is relevant to this discussion. 2. If we filter spam, fee estimation will get worse. It can get better actually, assuming there is one decently sized miner on the network respecting those filters. There is of course - most of the DATUM miners on OCEAN use Knots with fairly close to default policy so this can prevent you from *overpaying* fees. The worsening of fee estimation in the other context - accidentally underpaying because there's so much unconfirmed spam that you just aren't aware of - is much easier to correct for. Simple RBF will suffice. I don't think it's anything anyone can really care about due to the unpredictable nature of the blockchain anyway. You have no idea if you'll be in the next block or not. The extent to which you do is the extent to which we "know" what *should* be in the next block which is basically just an artifact of centralization and a mistaken celebration of that fact. You don't know who will find the next block, what will be in it, how long it will take, or how many other people are going to jump in "the" queue after you broadcast your transaction. Core's heuristic around fees work well without knowledge of other people's mempools, this is by design. Thus, I have widely asserted that concerns around fee estimation are nonsense with the above reasoning and I have yet to have anyone dunk on me with some superior understanding. 3. Block Propagation will be slower if we filter spam. Mining will centralize in general. Slower block propagation sucks for small miners trying to be part of the big club as Antoine points out. The big boys will have a private intra-relay network - a walled garden in which you must belong to not be at a disadvantage with necessarily slower verification times. Firstly - if you filter something that still generally makes its way around the network, you'll cache it and your verification speed will be just as quick as if you didn't filter so this is a non-argument. I genuinely think most people, including Core devs are just unaware of `blockreconstructionextratxn` so they believe there to be an issue that there just isn't. But what if the filters are so effective that the private club has to solicit this stuff out-of-band and it never existed in the first place to the filtering nodes? Then I say we are screwed. These miners control the blockchain at that point. We have concerns orders of magnitude more significant. They can reorg the chain, make double spends and generally wreak havoc. The fact that they haven't is not something we can rely on hence the need to actually decentralize mining not just screw around and make a gesture of concern in relaxing spam filters in the hopes that it doesn't get slightly worse. We are at this point already so I have no idea why we are discussing inconsequential factors such as spam mitigation vs enthusiastic relaying as though it has any relevance here. Foundry can already 51% attack the network. --------- This is roughly how I end up at my position - being a vocal advocate for putting the incentives of those running nodes over anyone else in the ecosystem. I do not consider spammers to be "Bitcoiners" but even I did, their needs would be always placed further down the food chain than those of nodes. Just as they were with those who wanted huge blocks for permanently cheap transactions. The rate at which I am having to revise and reevaluate my position has rapidly decreased compared to a few weeks ago where admittedly I was making far more technical inaccuracies than now. Everything I read from Greg Maxwell or other long standing and respected developers in the space goes along familiar lines at this point and fails to justify this new, laissez-faire approach to spam attacks that carries a heavy burden of proof versus adhering (as Knots does) to Bitcoin's historical precedent where folks none other than Greg himself would propose extreme counter measures to spam should some new protocol for shitcoining-on-bitcoin suddenly hit escape velocity and start creating a genuine problem for Bitcoin nodes.

Replies (62)

Don't care, didn't read. Ossify.
Bitcoin Mechanic's avatar Bitcoin Mechanic
Clarification of my thoughts and a brief explanation of how I get to where I am currently for anyone interested: Miners and nodes were originally pretty much the same thing. They aren't now. What happens when the incentives of miners and the incentives of nodes become misaligned? Miners want to get revenue from any source imaginable - stuffing spam into blocks is potentially lucrative. Nodes of course do not have any immediate incentive to relay this stuff and certainly don't benefit from storing it or competing with it and paying higher transaction fees as a result. The theme coming from @darosior is that Core must do what is incentive compatible for *miners* - i.e pay attention to what it is spammers want to store in the chain and quickly or preemptively adapt Bitcoin Core as quickly as possible to relay this to prevent any large miner soliciting it out-of-band and developing a competitive edge against miners who are "stuck" with the transactions being relayed around the network. His concern compounds with the idea that if Core fails to do this, it will be unadopted and lose market share to an implementation that does. However we have seen significant migration away from Core, for perhaps the first time ever, to Knots, which takes a different approach - it concerns itself with the incentives of people running those nodes who, as mentioned, do not wish to be relaying junk data around the network and storing it for free. So if we are concerning ourselves with the incentive compatibility of Bitcoin Core, why is the incentive the actual users of that software to not participate in spam not a part of the discussion when it is so clearly relevant? Knots has jumped to about 10% of the listening nodes over the course of May from less than 2% before that. This, I believe, is where the rift between Core and those angry with Core formed because Core's response to this is generally to say that nodes are being short-sighted. Their desire to reject spam is going to undermine more subtle things in the longer term. This was expressed initially in a crude and insulting manner which further deepened the rift but - no matter how much we might want to dismiss them as genius devs somehow missing the forest for the tress - are they correct? More simply - are nodes doing themselves a disservice by opting out of the relaying of spam in the hopes that at the very least, they aren't participating in the hypershitcoinization of Bitcoin? How bad are the tradeoffs for nodes if they do this? 1. If Core is "incentive incompatible" (at least with regard to miners/spammers who both clearly want to use Bitcoin to store non-Bitcoin stuff) is there going to be un-adoption of Core? So far the only un-adoption we have seen is a (from my perspective) a few thousand nodes switching from Core to Knots - this isn't really fakeable like some suggest with AWS because you'd have need to have spun up Core nodes far in advance of this battle in order to send this signal by having them switch. The "incentive compatible" alternative is Libre Relay - this of course does the opposite of what Knots and its updated filters permit - it preferentially peers with fellow trash-enjoying nodes in what is (to my mind) a misguided effort to fight what they call censorship. Of course I fundamentally believe that censorship resistance doesn't come in the shape of nodes relaying what is against their own interest. Libre Relay is nowhere near as widely adopted as Knots. So Core, if wanting to maintain marketshare must take more into consideration what has actually happened to Core as a result of its incentive incompatible design (from the perspective of *nodes* rather than *miners*). They must convince us that Knots users are making a mistake in philosophy, not just more immediate concerns around practicalities and risks of running something that isn't Core. Those are valid of course but let's assume Core and Knots are of equivalent standard and reliability and just focus on differences in approach and design philosophy here as its what is relevant to this discussion. 2. If we filter spam, fee estimation will get worse. It can get better actually, assuming there is one decently sized miner on the network respecting those filters. There is of course - most of the DATUM miners on OCEAN use Knots with fairly close to default policy so this can prevent you from *overpaying* fees. The worsening of fee estimation in the other context - accidentally underpaying because there's so much unconfirmed spam that you just aren't aware of - is much easier to correct for. Simple RBF will suffice. I don't think it's anything anyone can really care about due to the unpredictable nature of the blockchain anyway. You have no idea if you'll be in the next block or not. The extent to which you do is the extent to which we "know" what *should* be in the next block which is basically just an artifact of centralization and a mistaken celebration of that fact. You don't know who will find the next block, what will be in it, how long it will take, or how many other people are going to jump in "the" queue after you broadcast your transaction. Core's heuristic around fees work well without knowledge of other people's mempools, this is by design. Thus, I have widely asserted that concerns around fee estimation are nonsense with the above reasoning and I have yet to have anyone dunk on me with some superior understanding. 3. Block Propagation will be slower if we filter spam. Mining will centralize in general. Slower block propagation sucks for small miners trying to be part of the big club as Antoine points out. The big boys will have a private intra-relay network - a walled garden in which you must belong to not be at a disadvantage with necessarily slower verification times. Firstly - if you filter something that still generally makes its way around the network, you'll cache it and your verification speed will be just as quick as if you didn't filter so this is a non-argument. I genuinely think most people, including Core devs are just unaware of `blockreconstructionextratxn` so they believe there to be an issue that there just isn't. But what if the filters are so effective that the private club has to solicit this stuff out-of-band and it never existed in the first place to the filtering nodes? Then I say we are screwed. These miners control the blockchain at that point. We have concerns orders of magnitude more significant. They can reorg the chain, make double spends and generally wreak havoc. The fact that they haven't is not something we can rely on hence the need to actually decentralize mining not just screw around and make a gesture of concern in relaxing spam filters in the hopes that it doesn't get slightly worse. We are at this point already so I have no idea why we are discussing inconsequential factors such as spam mitigation vs enthusiastic relaying as though it has any relevance here. Foundry can already 51% attack the network. --------- This is roughly how I end up at my position - being a vocal advocate for putting the incentives of those running nodes over anyone else in the ecosystem. I do not consider spammers to be "Bitcoiners" but even I did, their needs would be always placed further down the food chain than those of nodes. Just as they were with those who wanted huge blocks for permanently cheap transactions. The rate at which I am having to revise and reevaluate my position has rapidly decreased compared to a few weeks ago where admittedly I was making far more technical inaccuracies than now. Everything I read from Greg Maxwell or other long standing and respected developers in the space goes along familiar lines at this point and fails to justify this new, laissez-faire approach to spam attacks that carries a heavy burden of proof versus adhering (as Knots does) to Bitcoin's historical precedent where folks none other than Greg himself would propose extreme counter measures to spam should some new protocol for shitcoining-on-bitcoin suddenly hit escape velocity and start creating a genuine problem for Bitcoin nodes.
View quoted note →
CW's avatar
CW 7 months ago
Yep. It is brief for something as important as this subject.
CW's avatar
CW 7 months ago
Makes sense to me! Nodes > all else
Great breakdown of the topic. Some new information here I wasn't aware of (e.g. blockreconstructionextratxn), and some good nuance.
Foundry can 51% attack bitcoin? 👀 Time to pack our shit and move on. Actually back to gold. Ok I won't, but this is scary.
Bitcoin Mechanic's avatar Bitcoin Mechanic
Clarification of my thoughts and a brief explanation of how I get to where I am currently for anyone interested: Miners and nodes were originally pretty much the same thing. They aren't now. What happens when the incentives of miners and the incentives of nodes become misaligned? Miners want to get revenue from any source imaginable - stuffing spam into blocks is potentially lucrative. Nodes of course do not have any immediate incentive to relay this stuff and certainly don't benefit from storing it or competing with it and paying higher transaction fees as a result. The theme coming from @darosior is that Core must do what is incentive compatible for *miners* - i.e pay attention to what it is spammers want to store in the chain and quickly or preemptively adapt Bitcoin Core as quickly as possible to relay this to prevent any large miner soliciting it out-of-band and developing a competitive edge against miners who are "stuck" with the transactions being relayed around the network. His concern compounds with the idea that if Core fails to do this, it will be unadopted and lose market share to an implementation that does. However we have seen significant migration away from Core, for perhaps the first time ever, to Knots, which takes a different approach - it concerns itself with the incentives of people running those nodes who, as mentioned, do not wish to be relaying junk data around the network and storing it for free. So if we are concerning ourselves with the incentive compatibility of Bitcoin Core, why is the incentive the actual users of that software to not participate in spam not a part of the discussion when it is so clearly relevant? Knots has jumped to about 10% of the listening nodes over the course of May from less than 2% before that. This, I believe, is where the rift between Core and those angry with Core formed because Core's response to this is generally to say that nodes are being short-sighted. Their desire to reject spam is going to undermine more subtle things in the longer term. This was expressed initially in a crude and insulting manner which further deepened the rift but - no matter how much we might want to dismiss them as genius devs somehow missing the forest for the tress - are they correct? More simply - are nodes doing themselves a disservice by opting out of the relaying of spam in the hopes that at the very least, they aren't participating in the hypershitcoinization of Bitcoin? How bad are the tradeoffs for nodes if they do this? 1. If Core is "incentive incompatible" (at least with regard to miners/spammers who both clearly want to use Bitcoin to store non-Bitcoin stuff) is there going to be un-adoption of Core? So far the only un-adoption we have seen is a (from my perspective) a few thousand nodes switching from Core to Knots - this isn't really fakeable like some suggest with AWS because you'd have need to have spun up Core nodes far in advance of this battle in order to send this signal by having them switch. The "incentive compatible" alternative is Libre Relay - this of course does the opposite of what Knots and its updated filters permit - it preferentially peers with fellow trash-enjoying nodes in what is (to my mind) a misguided effort to fight what they call censorship. Of course I fundamentally believe that censorship resistance doesn't come in the shape of nodes relaying what is against their own interest. Libre Relay is nowhere near as widely adopted as Knots. So Core, if wanting to maintain marketshare must take more into consideration what has actually happened to Core as a result of its incentive incompatible design (from the perspective of *nodes* rather than *miners*). They must convince us that Knots users are making a mistake in philosophy, not just more immediate concerns around practicalities and risks of running something that isn't Core. Those are valid of course but let's assume Core and Knots are of equivalent standard and reliability and just focus on differences in approach and design philosophy here as its what is relevant to this discussion. 2. If we filter spam, fee estimation will get worse. It can get better actually, assuming there is one decently sized miner on the network respecting those filters. There is of course - most of the DATUM miners on OCEAN use Knots with fairly close to default policy so this can prevent you from *overpaying* fees. The worsening of fee estimation in the other context - accidentally underpaying because there's so much unconfirmed spam that you just aren't aware of - is much easier to correct for. Simple RBF will suffice. I don't think it's anything anyone can really care about due to the unpredictable nature of the blockchain anyway. You have no idea if you'll be in the next block or not. The extent to which you do is the extent to which we "know" what *should* be in the next block which is basically just an artifact of centralization and a mistaken celebration of that fact. You don't know who will find the next block, what will be in it, how long it will take, or how many other people are going to jump in "the" queue after you broadcast your transaction. Core's heuristic around fees work well without knowledge of other people's mempools, this is by design. Thus, I have widely asserted that concerns around fee estimation are nonsense with the above reasoning and I have yet to have anyone dunk on me with some superior understanding. 3. Block Propagation will be slower if we filter spam. Mining will centralize in general. Slower block propagation sucks for small miners trying to be part of the big club as Antoine points out. The big boys will have a private intra-relay network - a walled garden in which you must belong to not be at a disadvantage with necessarily slower verification times. Firstly - if you filter something that still generally makes its way around the network, you'll cache it and your verification speed will be just as quick as if you didn't filter so this is a non-argument. I genuinely think most people, including Core devs are just unaware of `blockreconstructionextratxn` so they believe there to be an issue that there just isn't. But what if the filters are so effective that the private club has to solicit this stuff out-of-band and it never existed in the first place to the filtering nodes? Then I say we are screwed. These miners control the blockchain at that point. We have concerns orders of magnitude more significant. They can reorg the chain, make double spends and generally wreak havoc. The fact that they haven't is not something we can rely on hence the need to actually decentralize mining not just screw around and make a gesture of concern in relaxing spam filters in the hopes that it doesn't get slightly worse. We are at this point already so I have no idea why we are discussing inconsequential factors such as spam mitigation vs enthusiastic relaying as though it has any relevance here. Foundry can already 51% attack the network. --------- This is roughly how I end up at my position - being a vocal advocate for putting the incentives of those running nodes over anyone else in the ecosystem. I do not consider spammers to be "Bitcoiners" but even I did, their needs would be always placed further down the food chain than those of nodes. Just as they were with those who wanted huge blocks for permanently cheap transactions. The rate at which I am having to revise and reevaluate my position has rapidly decreased compared to a few weeks ago where admittedly I was making far more technical inaccuracies than now. Everything I read from Greg Maxwell or other long standing and respected developers in the space goes along familiar lines at this point and fails to justify this new, laissez-faire approach to spam attacks that carries a heavy burden of proof versus adhering (as Knots does) to Bitcoin's historical precedent where folks none other than Greg himself would propose extreme counter measures to spam should some new protocol for shitcoining-on-bitcoin suddenly hit escape velocity and start creating a genuine problem for Bitcoin nodes.
View quoted note →
CptKook's avatar
CptKook 7 months ago
We won this battle. Thanks for the hard work. At this point, everyone on the other side of the argument is either retarded or a threat to Bitcoin
Yo mad respect. Its hard to have your voice heard when the other side can just point to one inaccuracy in an atempt to right you off as just some left bell curve pleb, but you maintained your ground and reevaluated yourself multiple times to hone your arguement. I appeciate your efforts
Such clam and principaled arguments. I regret I disregarded the topic two years ago. Trying my best to generate awareness in the german space but it's mostly sleeping on the matter, as we have a very very strong "Trust the experts" attitude.
I'm pretty sure @jack just floated the sats/bitcoin issue because he wanted us to unite over something so ridiculously stupid that we'd all forget about op_return for a minute. It's a nice diversion, but instagibbs PR to uncap by default and deprecate the config setting is still alive and well. View quoted note →
DireMunchkin's avatar
DireMunchkin 7 months ago
I regret I didn't really take your concerns seriously last time this was debated. But now I'm convinced.
Education in home mining, but a massive level, with top influencers beating the drum day and night. The tools are there. I do not see another way out.
ENDER's avatar
ENDER 7 months ago
After listening to you on What Bitcoin Did, I want to start running a node just so I can run Knots. Cheers 🍻
mfostr's avatar
mfostr 7 months ago
Has anyone had discussion around Pay to Relay, OTS and Blossom? Maybe utilizing a presentation exchange with a schema negotiation that combines with the blossom SHA256 checksums in a server client view contract. Utilizing NIP34 to verify the checksum in a web component. Utilize Nostr and Blossom to keep the data off the Bitcoin Nodes. 🍱 for🧠! image
Why not add mining capabilities back to every #bitcoin node? Wouldn't this further decentralized and incentivice node running? Not for profitability but as an aggregated, solo-mining coalition that may end up composing a non-zero hash percentage to further add to the difficulty and help safeguard the network. There are around +-21,000 reachable nodes at this moment, if they all use whatever and however small their available collective hashpower of their varied hardware (raspberry pi's or other) is - and they are configured as solo miners, not as a centralized effort in a pool that can be manipulated, this would require very minimal upkeep from the node runner but still have that non-zero chance of winning a lottery at the added low cost incurred in the already running node. People running nodes right now are volunteers, they are already doing this without no expectation of gain - this would help add more nodes and more people however small. Then we have what BitAxe is doing, which could be construed as the concluding point of what I am discussing but not quite, as solo mining still requires interest and more maintenance on the part of the maintainer. Where as solo-mining by default in a node would require extremely low maintenance and just checking every few months to see if you won a block by some miracle - which could serve as a gateway drug to push more people into the BitAxe pathway and further the small-scale, home-base mining decentralization we all want. This is just a thought but am interested why this is not viable? Tagging specific big players - but interested in anyone that has thoughts on this. @Matthew Kratter @Guy Swann @Bitcoin Mechanic @Luke Dashjr @jimmysong
onthephone's avatar
onthephone 7 months ago
Dude. How much talking are you going to do on this subject? Truly, no one cares. BTC will go on being "digital gold" and not Peer to Peer Electronic Cash. It was hijacked back then and many bought in. Fool me once, shame on you. Don't get fooled again, if you do, then shame on you.
CW's avatar
CW 7 months ago
Would like to know thoughts on this as well
Garrett's avatar
Garrett 7 months ago
Jameson Lopp was going around saying Citrea doesn't need the op_return change. Is that true?
It makes no difference to them basically. They can save a little bit of money using OP RETURN instead if Core make it easy for them, but it's barely any savings if they do.
Adding rubbish to the blockchain will lead to centralization; everyone is a witness to what happened to ETH.
Juan Galt's avatar
Juan Galt 7 months ago
"You don't know who will find the next block, what will be in it, how long it will take," this is not strictly true, on fee estimation. we may not have perfect knowledge of it, sure but we have statistical knowledge by proxi of difficulty adjustment targeting 10min avg block time and hash rate per pool, which by proxi lets us know what kind of transactions they are likely willing to mine. Further, if filter positive pools are missing profits that spam enjoying pools are capturing, that in the long term will run the filterors out of business.
it doesnt even effect fee estimation that much most of the time, you are gonna under pay rarely, and maybe its gonna wait one more block. and over paying is more of an issue than under paying, you can always use CPFP. and thats the most important point maybe. its still an estimation, thats the point of it. its not that important that its100% accurate as well. we are maximizing decentralization, not accuracy and instant txs. also total fees are not that different between good filtering nodes and aggressive spamming nodes. there is no extreme profit difference. these are just empty talking points, missing the core of the issue. not prioritizing the important things. just distraction. a none rare "issue"
Here to echo this. I heard mechanic get vocal about this over a year ago,while running a node the whole time. I thought, "my node doesn't have any issues, and this new spam thing will surely get priced out by real txs" L1 TX fees were much, much higher then. Im glad this has been brought back up now In a lower fee environment, as it as bp shake n the feeling that this ordinal and inscruptions stuff has become "normal" because it is still here and not priced out. I never understood how my mempool could affect this until this recent publicity, and I have decided to start filtering it.
Have you tried to bootstrap a bitcoin mine in a developing country? This is the capture of bitcoin by central banks. Who is wright and who is Craig is irrelevant. Get ready to suck some corporate spreadsheet. Poor people have little to no chance of getting bitcoin wealthy anymore.
Many people ignored Mechanic’s advice in 2023 and 2024. Mostly for the reasons you mentioned but also because there was so many spam apologists gaslighting and calling everyone on the pro-filter side gatekeepers, zealots and purists. We just had legitimate practical concerns.
Tony Acid 's avatar
Tony Acid 7 months ago
How effective is Knots filters in preventing fake (unspendable) outputs appear in UTXO set? My understanding is they can be undistinguishable from valid addresses and remain in UTXO set forever. Also, isn't the main concern of Core team, and what they propose is merely harm reduction to UTXO set? Bitcoin spam lately is going away, with fees going higher over time I'm keen to expect less and less spam because it will become too expensive, and we already can see jpgs don't hold value. So, UTXO debris forever or JPEGs for another few years at most? That's the question I don't see anybody is trying to answer in this debate. What is the real cost of these two spam types to Bitcoin network over next 1000 years?
Slower block propagation is a red herring. If you have enough hash to benefit from the lead time created by your smaller competitors not having all spam cached, then you can just deliberately insert malicious transactions in your template or selfish mine for a few seconds, never mind spam. Otherwise, the risk of getting orphaned will outweigh any head start.
Default avatar
Clarity 7 months ago
Thanks for writing this and thank you for going on WBD. Your points/concerns were reasonable and appreciate your humility. Need more of that for a substantive discussion.
I’m asking this sincerely - not to argue, but because I genuinely want to learn. I run a Bitcoin Core node. I mine solo with Bitaxe. I watch the mempool daily. I’m here because I care about this protocol and want to understand it better from all sides - including yours. But some of the current narratives around UTXO bloat and filters feel a bit disconnected from what I see. Block size hasn’t changed - it’s still 4MB max - and no one on the other side of this debate is pushing to increase it. In fact, despite inscriptions and ordinals, we often see periods where the mempool is quiet and blocks aren’t even full. I’ve watched it myself. This tells me the protocol is far from being overwhelmed. The UTXO set? Yes, it’s growing. I’ve read it’s around 12GB now. That’s notable - but not alarming. Most of that growth came during the BRC-20 inscription spike. Since then, it’s slowed. My node runs fine on a 1TB SSD, and if I need to upgrade to 2TB, that’s already affordable - and will only get cheaper. At current growth, that upgrade would buy me years. So my question is - why are we treating this like an emergency? If the blocks are capped at 4MB, and fees exist to regulate access, and pruning is available for those who can’t store everything… isn’t this system already self-regulating? I know you care deeply about Bitcoin’s longevity and decentralization. So do I. But I also believe the idea that “whoever pays the fee gets into the chain” has always been one of Bitcoin’s strongest promises. If a group decides certain transactions aren’t worthy - even if they pay their way - doesn’t that edge toward selective permissioning? That’s the heart of my concern. Where’s the line? Who decides what’s “good” or “bad” usage? When I ask these questions, I’m not trying to be difficult. I’m trying to understand whether filters are a tool - or a step toward censorship. Because I believe that Bitcoin will outlast every storage system, every government archive, and every digital library. And because of that, I see huge potential in its permanence - not just for finance, but for truth, history, and even art. Bitcoin as timechain. Bitcoin as the modern Library of Alexandria. I know that might sound idealistic, but I say it as someone who’s using Bitcoin for those very things - and paying full fees to do so. That’s why the blanket dismissal of inscriptions as “trash” feels like it misses the nuance. Not all inscriptions are noise. Not all projects are spam. Some are attempts to preserve meaning on the most resilient ledger humanity has ever built. If that’s not something Bitcoin can be used for, then what’s the alternative? Censorship-prone servers? Social networks that disappear our work overnight? Everything else is corruptible. Only Bitcoin has the permanence. And I get it - Bitcoin wasn’t made for art. But it also wasn’t made for multi-sig or Lightning or Taproot. Use cases emerge. The best ones stick because consensus allows them to. Which brings me to a final point: filters don’t change consensus rules - but they do shape who gets seen, what gets relayed, what feels welcome. So are we sure we’re not just replacing openness with a preference? Because if we go down that path - of choosing what Bitcoin “should be” - we risk forgetting what made it special in the first place. I want to get this right. That’s why I’m asking. And I’m asking as someone who wants to learn - not to win.
it's your node, you can filter traffic as you like to hold any other position is to disagree with the fundamental defense of property rights that bitcoin itself enforces bitcoin's blockchain is a shared property, and what goes in it is the result of what everyone wants to see go in it, it's automatically democratic and up until the latest release of bitcoin core, there was a widespread policy of limiting OP_RETURN to 80 bytes, even though the protocol does not dictate this the profitability of the spammers is already done, scams don't last long, and it's just some trash in the history of the blockchain, and the act of changing this policy to allow it to be whatever is empty because it's more expensive per byte than witness data anyway, so why change it? why do anything at all?
I hear your concern, and I respect the desire to protect Bitcoin’s integrity. But I’d gently push back on a few things. First, who decides what Bitcoin’s “purpose” is? Satoshi left us with a tool -not a religion. Bitcoin is programmable money, and its potential is still unfolding. To say we already know all its purposes is like claiming we understood the internet fully in 1994. Second, consensus isn’t a static idea owned by a loud subset of voices. It’s not tweets, feelings, or vibes. It’s what the nodes accept, and what the network runs. If the code is valid, and it doesn’t violate the rules, then the protocol itself is saying: this is allowed. Finally, experimentation is not erosion. It’s evolution. Bitcoin is resilient precisely because it absorbs pressure and adapts - without central planning. If something truly violates Bitcoin’s core principles, it will die off. If not, it might just be the next step in its story. That’s the beauty of a permissionless system: no one has to ask for approval to innovate.
Bitcoin is a peer-to-peer protocol for transferring and verifying ownership of digital value without intermediaries. It functions as money - combining store of value, medium of exchange, and unit of account - secured by a decentralized ledger. Satoshi described it as “closer to a collectible than bonds,” emphasizing its uniqueness.
Anchorite's avatar
Anchorite 6 months ago
That's a nice farm you have, but it would be much better as a playground. Oh, you're starving? Darn. Use your brain.
CptKook's avatar
CptKook 6 months ago
Bitcoin is money. I’ll configure my node to run accordingly. You can store your jpegs on nostr relay(s)
UTXO bloat causes nodes to need more RAM. Pruning doesn’t help. It’s caused by an increase in the number of small amounts of sats. Arbitrary data that gets stored on the blockchain causes nodes to need more hard drive space. Many nodes are running on hardware that can’t be upgraded to accommodate that. That increases the cost to node runners while miners profit from non financial transactions that would otherwise be filtered. 40 bytes of op_return is enough to run a side chain and it’s prunable. There’s no reason to expand it or not implement filters unless you’re just trying to accommodate shitcoiners and spammers. Bitcoin is a database but it’s for a specific purpose. Just because you can create non standard 1sat transactions and fill a block with a jpeg doesn’t mean it’s ok as long as you pay a fee. That’s not a transaction, that’s an attack. Developers want to build on Bitcoin because of the name recognition and price but if it gets turned into an altcoin it will ultimately fail. Bitcoin Core should be countering attacks not catering to them. If that’s the course they’re taking then they should just work on a altcoin and stop pretending there’s nothing that can be done to prevent it.
ESE's avatar
ESE 6 months ago
Blocks stay at 4 MB, but during quiet fee windows, big transactions still blast across the network, and every node must download and validate those bytes before they hit a block. The UTXO set is already 12 GB—enough to push a Pi onto slow disk seeks—so a steady drip of bulk data keeps nudging the hardware bar up. A small OP_RETURN cap is just a speed bump: it makes anyone storing non-monetary data split it into chunks or pay more, while each node can relay or ignore it. The current Core PR worries people because it raises the default cap a hundred-fold and removes the setting that lets operators keep a lower limit. I’d rather keep a modest ceiling and the knob; that lets art still pay its way, shields hobby nodes from legal risk (see Matzutt 2018 on CSA data in Bitcoin), and leaves Bitcoin’s main job—sound money—uncluttered.
I run my node on an affordable 1TB SSD and I’m still well below capacity. When the time comes, I’ll upgrade - as will anyone serious about running infrastructure. That’s just reality. We’re not exceeding the 4MB block limit. The UTXO set isn’t growing like it did during the BRC-20 spike. My node runs fine. The hardest part for me to understand is the push for filters and Knots-like nodes as if they’re a real solution. They don’t actually stop inscriptions - they just delay them. The transactions still hit mempools. They still end up on-chain. So what’s the goal - virtue signaling? Selective relaying? If you’re not preventing inclusion in blocks, you’re not solving anything. If a transaction pays the fee and follows consensus rules, it’s valid. Filtering based on intent isn’t defense - it’s censorship. Let node runners and consensus decide - not narratives, not vibes. If that’s not acceptable, maybe it’s you who’s proposing the fork. All in my humble opinion - as a Bitcoin student who values technical truth over ideology.
I think the real question you’re trying to ask is, should Bitcoin strictly be a monetary network? My answer to that question is yes. That’s why I run knots. Is it an emergency? Absolutely not. Core developers pushed the controversial update out, despite concerns from core developers and the community. I run knots as a statement to core developers. If you take control away from node runners, I will run Bitcoin software that gives me control over which transactions flow into my node. My node is for monetary data only. That’s my vote.
I get the concern - but the framing misses what really matters. The block size stays fixed - so storage growth is predictable. Relay bandwidth and mempool churn are transient - nodes can throttle, prune, and drop transactions as needed. The UTXO set, yes, it’s 12 GB - but it’s been stable since the inscription boom cooled off. Even so, serious node runners already spec for SSDs - slow disks were phased out by cost and necessity years ago. As for OP_RETURN - raising the default cap doesn’t force nodes to relay or index anything. It just removes a soft bottleneck that hasn’t meaningfully filtered “spam” in years. If the data pays fees and doesn’t violate consensus, then it’s Bitcoin-native - ugly or not. The “legal risk” argument leans speculative - nodes aren’t archiving OP_RETURN, and the Matzutt paper points to edge cases that haven’t borne out under real-world pressure. Let’s not legislate policy on theoretical terror. If Bitcoin is truly neutral, let the market express value - whether in art, text, hashes, or coin. Censorship via knob may feel clean - but it’s just control with a prettier name. Knots-style nodes may give some the illusion of filtering, but they don’t prevent inclusion - they simply delay it. The data still hits mempools, still gets mined, and still lives on-chain. And even if some aren’t fans of art on Bitcoin - or of preserving fragments of human culture through permanent inscription - I’d argue we at least look at what projects like Bitmap represent. Because when we fix money, we’ll need territory - cyber territory - and it won’t be built on Solana or Arweave. It can only anchor on Bitcoin. No other foundation is equally censorship resistant, decentralized, or economically sound. In my view, Bitmap is the most compelling project ever built using satoshis themselves. Without digital land, Bitcoin’s vision of self-sovereignty is incomplete. That’s not hype. That’s a long view of where all this is going. All in my opinion - as someone who believes Bitcoin is more than just sound money. It’s the base layer of our future reality.
Thanks for the thoughtful reply. Just to clarify - there wasn’t a controversial update pushed by Core developers. From what I understand, there was a proposal to raise the default OP_RETURN relay limit. It triggered discussion, but nothing was merged. The PR was closed. No rules were changed. No behavior was imposed on node runners. That said, I have a genuine question, and I’m not asking this to argue - I really want to understand better. Do I understand correctly that what your node is doing is mostly symbolic? From my current understanding: Your node still downloads and processes those valid transactions before dropping them. Then, when those same transactions appear in a block, your node processes them again to validate the block. So essentially, it’s doing twice the work. The data still hits the blockchain, because it’s valid and paid for through fees. And the mempool is still exposed to the same total load, just shuffled differently. Also - by rejecting valid transactions at relay level, nodes like Knots don’t just increase their own processing burden. They may also add inefficiencies to the broader network by breaking natural transaction propagation paths. It’s a kind of bottlenecking, but without stopping the end result. If I’m missing something here, I’m open to being corrected. I just want to get to the root of how this improves the system beyond making a statement.
The Bitcoin Core team announced that they were removing the op_return limit in the next iteration of Core. If that has changed, I am unaware. Yes, I understand my actions are symbolic. I only have 1.5 TH pointed at my node. Yes, I understand this is more computational work for my node. Doing the right thing is usually not the easiest thing. We disagree on what a “valid transaction” is. I believe it is data that includes information pertaining to monetary transactions only. You believe pictures are a “valid transaction”. Peter Todd is at the forefront of this op_return limit removal. He also supports genocide. So…
ESE's avatar
ESE 6 months ago
Two key assumptions behind your comfort level don’t align with Core's behavior. First, “nodes can just throttle or drop big transactions.” The per-transaction trickle code was ripped out years ago because it broke compact-block sync; when a node tries to withhold a large tx, it simply forces a slower fallback download, using more bandwidth, not less. The only bandwidth cap left (-maxuploadtarget) is off by default, so almost every Core node forwards any standard TX immediately. In other words, raising the size limit means most nodes will move those bigger payloads for free. Second, “raising the cap doesn’t matter because storage is cheap and pruning exists.” Pruning helps the disk after the fact but does nothing for the live relay hit or the RAM needed to hold the UTXO set. That set is already too large to fit in entry-level memory; every extra gigabyte forces more disk seeks even on SSDs. Cheap terabytes don’t fix cache misses. Legal risk isn’t theoretical either—illicit images and links are already on the chain. An unlimited OP_RETURN lets the entire file ride in one clean chunk; a small cap forces it into thousands of random shards. That difference matters to hobby operators who can’t lawyer up or geofence nodes. A modest default cap with the config knob intact doesn’t censor anyone. It simply makes large, non-monetary payloads pay their real network cost and leaves each node free to tighten or loosen policy without patching code.
I don’t think you understand how utxo bloat happens. Filters don’t need to be 100% effective to be effective. Make spammers adapt to the nodes not the other way around. A burglar could fairly easily break the lock on the door to your house. By your logic you should remove the lock. It’s not censorship. You’re entitled to your opinion but I won’t allow you to graffiti it on the side of my house. What you’re proposing is that bitcoin is simply a database for anything. That’s just not true. It never was. It sounds like you think people should be able to store anything they wish if they pay the fee. If that’s the case there are many more filters that have been in place since the beginning that will need to be removed. I just watched this entire video. I pretty much agree with Mechanic on every point. This is a very complex issue with many intertwined sub issues. My take is that Bitcoin Core has been philosophically compromised by shitcoiners wanting to adapt bitcoin to meet their needs. Only to capitalize on the name recognition of Bitcoin. Everything they want to do could easily be accomplished on another blockchain that already exists.
Well, what is missing is to the people who made Knots also to make mining pools in which spams get rejected because the miners can select the template that does such. Wait, that pool exists and is called OCEAN DATUM.
Shinobi's avatar
Shinobi 6 months ago
Mechanic is a deluded clown. "Nodes have no incentive to relay tHe SpAm." Yes, they do. Because they will wind up in blocks, and your node will download and validate them anyway BECAUSE THEY HAVE TO in order to validate your own money. Enough with this delusional and imaginary nonsense pretending running a node is some altruistic service. That is a debunked nonsense meme. If you are running a node for any other reason than verifying your own transactions, you were sold a fairy tale. If you aren't using your node for that, cry, run something else, shut it down, no one who understands how Bitcoin actually works cares. A node not used for validating your own transactions is completely useless, and does nothing for the network besides provide relay bandwidth. View quoted note →
sedited's avatar
sedited 6 months ago
> 2. If we filter spam, fee estimation will get worse. > It can get better actually, assuming there is one decently sized miner on the network respecting those filters. I really wish this was the case, but there clearly is no such miner yet. This may change, but it also may not. Your argument for the rest here is basically "how can anybody know anything, just rbf it". Next to fee estimation being a best effort heuristic, having inaccurate estimation is horrible ux. How do you know by how much you should be bumping? You will end up either overspending by potentially an order of magnitude, or not get your transaction in if it is time sensitive. > 3. Block Propagation will be slower if we filter spam. Mining will centralize in general. > Firstly - if you filter something that still generally makes its way around the network, you'll cache it and your verification speed will be just as quick as if you didn't filter so this is a non-argument. I genuinely think most people, including Core devs are just unaware of `blockreconstructionextratxn` so they believe there to be an issue that there just isn't. I don't know how often this still needs to be repeated to you, but that cache was proven to not be effective at backstopping rejected transactions. It simply is too small for that and making it bigger is problematic because it opens dos vectors. It was introduced as a best effort backstop for rbf transactions, in case the replacement is not mined, not as a catch all for non-standard transactions.
sedited's avatar
sedited 6 months ago
Because your CPU is about 10000 times less effective at mining than a single bitaxe. Bitcoin Core is working on improving the interface for miners and especially home miners though with the introduction of the mining interface and support for stratumv2.
sedited's avatar
sedited 6 months ago
I think it would give people the wrong impression. It won't move the needle at all, even if we had millions participating. Much more interesting would be a plug and play solution that makes it really easy to connect your miner to Bitcoin Core.
I think it would serve mote good than bad. As much of a fraction as it could be if the current hashrate that could change with the adoption of more active nodes as bitcoin keeps growing in its intellectual market cap. And it can serve as a gateway drug to those next steps as the bitaxes - it would serve as an on ramp to make the transition smoother. I just don't see why not.