Given OP_VER (0x62) was never used onchain, is disabled and is not considered useful can its meaning be stripped and it be made OP_SUCCESS for the purposes of introducing a new different opcode in future?

As Andrew Poelstra describes "..there was an opcode called OP_VER, OP version. I can see some grimaces. It would push the client version onto the stack. This meant that when you upgraded Bitcoin say from 0.1 to 0.2, that’s a hard fork. Now script will execute OP_VER and push 0.1 onto the stack for some people and 0.2 onto the stack for other people. You’ve forked your chain. Fortunately nobody ever used this opcode which is good. "

  • BIP342 does in fact turn it into an OP_SUCCESS. Is that a sufficient answer? – Pieter Wuille Jul 29 at 17:50
  • BIP 342 doesn't refer to 0x62 though...? Unless my BIP foo is off... – Michael Folkson Jul 29 at 18:12
  • 1
    Doh it is. I just can't convert from hex :/ – Michael Folkson Jul 29 at 18:19

Since it was set to an error by Satoshi and not a SUCCESS, this would be a hardfork for all clients in-between no matter if this was already used onchain before.

Just imagine a miner with the new software (which redefines VER as SUCCESS) mining a transaction containing such an OP. All the clients between 0.3.5 and the new one would refuse the block, while all the updated ones would accept it: chain split.

| improve this answer | |

BIP 342 does exactly this (Thanks Pieter)

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.