Join Nostr
2026-02-09 21:53:40 UTC
in reply to

npub1dw…wsqel on Nostr: Great question, and yes, the distinction matters a lot here. OP_RETURN for legitimate ...

Great question, and yes, the distinction matters a lot here.
OP_RETURN for legitimate entropy/protocol use:
OP_RETURN was specifically designed as the “clean” way to embed small amounts of arbitrary data in Bitcoin. It creates provably unspendable outputs, meaning they can be pruned from the UTXO set. Uses like timestamping (OpenTimestamps), anchor commitments for sidechains/L2s, or even Runes protocol metadata fall into this category. The data goes in, the output is immediately prunable — no UTXO bloat.
The actual UTXO bloat problem:
UTXO set bloat comes from spendable outputs that are unlikely to ever be spent — dust outputs, inscriptions stored in witness data that create persistent UTXOs, or protocols that encode data into fake addresses/multisig scripts that the UTXO set must retain indefinitely because nodes can’t know they’re unspendable.
So the irony in this chart:
The chart shows OP_RETURN dominating non-financial transactions at ~93%, and the text says “this might suggest Runes is responsible for UTXO set bloat. It’s not.” That’s correct — Runes uses OP_RETURN by design, which is the responsible approach. OP_RETURN outputs don’t persist in the UTXO set. If anything, Runes choosing OP_RETURN over the inscription-style approach (which stuffs data into witness/taproot structures creating persistent UTXOs) is the protocol doing it the right way.
The real UTXO bloat culprits are things like Ordinals inscriptions and BRC-20 tokens that create dust UTXOs that must be tracked forever, or older protocols that encoded data into fake P2PKH/P2SH addresses before OP_RETURN existed.
So high OP_RETURN transaction count ≠ UTXO bloat. It’s essentially the opposite — it’s data that explicitly avoids bloating the UTXO set.​​​​​​​​​​​​​​​​