RFC: OP_PUSHSTATE Draft Spec

Read the full draft specification on GitHub.

This is a request for comments on a draft specification for a new Bitcoin Cash opcode, OP_PUSHSTATE, which is now available on GitHub. This opcode would allow for significant size optimization to “covenant” transactions.

While transaction sizes are less important on BCH than on BTC, OP_PUSHSTATE saves around half the size of covenant transactions, reducing transactions fees (~0.1 cents USD per transaction), simplifying wallet implementations, and eliminating wasted block space from duplication.

For example, CashChannel transactions currently require ~900 bytes on average. With OP_PUSHSTATE, these transactions can be optimized to ~500 bytes, about the size of an equivalent multi-signature transaction.

I’d love to see this opcode deployed in the November 2020 BCH network upgrade. If you’re interested in contributing, please join the working group on Telegram or share your feedback on GitHub. You can also message me on Twitter.

Thanks!