Replying to Avatar waxwing

What surprises me about the tech and developer discussion around embedding data onchain (and OP_RETURN is just a corner of that), is how little of the discussion refers to the ethics.

There's an obvious point, and an obvious (in my opinion, incorrect) counterpoint.

The obvious point is that permissionlessness is central to Bitcoin's nature, and that implies *ethically* you cannot tell people what kinds of transactions are OK, and what are not. There are very substantial *technical* arguments as to why it can't really be prevented, but they are secondary to the ethical one: you don't have the *right* to tell people what transactions they can do.

The obvious counterpoint is that posting anything to the blockchain has a cost for *all* users. That's why we spent 4 years arguing about the limit on the size of blocks. I have no ethical right to tell someone not to publish or mine a block of size 10GB, but it doesn't take long to realize that the costs this imposes on other participants, is too large. In case you think, this argument was straightforward, the big blockers were wrong, don't forget that the resolution, for better or worse, was a compromise: average block size today is often 2x the size before. It was a really difficult argument.

So the counterpoint wins and we have to discuss whether embedding data should be allowed? I say, no, this a fundamentally different discussion. It is not a discussion of *how much computational resource is used in total*, but rather a discussion of *what individual users are using the computational resource FOR*, and that crosses the line into being ethically unacceptable, unequivocally.

I say that the technical awkwardness, or even impossibility, of restricting this behavior in the Bitcoin system is just a byproduct of trying to make Bitcoin do the opposite of what Bitcoin was designed for - censorship resistance.

This misses an important distinction. The permissionless nature of Bitcoin is already and indeed MUST be within a boundary of permissible transactions, as enforced by the nodes. Just because miners can't award themselves more than 3.125 Bitcoin when they find a block doesn't mean Bitcoin is not permissionless when a miner who tried to award himself 6.25 Bitcoin has his block rejected.

Permissionlessness is not lost by having code-enforced rules. It is lost by having rules which apply to some users and not to others due to a central authority who can arbitrarily decide who the rule applies to and when.

There is no attack on the permissionless nature of Bitcoin by those who don't want to relay the jpegs people want to save to the blockchain. All transactions are subject to the same standard by nodes running Knots. No picking and choosing who the standard applies to.

It should also be noted that there is a difference between who a rule applies to and who it affects. The rule that miners can only award themselves 3.125 Bitcoin when they find a block applies to everyone, no exceptions. However, it only adversely affects those who try to award themselves more and subsequently have their block rejected.

Permissionlessness requires only that the rules enforced by nodes equally apply to all users, not that all users are equally affected by the rule. Mempools that filter out large OP_RETURNs apply that rule to all transactions sent to them, without discrimination. Permissionlessness is unaffected.

Reply to this note

Please Login to reply.

Discussion

I disagree. The rules can enforce protocol-level semantics, but not off-protocol semantics. As an example, if someone publishes an old Lightning state on chain, that is theft; nobody proposes stopping that *both* because it's ludicrously impractical and also because at base, the off protocol semantics of transactions, their meaning in the outside world is *by design* not the business of the base chain.

This is exactly what Satoshi's design avoids - "all the trust required to make it work". Which committee decides what is a jpeg and what is not?

Sure, and in this case, the protocol-level semantic is the size of the OP_RETURN, regardless of whether it is a jpeg or some other data. The point is, it has no effect on whether Bitcoin is permissionless so long as it is not enforced arbitrarily, such that some transactions with larger OP_Returns are permitted, while others are not. Therefore your argument that it violates the ethical principles of Bitcoin is invalid. All users and all types of data within the OP_Return are treated the same by Knots. It's not looking to see whether that data is a jpeg, just whether it exceeds the size limit.

You seem to be interpreting my post as to say it's unethical to run filters, or to keep a specific rule limiting resource usage. I'm only saying it's against bitcoin's ethos to look for ways to prevent data embedding because that's where you cross into policing what transactions are for.