OP_BEFOREBLOCKVERIFY - discussing and opcode that invalidates a spend path after a certain block



Summary:

On the Bitcoin-dev mailing list, a discussion was initiated by Billy Tetrud regarding an opcode called OP_BEFOREBLOCKVERIFY (OP_BBV). This opcode takes a block height number as a parameter and marks the transaction invalid if the current block is greater than or equal to that block height. The motivation behind this opcode is to enable switch-off kinds of transactions, such as reversible payments or expiring payments, which currently require multiple transactions but can be done in a single transaction using OP_BBV. However, there are concerns about the historical avoidance and stigma towards opcodes that can cause a valid transaction to become invalid. In response, Russell O'Connor remains unconvinced that Bitcoin should give up on the "reorg safety" property that is explicitly part of its design. He believes that some opcodes like OP_BBV are safe, and while mempool handling might create a DOS vector, reorg issues are not really a problem since people generally wait for 6 confirmations and software can warn the user to wait for 6 confirmations in relevant scenarios where a 6-block reorg might reverse the transaction. Tetrud's proposal raises questions about the tradeoffs and risks associated with OP_BBV, and he would like to hear others' thoughts on the matter. While the main discussion centers around OP_BBV, Tetrud also mentions that wallet vaults require other new opcodes, which he plans to discuss in a separate thread. Overall, the discussion aims to explore the feasibility and implications of introducing OP_BBV into Bitcoin's design.


Updated on: 2023-06-14T22:31:53.810135+00:00