pull down to refresh

Thanks for posting all of this.
  1. [...] Hence miners are more likely to see the standard block first, and mine on top of that. [...]
This is not necessarily true. While it can hurt propagation of compact block transactions to nodes that don't have them yet, the block announcement may be passed on immediately if the block header is valid. See this passage in the compact block BIP: https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki#pre-validation-relay-and-consistency-considerations . If the miner/block template producer already has all the transactions, because they run a lax standardness policy, they can then immediately reconstruct the block and validate it without any further roundtrips. Meaning this actually acts in the inverse; it puts a bit of pressure on miners to run a lax transaction policy.
As you point out in your second line of arguments, the above effect may indeed hurt miners that have more restrictive policies, since they spend more time reconciling compact blocks. But is the conclusion then that everybody has to run the most restrictive policy possible to not hurt those miner's bottom line?
One thing I would like to add to the explanations given so far is that I feel like Bitcoin Core is really caught in a hard place here. I think it is pretty clear that long-standing policy rules are effective, hence why e.g. counterparty back in the day did not build their protocol on it, and other meta protocols like Omni [1] were impeded by it, and eventually moved to other data embedding methods, like paying to fake key outputs. Most devs on the project, me included, are no fans of embedding data in the chain on a mass scale, or running parasitic, inefficient meta protocols over it.
I think the actual problem is really that a few years ago when the segwit discount was introduced, and again with the relaxing of the witness size in taproot, no policy adjustments on size were made. However, inversely to the dynamic of a soft fork and a hard fork, where tightening rules is done in a backwards compatible fashion, tightening and loosening policy have different dynamics. Tightening only becomes effective when an overwhelming majority of nodes run the new policy. Loosening becomes effective with even just a small proportion of nodes running it, as became apparent during the recent adoption of full RBF. To my knowledge policy has never been tightened on something in Bitcoin Core while it was in use. While this has many reasons that are explained elsewhere, I find the potential higher order effects of this on miner incentives scary. Making people upgrade faster by hard-forking older clients off the chain, like knots does, is a dangerous path to tread on for the entire project.
The hype around ordinals inscriptions has lasted for around two years (the mempool has cleared again, so I think it is pretty much done now); counterparty and omni had similar hype-cycles back in the day. I'm sure they will re-surge every now and again, but on the grand scheme of things, I think it won't be significant. If the fee market seems to historically starve these meta protocols after two years, and it takes about two years until more restrictive policy is rolled out in a comprehensive fashion, is there really much to argue about here?
Making people upgrade faster by hard-forking older clients off the chain, like knots does, is a dangerous path to tread on for the entire project.
Interesting. Do you have a code reference for this hard forking - I can't seem to find it in the knots code. Or do you mean with "hard-forking" that if everyone would at once implement policy tightening, there would be transactions stuck forever?
reply
I should add that this is optional, but default on.
reply
Thanks! Yes, that's nasty.
reply
I have to confess I don't follow everything you've written, you are clearly more knowledgeable about the subject than me. OTOH it also doesn't sound like we have any major disagreements either, except it sounds like you are cautioning against running Knots, on the basis that it will have undesirable miner incentives, its tighter policies will be ineffective since Knots nodes are a tiny minority, and that hard-forking older clients (thanks for the link btw, eye-opening) will cause chaos?
None of that is ideal, but I will still take my chances with Knots. I simply do not trust or like Core right now, and this is my protest vote. I do not think they have been intellectually honest in their arguments. And even if there are negative consequences for miner incentives, it's probably just noise compared to the importance of Ocean. I'm going to do my part and start mining at home for Ocean. The forced-upgrade thing is interesting. It goes against the idea of self-sovereignty, and I hate being subjected to it (it's super annoying whenever I'm forced to update a banking or credit-card app on my phone, and this seems just like that), but there must be advantages as well (e.g. encouraging active participation). I am willing to accept this tradeoff for Knots because I see running the thing as an act of self-sacrifice – the important thing is what's good for the network, not what I want.
And yes, I do see some irony in that last statement, because one of the main battle cries of the pro-Knots crowd is that we should be able to control what goes in our own mempools :)
edit: I was just reminded that you said the forced obsolescence is optional. Even better :)
reply
Edit to the above:
Should add a caveat to the first paragraph that this also depends on the network topology. If the peer just receives a header, and not a full "high bandwidth" compact block announcement, it is unable to reconstruct the block, and the block relay delay effect as described in the OP takes over.
reply
deleted by author