Implementing Covenants with OP_CHECKSIGFROMSTACKVERIFY



Summary:

Russell O'Connor has detailed how it is possible to implement covenants using two script extensions: OP_CAT and OP_CHECKSIGFROMSTACKVERIFY. Both of these op codes are already available in the Elements Alpha sidechain, so it is possible to construct covenants in Elements Alpha today. The Moeser-Eyal-Sirer vault has been constructed as an example. It is possible to create an output that is spendable by everybody if a user ever double-spends the output with two different transactions. This is done by adding a case to the script which allows spending if two valid signatures on different message under the public key of the output are given. The same functionality can be achieved in a simpler way just using OP_CAT.


Updated on: 2023-06-11T20:31:28.083827+00:00