Listen to this episode here:
In this episode of “Bitcoin, Explained,” hosts Aaron van Wirdum and Sjors Provoost discuss OP_RETURN and what some have called the “OP_RETURN wars.” Specifically, they discuss a blog post from BitMEX Research titled “The OP_Return Wars of 2014 – Dapps Vs Bitcoin Transactions.”
Van Wirdum and Provoost begin by explaining that OP_RETURN is an operation code (a piece of code for Bitcoin transactions) that will invalidate any transaction that includes it in an input. This means outputs that include OP_RETURN cannot be spent, which means Bitcoin nodes can safely remove those UTXOs from their UTXO set, which saves on storage.
In the early Bitcoin years, people started using Bitcoin for more than just transactions. As an example given by Provoost shows, someone has uploaded the entire Bitcoin blockchain whitepaper. The BitMEX post explains that Layer 2 protocols, like Counterparty, were deploying decentralized applications on the blockchain. This type of non-transactional data was initially built into multisig transactions, but this meant that all Bitcoin nodes had to download, process, and store this data forever, which comes at a cost.
Van Wirdum and Provoost explain that in 2014 Bitcoin developers agreed to let nodes process and forward transactions with OP_RETURN outputs to alleviate this problem. These transactions would be preferable for downloading data, as their outputs can be removed from the UTXO set.
The “OP_RETURN Wars” refer to a debate between Bitcoin developers and (notably) counterparty developers over the maximum size of such transactions. Provoost explains why the 40 byte maximum was initially chosen, why it was later increased to 80 bytes, and how these considerations have changed over time.