Du kannst diesen Artikel auch auf Deutsch lesen.
Bitcoin wallets have become increasingly straight-forward to use over the years. Sending and receiving Bitcoin has never been easier. Since the introduction of HD wallets, backups have become simpler to manage, but the issue of where and how to store your seed phrase has remained.
In the following article we’ll explore how Miniscript can be used for safer backups and show you how you can use Liana with the BitBox02 hardware wallet to create a timelocked backup for your wallet.
Storing your backups safely can be difficult
Most wallets will prompt the user to create a backup of your recovery phrase. This leaves you with one copy of the recovery phrase written down and one stored in the (hardware) wallet. This is generally enough for most people, as the chance of a wallet and a backup being destroyed at the same time is quite small.
But what if you have a wallet securing a lot of money and even the smallest chance of your funds becoming inaccessible is worth addressing?
Creating multiple backups would be one possible solution, but creating more backups and hiding them in different places in turn increases the likelihood of one of the backups being found. Even one of the backups being accessed without your knowledge would mean that your entire wallet is compromised and your money can be stolen.
Recovery keys
Using Bitcoin script, in particular Miniscript, you can create multiple backup keys (seeds) with different spending conditions. One of these conditions can be that they can only spend after a certain time.
You can, for example, create a time-locked “recovery key” that you can hand to friends, family or a company without worrying that they will steal your money. This key cannot spend your money unless a predefined amount of time has passed.
If you lose access to your primary key, all you need to do is to get your recovery key back and wait until the timelock is over. Once the timelock has been reached, you can use your recovery key to send the money to a new bitcoin wallet.
It is also possible to create multiple recovery keys that have different locktimes, enabling different trade-offs between trusting your backup location and its accessibility. (A friend holding a backup for your wallet might be very convenient, but also perhaps less trustworthy than family.)
Descriptors
A wallet descriptor is a small file or text string that describes the conditions of the wallet. It tells the wallet software for example what keys exist and under which conditions certain keys can spend. It is also necessary to derive the Bitcoin addresses that are part of the wallet.
wsh(or_d(pk(pubkey1),and_v(v:pk(pubkey2),older(52560))))
In complex wallets with multiple keys, this descriptor needs to be part of all of your backups. Without it, you won’t be able to restore your coins.
These descriptors also enable complex wallet structures that combine multi signature schemes with timelocked keys. The above diagram shows a family wallet that is both accessible by mother and father individually, but can be accessed by son and daughter together after a certain amount of time has passed. This can be arbitrarily expanded upon, adding for example another set of spending paths that make it possible for son and daughter to spend individually after a much longer time has passed.
Timelock refreshing
To make sure that the recovery key cannot spend the money in the wallet it’s necessary to “refresh” the coins before the timelock runs out. This is because the timelock of each key is tied to the date when the wallet received the coins.
To refresh your coins, all you have to do is to send a transaction to yourself, resetting the timelock put on the recovery key. Ideally, the wallet will warn you before your timelock runs out and make it easy to refresh your coins.
Because of these usability challenges, it is important to use a wallet that is secure to use and that simplifies the necessary steps, lowering the chance of user-error.
Liana
Developed by the wizards at Wizardsardine, Liana is a Bitcoin wallet that focuses on advanced recovery mechanisms and is compatible with the BitBox02 right from the start. It allows users to create wallets with time locked backups using Miniscript.
Liana shows how cold storage could work in the future and the possibilities to simplify your backups. It currently requires you to sync your own bitcoin node on your device, which can take a long time.
How to use Liana with your BitBox02
Installation
To use Liana, you first have to download it from their website.
Extract the .zip and run the “liana-gui” file or double-click the .exe if you are on Windows.
Click on “Install Liana on another network”.
Setting up a wallet
Select “Create a new wallet”.
Here you can choose what keys you want to use for the wallet and how to use them. Start by adding your primary path, which is the key that can always spend. By clicking on “Set”, you can decide if you want to use a key that is stored on your device or a key that is saved on a hardware wallet, such as a BitBox02.
To add your BitBox02 to the wallet, plug it in and unlock it using your device password. Make sure to have your BitBoxApp closed, as the BitBox02 only communicates with one app at a time. If you are using Liana for the first time, your BitBox02 will display a pairing code that you have to compare to the pairing code shown in Liana.
For the recovery paths, you can also decide if you want to use a software key or a hardware wallet. Once you have added your desired configuration you can edit the time lock of the recovery path via the “Edit” button and add different timelocks via the “Add a recovery path” button.
Click next if you are happy with your setup.
If you’ve used a software key, it will now give you the chance to write it down. It will also give you the chance to back up your descriptor. As mentioned above, you will need that descriptor to restore your wallet. It is not security relevant, but anyone with the descriptor can derive your bitcoin addresses and see your wallet balance.
If you use the BitBox02, it will let you register the descriptor on the device. This is important for security reasons.
Syncing a bitcoin node
In its current state, Liana requires you to sync a bitcoin node. Depending on your hardware and internet connection, this can take hours or even a couple of days. If you just want to play around with Liana, consider using the Bitcoin testnet as this only takes about an hour to sync.
Once your bitcoin node is synchronized, you will get access to your wallet, where you can show your bitcoin addresses to receive and send bitcoin transactions, just like in a regular wallet.
Using the wallet
Once you have received coins, the UI will remind you of when the first recovery path becomes available. This indicates when you have to do a refresh transaction to avoid the timelock of the recovery key running out.
If you want to spend via the primary key path, you can just use the normal “send” menu on the left side of the UI and use your primary key to sign the transaction.
Recovering your wallet
In case you lost access to your primary key and its backups, you can go to “settings” and choose “recovery” to send a transaction using one of your valid recovery keys. Liana will show you for which funds in your wallet the timelock has already run out.
Just enter a destination bitcoin address and a fee rate and sign the transaction with your recovery key!
Conclusion
Miniscript on the BitBox02 enables a host of new features that have the potential to change the way we backup our wallets. Tools like Liana masterfully combine timelocked spending paths with multiple signatures to let you create a wallet solution that is uniquely optimized for your use case.
As the BitBox02 was among the first hardware wallets with full support for Miniscript, we remain excited to see what the future for Miniscript holds and are sure the BitBox02 will be ready to make use of it.
Frequently Asked Questions (FAQ)
What is Miniscript?
Miniscript is a Bitcoin script language for building complex spending conditions.
How does Miniscript enhance wallet backup safety?
Miniscript allows the creation of multiple backup keys with specific spending conditions, like timelocks.
What is a wallet descriptor?
It is a file or string that outlines wallet conditions, necessary for restoring coins.
Why is timelock refreshing necessary?
To prevent recovery keys from spending prematurely, ensuring coins remain secure until intended.
What is Liana?
Liana is a Bitcoin wallet software focusing on advanced recovery mechanisms using Miniscript.
Is Liana compatible with BitBox02?
Yes, it is designed to be compatible with BitBox02 from the start.
Don’t own a BitBox yet?
Keeping your crypto secure doesn't have to be hard. The BitBox02 hardware wallet stores the private keys for your cryptocurrencies offline. So you can manage your coins safely.
The BitBox02 also comes in Bitcoin-only version, featuring a radically focused firmware: less code means less attack surface, which further improves your security when only storing Bitcoin.
Shift Crypto is a privately-held company based in Zurich, Switzerland. Our team of Bitcoin contributors, crypto experts, and security engineers builds products that enable customers to enjoy a stress-free journey from novice to mastery level of cryptocurrency management. The BitBox02, our second generation hardware wallet, lets users store, protect, and transact Bitcoin and other cryptocurrencies with ease - along with its software companion, the BitBoxApp.