This proposed policy change would allow multiple OP_RETURN outputs per transaction, the Bitcoin protocol allows for multiple of these opcodes per transaction but the current policy does not. We are seeing an inefficient use of OP_RETURN for systems that rely on this feature. For example, an asset layer solution making use of OP_RETURN currently has to create multiple transactions when sending to multiple recipients.
There are several regular sources of these types of transactions on the network making up a significant proportion of daily transaction, OmniLayer, one successful and popular asset layer, on the 21st Oct 2019 was responsible for 8% of transactions that day (Omni 28,313 TXs [1] / Bitcoin 351,632 TXs [2]). Allowing multiple OP_RETURN opcodes would enable asset layer solutions to move multiple assets to multiple recipients in a single transaction, this would result in an overall reduced data size for the movement of those assets reducing transaction load on the network.
The original Pull Request to add OP_RETURN linked below bemusingly set the fail reason for multiple instances of it to “mucho-data”, the opposite is now true, single OP_RETURN per transaction only result in more data, not less.
https://github.com/bitcoin/bitcoin/pull/2738/files
A service bit could be added to show whether a node would accept and relay a transaction with multiple OP_RETURN opcodes, such transactions would then only be relayed to nodes indicating support. If this change warrants such a thing I’d be happy to update this PR to include it.