We created an exploitable bug with Taproot. Instead of fixing the bug, let's embrace the SPAM and make it easier. Genius.
This is already possible.
Made https://github.com/stutxo/labitbu as a meme for example, let's see how knots can prevent this without reverting taproot (f08fd61d48f79eeb0c4bc9e58f2d7ecad0e20e5d6411b588590cb0480c8e7fbe), the 80B limit didn't stop anything, and neither did your filter.
Discussion
this can't be "fixed" due to the way merkle trees work, any "fix" would undoubtedly break real p2tr scripts
If we can't yet come up with a solusolution to our past mistakes, we can at least try not to make new mistakes.
If we can't yet come up with a solution to our past mistakes, we can at least try not to make new mistakes.
I think there is a way to fix it without breaking real p2tr scripts. Create a filter that checks if a control block, when parsed as a single hexadecimal string, contains a valid image format. If so, filter that transaction. Done.
easy to have false positives, and easy to counter.
shift everything 1 bit, literally and suddenly the control block doesn't get filtered but any client can still render the image
if that gets stopped somehow, you just xor the block with some value, or a bunch of other similar things
it is not possible to stop this.
if you shift 1 bit, we add that to the filter
if you xor by some value, we add it to the filter
it's not possible to stop filters