Questions reacting to text in reply of Russell O'Connor:- " there exist some protocols that require":
Citrea’s Clementine bridge, which needs 144 bytes for zk-proofs. I don't know anything about their protocol beyond that.
- Why does bitcoin need to cater to their needs?
If we don't support these in OP_RETURNs, Citrea, and other folks like them, will use something like bare multisigs instead, which will be a little more expensive for them and much more expensive for every other Bitcoin node operator on the planet because those (likely) unspendable UTXO will have to remain in the UTXO set forever because they will be indistinguishable from legitimate bare multisigs.
- Do we cater to any protocol that comes along?
- How do we choose which to enable, and which to discourage?
Clamping down on OP_RETURNs won't discourage the use of these Citrea-like protocols. Instead it will encourage them to instead use uncensorable publication channels such as bare multisigs, which will bloat the UTXO set and drive up costs for every Bitcoin node operator on the planet.
- "the folks using these protocols will simply have no choice":
- Did we force them to use bitcoin for their project?
- It sounds like "if you don't change the code to enable my project, I will be forced to trash your project." Is this wrong?
By "force" I mean in the sense that when a recent KDE upgrade dropped the ability to specify some command to be run whenever the screen is locked, KDE "forced" me to write a systemd service to run dbus-monitor to watch for screen locking events instead. Fortunately, in the case of KDE, being "forced" to work around their changes only makes my life worse. However in the case of limiting OP_RETURNs, users who are "forced" to find workarounds for their proof of publication protocols will ultimately lead to them using the uncensorable data channel of bare-multisigs, or similar, which have consequences not only for themselves but every other Bitcoin node operator on the planet.
It is specifically the externalities caused by the bare-multisig workaround that we need to address. If these externalities didn't exist, then I, and presumably others, wouldn't care so much.
- "any attempt to cap OP_RETURN outputs will force those users":
- Again, force is a form of coercion. Is the bitcoin code with it's current setting forcing anyone to do anything?
- Are the external protocol designers the victims here?
The victims will be every node operator on the planet who has to deal with the unprunable UTXO bloat caused by users posting their proof-of-publication data via the uncensorable bare-multisig avenue. This collective cost will actually be much higher than the cost to the external protocol designers who only have to pay a few more pennies for their transactions.
- "Bitcoin Core 30 is *fixing* an existing problem":
The problem is a combination of protocols that require using proof-of-publication choosing to use uncensorable bare-multisigs instead, and/or, so long as this proposal isn't adopted, the problem of users bypassing the network to get their OP_RETURN transactions mined which leads to poor quality block reconstruction and poor quality fee estimates and the like.
- Is the bitcoin code responsible for fulfilling the needs of an external project or protocol?
Again the victims here wouldn't be the external protocol designers. They will just pay the extra pennies to publish using bare-multisig. The victims would be every Bitcoin node operator on the planet. And while the core developers have no warranties or responsibilities attached to their open source code, I think we would agree that "costs borne by every Bitcoin node operator on the planet", is something they ought to bear in mind in their work.
I hope you will take these questions seriously. I really want to understand your thinking.
Hope this helps.