Szabo’s raising valid concerns about legal liability for node operators and I believe that’s worth taking seriously. The OP_RETURN expansion does create real risks when data becomes “readily viewable by standard software.”
But here’s where I differ from calling for censorship: the legal risk argument cuts both ways. If we start filtering transactions because of potential liability, we’re pre-emptively accepting that some transactions are “illegal” before any court decides. That’s worse than the risk itself.
The solution isn’t spam filters that decide what’s monetary, its node operators understanding their legal position and making informed choices. Run Tor, run pruned nodes if you’re concerned about storage liability, understand your jurisdiction 🤷♂️
Thread
Login to reply
Replies (15)
Freedom is illegal. Freedom always comes with trade offs.
Total Orwellian control over the world doesn’t stop criminals. It only empowers the worst ones.
Framing the conversation as if governments have jurisdiction over your nodes means you’ve already lost the plot.
“If you don’t do this then they will ban it”
The whole entire thing is noncompliant. The whole point of Bitcoin is to route around the state without direct violent confrontation.
Of course it empowers the worst type of people as well. But governments spend very little time and energy handling the worst kind of people because they are made up of them.
They steal, they murder, they abuse children, and they tell you where you can’t smoke.
The trade offs of freedom are worth it.
Anyone starting the conversation with how node operators need to out comply the state is not being helpful. Despite what PODCONF says, compliance is not defiance.
If you have an ounce of dignity, you need to be comfortable with understanding you are an outlaw.
View quoted note →
I am not terribly moved by the legal liability argument. I will gladly endure the persecution of a hostile state for standing up for what I believe is right.
I am, however, moved by the moral argument.
I look at it similar to the porn issue on Nostr. I run my own relay, and I am under no illusions that filtering porn from my relay is going to make much impact on Nostr as a whole at all. However, I can have a clear conscience knowing that I am not contributing to it with my relay.
Same with filters on my node. It's not going to have a lot of impact on keeping non-monetary transactions, especially those containing data I find to be immoral, out of the blockchain, but I will know that my node is not contributing to the problem, and since I am creating block templates with my node's mempool, I know that if I ever found a block, it would not be contributing to the issue.
So I see a lot of reason to have the option to filter your mempool if you want to do so as a node runner, and that taking that option away is not the route we should be going. Not so node runners can bend to the will of any state, but so they can be faithful to what they believe is right. Particularly since doing so in this context in no way imposes their view of what is right on anyone else. They are deciding it only for their own individual node.
Where I land: I won’t filter because I believe Bitcoin’s neutrality, treating all valid, fee paying transactions equally, is itself a moral stance worth defending. Not because porn or spam is good, but because the moment we accept “immoral transaction filtering” as legitimate, we’ve created the precedent for undesirable transaction filtering.
Your approach doesn’t threaten Bitcoin. Normalizing filtering as standard practice does. As long as it stays “node operators can choose” versus “this is what Bitcoin should enforce,” we’re on the same team fighting for different expressions of the same principle. Individual sovereignty.
I am torn on that. I think there is a place for civil law to be a reflection of moral law.
Indeed, I think each an every law that is on the books is an expression of SOMEONE'S morality. The question of how just a law is comes down to how well it reflects the only true morality, which is God's law, and therefore how well the civil magistrate fulfills his God-ordained duty to be a terror to the evil-doer and rewarder of the good.
I get the theonomy argument. But Bitcoin isn’t civil government, it’s a tool, like mathematics. It exists under God’s sovereignty but serves everyone, like rain falling on just and unjust alike.
Civil magistrates punish evil. Bitcoin validates signatures. Those are different spheres of authority.
Whose interpretation of God’s law gets encoded anyway? Reformed? Catholic? The moment we make Bitcoin enforce morality, we’re fighting over which morality, and we’ve lost what makes it useful and unstoppable.
Your node, your conscience. Filter if convicted. But let’s not confuse individual faithfulness with protocol level enforcement. Even common grace operates without discrimination
It's very true that Bitcoin has a very different sphere of authority than the civil magistrate. Yet there is still a very real sense in which Bitcoin is not just a signature validation machine, but an enforcer of a moral standard, just as surely as the civil magistrate ought to be. A peaceful enforcer, to be sure, but an enforcer nonetheless.
Take Bitcoin's supply cap. That is the instantiation of a moral principle into Bitcoin's code; namely that your money shouldn't steal from you, but should be a lasting abstraction of your productive time and energy that should grow in value over time, rather than shrink. Not everyone agrees with that statement, either. Plenty of folks out there think a monetary system that doesn't steal value from its holders is unworkable.
Even the purpose of signature verification you mentioned is based on a moral principle that no one should be able to take the value someone else has earned. Rather, each person should be able to dispose of his property voluntarily as he sees fit. Cryptographic signatures just ensure that moral principle is protected by inviolable code.
We could move on to mining and the difficulty adjustment. Both of these core aspects of Bitcoin exist to enshrine the moral principles that 1.) no one should be able to arbitrarily create value for themselves without work, and 2.) that no one should be able to reverse a transaction without the consent of all the parties of that transaction.
Most of these are just different outworkings of the basic principle "thou shalt not steal," of course, and applied to how a money ought to be designed to make various forms of theft difficult, if not impossible. Moreover, they are imposed unilaterally, in spite of the fact that there are plenty of people out there who disagree with many of the details of exactly how that basic principle ought to be reflected in our money.
Well written and this is fun btw. Strong arguments to be sure. You’re right that Bitcoin encodes moral principles. The supply cap, signature verification, and PoW all instantiate “thou shalt not steal.”
But here’s the distinction: those principles define what Bitcoin is, not what Bitcoin allows. They’re constitutional, not regulatory.
The 21M cap and signature requirements are about Bitcoin’s nature as sound money. They don’t require ongoing interpretation. But filtering transactions by content means case by case moral judgments about what’s immoral, and that necessarily varies.
Bitcoin’s moral architecture is complete in its monetary properties. Adding content morality moves from “this is what money should be” to “this is what money should allow.” That’s a different category.
Your node, your conscience. But I see those as fundamentally different types of moral statements.
100% this is fun!
I would argue that a large part of the definition of what Bitcoin IS directly flows from what it allows and what it rejects regarding transaction construction. Transactions must be denominated in Bitcoin's base monetary units, not in USD, or ETH, or anything else. Yes, that is definitional of what Bitcoin is and is not, but it is also regulatory of what Bitcoin allows to be stored in a block. Likewise, the block-size limit is a regulation on what Bitcoin allows, but one that serves to protect what Bitcoin is: a decentralized, sound, digital money.
Even the early datacarrier limits that have been adjusted over time were regulatory in order to preserve Bitcoin's purpose of being money, rather than a decentralized file-storage database.
And to be clear, we are not talking about filtering transactions by what sorts of things you are spending your money on. A payment to a hooker and a payment to a church are indistinguishable, so it isn't possible to filter one or the other out on the basis of moral qualms about prostitution or supporting a particular church. Nor should it be, since money should be fungible in order to function properly as money. But I think we should be able to acknowledge there is a massive difference between using Bitcoin for its intended purpose as money to BUY an NFT, even if you or I think NFTs are stupid, vs using Bitcoin for an unintended purpose to STORE an NFT.
You’re right that the line between what Bitcoin is and what it allows isn’t as clean as I made it sound. Block size limits and early datacarrier limits do regulate to preserve monetary purpose.
But here’s my counter. Taproot and SegWit fundamentally changed what Bitcoin allows. Whether intended or not, the community achieved consensus on upgrades that enabled this. That makes inscription capability part of what Bitcoin is now, post-2021.
Retroactively restricting it isn’t preserving Bitcoin’s original nature - it’s unwinding a consensus change that already happened. The time to prevent this was before Taproot activation, not after.
And on the interpretation question: who decides when metadata becomes storage? When a payment becomes a file? Block size is objective. ‘This data is monetary, that isn’t’ requires human judgment on every edge case. That’s the regulatory layer I’m uncomfortable with.
You’ve made a strong case. But I think the consensus ship already sailed, and trying to filter it now is changing Bitcoin, not preserving it.
I think you are right about consensus ship having sailed, but when it comes to mempool filters, that's not consensus breaking and I don't think anyone is suggesting anything that would be. If they are, I wouldn't support that.
If I understand correctly, the current debate isn't about inscriptions, which primarily use the witness data section of the transaction, making them difficult to differentiate from standard transactions. That is what Taproot enabled and it's debatable what can be done about it now.
As an aside, though, I don't think it is valid to say "Well the consensus was that we wanted Taproot, and the time to stop it was before activation." For consensus to be a valid argument for not doing anything at this point requires that those who supported Taproot activation all were aware that it would enable inscriptions. Otherwise, there definitely was consensus about enabling Taproot, as far as people understood what it would give them, but there definitely was NOT consensus about enabling inscriptions. That can accurately be classified as an unintended use-case of Taproot's features by using an exploit to disguise arbitrary data as part of the transaction's witness section, which no one realized would be the case at the time of activation. That would make it a valid endeavor to patch, if consensus supports activating a proposed patch, in my opinion.
Regarding the datacarrier limit for OP_RETURN, though, that has nothing to do with Taproot. That limit has been in place for years and years. Knots is not the implementation making "a retroactive restriction" on that particular front. Rather, it is Core that is now REMOVING the long-standing datacarrier limit, which was also previously configurable by node runners, but they are removing the option for node runners to set it according to their preferences. That makes the OP_RETURN limit much more akin to the block-size limit, though the change isn't consensus breaking.
Very good arguments. Hopefully this gets itself figured out. What other problems can we solve in the world.
Mining template decentralization?
Good one
No, the solution is simple : don't radically change bitcoin! Don't blow-up the op_return limit. Simple.
Haha. True