OP_RETURN

The 0.9.0 release of Bitcoin Core added a new standard transaction type granting access to a previously disallowed script function, OP_RETURN. This function accepts a user-defined sequence of up to 40 bytes. When a transaction containing a challenge script with an OP_RETURN function is mined into a block, the accompanying byte sequence enters the block chain.

Although stored in the block chain, OP_RETURN bytes are excluded from the UTXO set, conserving a scarce resource. As a side effect, an output using an OP_RETURN challenge script becomes unspendable. For this reason, the value of an OP_RETURN output is usually set to 0.

OP_RETURN was originally expected to support 80 bytes of data. One of the strongest critisisms of the later 40-byte limit came from Counterparty, who claimed that 40 bytes was not enough to support the system of peer-to-peer markets and financial instruments it had created.