Published on: 2022-01-13T01:45:30+00:00
Bitcoin developer Jeremy Rubin has proposed the addition of two new transaction introspection opcodes in order to simplify future plans for more generalized covenant. The opcodes, named OP_PUSH_KEY_INTERNAL and OP_PUSH_KEY_EXTERNAL, would allow the retrieval of the taproot key for the current input. The internal key can already be included in the tree, but the external key creates a hash cycle and cannot be directly included. Rubin suggests that these opcodes could be beneficial for APO (Assuming Positive Outcome) and TLUV (Taproot Leaf Uses Version), as they would enable the retrieval of the current key from the stack. This would not only be useful for signing in a path for APO, but also for transactions contingent on HTLC (Hash Time Locked Contract) scriptcode satisfaction. However, there is a small incompatibility with BIP-118 (Bitcoin Improvement Proposal 118) regarding APO-enablement. Keys are not currently tagged for APO, so there should either be a version of the opcode specifically tagged for APO or APO should define a CheckSig2 opcode if tagging is desired. The proposal aims to create a more general approach by using the OP_PUSH_KEY opcodes, which could simplify APO and benefit future plans for more generalized covenant. While the use of the internal key is straightforward, the use of the external key may be less obvious. Nevertheless, it could prove helpful for recursive covenants in the future. It is important to note that both opcodes are very design specific, meaning there is only one choice of data that they can push.
Updated on: 2023-08-02T05:22:56.401137+00:00