Yes. Syntax means only certain patterns are allowed. But the protocol (English) makes no judgement about the purpose, or meaning, of valid combinations of words (the semantics). This distinction represents the correct analogy here.
Bitcoin's protocol gives a syntax for financial state transitions, but doesn't judge whether they are acceptable state transitions. The problem is that semantics are not absolute like syntax is, and it's a fool's errand trying to control semantics. If you ban "fuck" another word will be "co opted" to somehow be equally offensive. Protocol rules control syntax, not semantics.
Login to reply
Replies (6)
> Bitcoin's protocol gives a syntax for financial state transitions, but doesn't judge whether they are acceptable state transitions
It seems to me that bitcoin's protocol *does* judge whether a state transition is acceptable or not, e.g. in the tx_check.cpp file
For example, consider this snippet:
if (txout.nValue > MAX_MONEY)
return state.Invalid
That seems to imply that a transaction with an output that creates more than 21,000,000 btc is not acceptable
So to rewind: what you were pointing out at the beginning is that the only things that are "banned" properly, are banned by rules, which is the protocol: the protocol is the rules. When people talk about bitcoin being "censorship resistant" they're talking exactly about how hard it is to have *other* rules (call it "soft banning" if you will), ones that are *not* in the code. OFAC e.g.; we're hoping that the way mining works prevents an OFAC rule becoming de facto (though not "de jure" in code). My "semantics vs syntax" distinction may not be the only way of framing that, but it's the one that I find most resonant, we see it very clearly across modern human society. When it comes to human language/society laws, a good example is "hate speech" laws of the type seen in the UK: it's a law about semantics, not about syntax, in my framing (and it's to my mind the rubicon which a government can never cross). In a Bitcoin context one can similarly *attempt* to create syntax rules that control semantics, but they will always be ineffective ("pissing in the wind"), and most likely also very deleterious. As I've always said, trying to ban spam is imo *both* ethically *and* technically bankrupt. It's not going to work. Instead, try to make bitcoin the best money it can be.
> When people talk about bitcoin being "censorship resistant" they're talking exactly about how hard it is to have *other* rules...ones that are *not* in the code
I agree, it is censorship resistant "in one sense," but the sense in which it *is* censorship resistant depends on having a protocol, which requires censorship in *another* sense -- because all protocols must reject invalid data.
I also think it is a helpful distiction for another reason: in the bip-rdts debate, many of the anti-rdts people oppose it on the grounds that it would be censorship, if it activated. But through this conversation I think they are starting to realize that if they follow that logic through its its end, then *all* consensus rules are censorship.
You can either say "consensus rules are not censorship, therefore bip444, if it activated, would not be censorship," or you have to say "consensus rules are censorship, but censorship is sometimes okay." The one thing you can't do, logically, is say "consensus rules, by definition, are not what I mean by censorship; but bip444, if activated, WOULD be censorship."
Oops, a couple of times I called it bip444, and I am trying not to do that anymore -- please mentally substitute bip-rdts for bip444 wherever the latter appears
Right. I think we're correctly identifying that the issue is: the syntax/semantics distinction as I like to describe it, or the rules/censorship distinction have the problem of a somewhat blurred dividing line. In my human laws example, the "hate speech" law in the UK is now protocol or "consensus" as per bitcoin's lingo, but that doesn't make it OK. Because it's a law about something like "what you are thinking" it's not actually viable; it has already created monstrous outcomes. So it's not that I'm saying you're wrong that "if it's in the protocol/consensus rules then it's not censorship by narrow definition", but I also wouldn't blame people for saying "come on, just use common sense! that's censorship!". It's probably not a very valuable discussion, except maybe to say "there are two different ways censorship could happen; but having censorship *in* the protocol rules is even far worse than the other (normal) type!".
The "normal" type of censorship in the existing consensus rules is content-based with the goal of enforcing a subjective moral preference. I don't think censoring spam is worse than that.
For example, the existing consensus rules censor transactions that try to create more money in the outputs than is consumed in the inputs, without proof of work, because node runners subjectively prefer a network where no one can do that, where the ability to inflate the supply for oneself without working for it would be immoral, a type of fraud. So we censor it. Personally, I don't think it is wrong to go down the morality police route; I'd like to do it even more by policing the network against spam too.