TAPLEAF_UPDATE_VERIFY covenant opcode



Summary:

Bitcoin developers have proposed two new methods to improve the functionality and efficiency of transactions using Taproot scripts. The first proposal involves updating a UTXO by changing the taproot tree using a new opcode called "TAPLEAF_UPDATE_VERIFY." This enables the creation of more complex covenants that limit hot wallet withdrawals, protect funds with both hot and cold wallet keys, and verify that funds are being appropriately retained in the updated scriptPubKey. The design of the first proposal limits the hot wallet to withdrawing at most L satoshis every D blocks, protecting funds from theft while allowing for re-securing the funds and preventing further losses. The two-phase protocol for spending ensures that the hot wallet is used to allow spending up to L satoshis before actually spending funds.The second proposal allows for more efficient and private one-in, one-out transactions within a pooled fund represented by a UTXO. However, this method requires everyone in the pool to be online to sign via the key path, which can limit the number of people who can reasonably be included in a pool before there's a breakdown. This enables joint funding of ventures, where participants put BTC into a pooled UTXO, ready to finalize the purchase of land while having the ability to reclaim their funds if the deal falls through.Despite these advantages, both proposals have limitations. The first proposal cannot tweak scripts in areas of the merkle tree that it cannot see, while the second proposal requires all members of the pool to be online to sign via the key path. Bitcoin developer AJ Towns believes that these limitations could be simulated with CAT and CHECKSIGFROMSTACK but introducing dedicated opcodes for this functionality would make the feature easier to use correctly and cheap and efficient for both wallets and nodes to validate.


Updated on: 2023-05-21T03:46:05.305559+00:00