Jason C

OP_RETURN and the Block Subsidy 2024-04-28

Miner Fees

"The first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation. The incentive can also be funded with transaction fees. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees."

Satoshi Nakamoto, Bitcoin Whitepaper

With each halving we come that much closer to the end of the block subsidy. The block subsidy was only meant to be temporary. Eventually 100% of miner revenue needs to come from transaction fees. How to increase fees is a disagreement between bitcoin forks.

Total fees per block can be calculated by multiplying these three numbers:

  1. Number of transactions
  2. Size of each transaction (bytes)
  3. Fee per byte of each transaction (sats/byte)

For example, if you have:

  1. 1,000 transactions
  2. 500 bytes average size per transaction
  3. 1 sat/byte fee

When you multiply all three together you get 500,000 satoshis in total fees for the block. For total fees in a block to increase one of these values must increase. Different forks have different ideas about which values to increase. For instance, BTC wants to increase #3, the sats per byte, and BCH wants to increase #1, the number of transactions.


OP_RETURN allows transactions to add arbitrary data as a transaction output. It was enabled by BTC to have provably unspendable outputs that can be pruned. BTC was not trying to encourage data to be stored on-chain, but they saw OP_RETURN as a lesser-evil compared to storing data in spendable transaction outputs that cannot be pruned.

Spendable outputs must be stored until they are spent. When they are spent the unlock script must be executed, which requires significant processing. Compare this to OP_RETURN which does not require script processing and can be immediately pruned. Since fees are calculated as satoshis per byte, the bytes in OP_RETURN outputs increase fees paid to miners.


A 1GB block full of simple 226 byte "cash" transactions would require over 4 million transactions which generate millions of UTXOs that must be stored and later processed.

A 1GB block full of 10MB OP_RETURN transactions would only require 100 transactions which could be instantly pruned and have almost no effect on the UTXO set.

At 1 sat/byte a 1GB block would generate 10 bitcoin in fees, more than the current block subsidy. If you were a miner, which block would you rather mine?

OP_RETURN is like the block subsidy 2.0, it is fees for miners with almost no work. If a blockchain wants to secure itself with transactions fees rather than the block subsidy, what better way is there than with OP_RETURN?

← Back to all blog posts