Bitcoin is the first digital-only asset that cannot be duplicated, which is a concept that many people struggle to come to terms with; how can something that only exists as text on a database has value? Let alone be resistant to copying? One way to come to terms with this new form of wealth storage is to read up on how the bitcoin protocol works, how it remains decentralised and how the network enforces the same rules on everyone.
The other option is to take it for a test drive yourself by taking self-custody of your funds. To take self-custody, you would need to generate a seed phrase which you would use in conjunction with wallet software.
Once you have a wallet, you can start to receive bitcoin and later send it. Self-custody is part of the bitcoin safeguards and is fundamental to the bitcoin user experience. However, even with the improvements in software, education and hardware, many people still feel self-custody is a barrier they’re not willing to cross.
While self-custody maximalists will rally behind the mantra “Not your keys, not your coins,” some people prefer to take on the custodial third-party risk over self-custody because they simply aren’t comfortable with the technology and the pitfalls that come with making a mistake.
Bitcoin custody isn’t normie friendly.
Custody bitcoin is notoriously hazardous; people lose their keys, misspell their seed phrase, they input their seed phrase into internet-connected devices, they store their seed phrases as notes on cloud servers or as screenshots. The amount of ways normies can find to lose their bitcoin is endless, as people have yet to grasp the idea of digital value and security practices.
Expecting people to manage their bitcoin effectively is roughly equivalent to another task famous data management task, and that is maintaining online privacy and security. A task most people are awful at and continue to repeat the same mistakes out of laziness, ignorance or opting for convenience over security.
Luckily, bitcoin programmers understand that not every user will become a power user and that there will be a middle ground in different custody options. We already see one popular method in collaborative custody with multi-sig vaults and parent and child wallets.
Recently a new custody solution has been making the rounds, one using the programmability of Bitcoin script to create custodians who do not necessarily have to rely solely on the failure-prone task of key management of the individual, and it’s known as OP_VAULT.
What is an OP_VAULT?
Vaults are a technique for substantially reducing the risk of bitcoin theft; OP_VAULT aims to avoid the pitfalls of a general covenant proposal while still enabling the behaviour necessary for a featureful vault implementation.
The design assumes the deployment of package relay and ephemeral anchors for dynamic fee management but allows for future fee management approaches, e.g. transaction sponsors, should they come.
OP_VAULT uniquely allows for:
- Batching operations
- Partial unvaultings
- dynamic withdrawal targets
- Recursive deposits
OP_VAULT aims to be more flexible for end users by allowing them to create a vault with predefined transactions, have fee flexibility when they go to spend, enable them to batch easily, and do partial spends from their vaults.
The benefits of an OP_VAULT
If you find that your device holding a seed phrase is stolen, a copy of your seed is missing, or you’ve leaked your seed somewhere, it’s only a matter of time before the person can restore your wallet on a device and then move those funds to a wallet you cannot control. It is a race against time, and you have no oversight over how far the person is into the process of sweeping your funds.
How a vault could be used
A vault design would allow bitcoin custodians to benefit from a predetermined contestation period which allows for some breathing room for users to take action and as a recovery method with minimal overhead.
Some features that are crucial to this include:
- Efficient reuse of an existing vault configuration. A single vault scriptPubKey should be able to “receive” multiple deposits and still facilitate efficient administration of the vaulted coins. Batched operations for recovery and unvault should be supported to allow managing such a vault efficiently.
- Partial unvaultings, which would allow users to withdraw partial vault balances without having to perform the setup ceremony for a new vault.
- Dynamic unvault targets, or allowing the proposed withdrawal target for a vault to be specified at unvault time rather than when the vault is first created. This would remove the need for a statically-specified, intermediate live wallet during withdrawal that only exists to route unvaulted funds to their desired destination.
- Dynamic fee management that, like dynamic targets, defers the specification of fee rates and source of fees to unvault time rather than vault creation time. As we will see, no existing vault design meets this set of features.
The introduction of vaults
The concept of Vaults has been floating around the bitcoin forums for a few years now, emerging as a use case in 2016 for another bitcoin upgrade known as “Covenants” or Check Template Verify. Since then, developers like Oleg Andreev, Bryan Bishop, and Jeremy Rubin have proposed solutions that would enable vault implementations.
The latest version of vaults aims to achieve it without the need for covenants, which would provide the functionality via the already existing scripting language of bitcoin and available opcodes, which inherent trade-off between security, efficiency, and expressiveness.
Laying the foundation for vaults
This version of vaults could lay the foundation, eventually seeing covenants built vaults created in the future. If vaults require covenants to work safely, these upgrades would require a soft fork; it could be a while before we see an option like this explored on the base chain.
It’s worth noting that even though vaults might not see us on the primary bitcoin blockchain, they could be added to a sidechain like the Liquid Network, which does have support for covenants and could be the testing ground for users to try out in the wild.
While we all love to see new features added to the ecosystem to empower different users, these features have to be done methodically and tested for vulnerabilities, which can only be explored with time and letting others play around with it and try to break it.
If a version of vaults does make it to bitcoin, it could provide a significant failsafe option for users who are keen to try out self-custody. It would de-risk cold storage by allowing users to sweep funds to an address(es) they control in the event of a malicious actor attempting to move their funds by getting access to their private keys.
Making vaults, a powerful last-ditch tool should your wallet ever be compromised by poor operational security.
Do your own research.
If you want to learn more about OP_Vaults on bitcoin, use this article as a jumping-off point and don’t trust what we say as the final say. Take the time to research and check out the resources below.
Do you take self-custody of your stack?
If you’re new to bitcoin and have not ventured down the self-custody rabbit hole, what is stopping you? If you’re already self-sovereign, how has the experience been since you took hold of your funds? Let us know in the comments down below. We’re always keen to hear from bitcoiners from around the world.