[Bitcoin-development] Increasing the OP_RETURN maximum payload size

Luke Dashjr luke at dashjr.org
Sun Nov 16 17:24:18 UTC 2014


On Sunday, November 16, 2014 4:21:27 PM Flavien Charlon wrote:
> The data that can be embedded as part of an OP_RETURN output is currently
> limited to 40 bytes. It was initially supposed to be 80 bytes, but got
> reduced to 40 before the 0.9 release to err on the side of caution.
> 
> After 9 months, it seems OP_RETURN did not lead to a blockchain
> catastrophe, so I think it might be time to discuss increasing the limit.

Mining policies such as this is always up to miners.
It's not a development topic.

> There are a number of proposals:
> 
>    1. Allow two OP_RETURN outputs per transaction (PR
>    <https://github.com/bitcoin/bitcoin/pull/5075>)

This one seems uselessly inefficient. Protocols needing OP_RETURN could just 
as easily look for an independent push opcode in a single OP_RETURN output.

>    2. Increase the default maximum payload size from 40 bytes to 80 bytes (
>    PR <https://github.com/bitcoin/bitcoin/pull/5286>)
>    Note that the maximum can be configured already through the
>    'datacarriersize' option - this is just changing the default.

I don't care strongly, but IMO this kind of focus on defaults is part of the 
problem. I'd prefer to have the default be randomised to incentivise miners to 
make the decision they're supposed to be making, rather than pushing the 
responsibility onto developers to set defaults.

>    3. Make the maximum OP_RETURN payload size proportional to the number of
>    outputs of the transaction

Right now, this policy requires code hacks. Of the three ideas, this one looks 
the most ripe for code changes (particularly one that makes it possible to 
configure this policy, not hardcoding it).

Luke




More information about the bitcoin-dev mailing list