Bitcoin Covenants Meaning
What Are Bitcoin Covenants?
When a traditional bank suspects a merchant’s account to be involved in illegal activities, the bank flags or places restrictions on the account. Well, Bitcoin covenants are somewhat comparable, but what are they exactly? Covenants are a proposed update to Bitcoin’s consensus rules introducing specific restrictions on Bitcoin transactions. The update would allow a script to restrict a spender from spending their Bitcoins on specific transactions. In other words, it limits where and how you can spend your Bitcoin after you have purchased it.
This upgrade is included in Bitcoin Improvement Proposal – 119 (BIP119), defining how Bitcoin can be improved in smart contracts. These contracts could prevent malicious actors from stealing users’ funds in the event of hacking. The proposal also aims to scale the network, minimize congestion, and facilitate trust-minimized loans, among other applications.
For example, a covenant may only allow Bitcoin transactions to a whitelisted set of scripts. Whitelisted scripts may include sending your Bitcoin to a specific address, returning that Bitcoin to the user’s own balance, or sending the BTC to a staging address (which allows you to send the BTC to any other address but only after some time).
How Do They Work?
In a standard Bitcoin transaction, locking scripts enforce conditions that mustbe met before the coins can be spent. Such conditions may include timelocks or denial of expenditure. Timelocks only allow you to spend the coins after a certain number of blocks is added to the blockchain, while denial of expenditure requires you to prove you have the private keys to the corresponding public keys by signing.
Bitcoin covenants take the conditions to be met a step further by limiting where and how you can spend the coins. The change features two key proposals – Check Template Verify (CTV) and CheckTXHashVerify
- Check Template Verify (CTV) – Hashes transaction data and compares it against the pre-calculated hash values in the covenant to verify whether the two match. This enables users to spend only pre-calculated transactions in the future.
- CheckTXHashVerify – Works similarly to CTV. However, rather than committing to a whole set of transaction data, CheckTXHashVerify can only commit to specific transaction data. This enables more flexible control over transactions.