I was reading this Twitter thread from pourteaux. I'm pretty sure there are some inaccuracies in it but I have a couple of questions.
He states:
Taproot accidentally blew up the old transaction size limit in OP_RETURN
It wasn't accidental at all from what I understand. The previous transaction size limit (pre Taproot) was deliberately relaxed though I can't (yet) find links to historical discussion on whether to relax it or not.
In the past, arbitrary data was limited to 80 bytes via OP_RETURN, but with this quirk of Taproot you could take up an entire 4MB block with just one NFT transaction.
The OP_RETURN
data limit in a single output remains post Taproot. It is just now with no transaction size limit you could (if you were willing to pay sufficient fee) fill an entire block with a single transaction with many OP_RETURN
outputs?
Is there a reason Ordinals or NFTs would need multiple OP_RETURN
s in a single transaction? I was under the impression that a single OP_RETURN
was sufficient for these use cases as you can effectively embed a Merkle tree root in the OP_RETURN
? I'm unsure why these use cases would want to pay the transaction fee(s) to fill blocks with OP_RETURN
outputs.