If you have been involved with crypto-currencies long enough, chances are that you are familiar with the adage "Not your keys, not your coins". Today's article will discuss some of the ways you can use to safely store your coins, and backups strategies that you can employ in case something goes wrong.
The presented (generic and relatively high level) solutions are food for thought for regular people without millions of dollars worth of holdings (lucky Bitcoin millionaires could make usage of more advanced and tailored strategies). You should have a thought about what is your use case of crypto-currencies, what you are comfortable doing, and then define what is right for you.
Type of Coin Storage
Before going into the various storage options at your disposal, let's introduce some general concepts. There are usually two types of crypto-currencies wallets:
- Hot Wallets are the most convenient ones. They are running on a computer or smartphone and connected to the Internet. Exchange platforms, online wallets, and software wallets are all hot wallets.
- Cold Wallets are the most secure ones because they are hardware devices storing the keys offline. This means that even if your systems are compromised, your coins are still safe. Trezor and paper wallets are examples of cold wallets.
Exchanges and Online Wallets
These are the most convenient options, and if you are new to crypto-currencies, chances are that this is what you are doing.
The good points of storing your coins on a custodian wallet are that:
- You don't need to worry about storing the keys, or running any software
- If you want to trade your coins, you don't need to send money to the exchange before that
However, giving total control of your coins to an exchange means that:
- The exchange could lock your funds for any reasons ("Hold on, we had a call from the IRS and they are not happy with your latest tax declaration")
- The exchange can see everything that you are doing
- There are multiple occurrences of big exchanges like Coinbase being temporarily unusable when Bitcoin's price abruptly falls
- Exchanges are routinely hacked, and sometimes, the executives go away with the money. Last August, USD 97 million were stolen from Liquid, one major exchange (see a list of hacks over the years here). Sometimes, customers are reimbursed after the hack, sometimes not.
In conclusion, storing your assets in exchanges is something that you should avoid if you want to keep your funds safe. Of course, if you only have very little holdings (a couple of hundred dollars), or if you do high-frequency trading (in which case you should still consider not keeping all your assets online), then it is probably still acceptable to store some of your funds online.
If you still choose to use custodian wallets to store your funds, do yourself a favour and use TOTP/Yubikey two-factor authentication rather than SMS. There are multiple cases of people's having their accounts hacked after SIM swapping attacks.
Software wallets are the next level after custodian storage solutions in terms of security. They offer total control of your coins, but "Great powers come with great responsibilities". If you fail to properly secure your machine and/or backup your seed, then you can lose everything without any possibility to recover the funds.
Within this category, there are two types of wallets:
- Full Nodes, such as Bitcoin Core will download all of the blockchain and re-validate every block
- Light Wallets, such as Electrum will rely on other servers to download the whole blockchain and to provide the latest transactions information
For most people, running a full node is very inconvenient, as it will require plenty of space for each coin that you own. Also, the initial synchronization is pretty long, and network/power consuming. Light wallets on the other side, are easy to set up, don't use a lot of system resources, and allow you to manage multiple coins on multiple platforms.
If you decide to set up a local wallet, you will have a lot of choices. If you are only interested in Bitcoin, Electrum (which allows creating multi-signature wallets for more security) is a recommended option. If you want to manage multiple coins and to use both computers and mobile devices, then you can consider options like Exodus (at least partially closed source, no third-party audit, as far as I know. Use at your own risk). For more options, you can look at the developer's website for the coin you want to hold (e.g., here for Ethereum)
When setting up a new wallet, I recommend that you:
- Choose a strong password to protect your wallet
- Set an auto-lock, to ensure your wallet doesn't stay unlocked for too long
- Make sure to backup your secret recovery phrase (not doing that can result in you losing all of your funds)
- Enable two-factor authentication if possible
- Don't store consequent funds on your smartphone, and consider using a dedicated device if you store decent sums of money
- Software wallets are not recommended for large holdings. I wouldn't store more than a few thousand dollars on these
Last but not least, hardware ledgers are the ones offering the most security, they will however usually cost you money, and be a bit less convenient than a software wallet that you can use at any time without needing anything else than your phone or computer.
There are two kinds of hardware ledgers. Non-electronic and electronic ones. The first kind includes things like paper wallets. They are simple and free to set up. In the end, you will have a piece of paper with one QR code for your private key, and one for your public key. The main downsides are that spending funds is not very user friendly, and paper is easily destroyed.
The second kind of hardware ledger is the one that interests us the most here. The most famous options are Trezor and Ledger. The way to use these devices is pretty simple. The first time they are powered, they generate a seed that you must make sure to backup. Then, you will set up a password to secure access to the devices (which will be wiped after a number of bad attempts), and they are ready to go. When plugged into your computer, you can use the software provided by the respective companies to see, send, exchange your assets, generate addresses and sign things. Even if your computer is compromised, your funds are safe. First, you never enter the password directly through the computer, second, for every operation you do, the ledger screen will display the addresses and sum involved, and you need to confirm them by pressing a button. Finally, all of the signatures are done on the ledger, so your computer never sees your seed or any private key.
My personal preference is the Trezor, for multiple reasons:
- I find the interface to be better, and you have a choice between a web UI or a standard program
- The Trezor allows you to set an extra password that will be used to derivate the keys. Meaning that even if someone found your seed, he would still need to know the password to access your coins
- It comes with various options such as GPG encryption, password manager, SSH keys management, Shamir Backup, ...
That being said, if you consider purchasing one of those, you should compare the different options they offer and decide what is best for you. The Ledger also have some advantages, such as the fact that it was audited by the ANSSI (National Cybersecurity Agency of France), and that it comes with Bluetooth.
If you have consequent holdings, it could be beneficial to diversify the hardware you use to store your coins (i.e., using material from multiple manufacturers). Also, note that at the end of the day, Hardware wallets are electronic devices plugged into your computer. They are generally considered safe, but it doesn't mean that there is no possibility for them to ever be hacked (even if there is no documented case as far as I know).
Backups are where things can become complicated, because you want to be sure to have the seeds readily available, yet, nobody should be able to get their hand on it and spend your hard-earned funds.
If you use a local wallet, things are relatively straightforward. Since your computer stores the keys and displays the seed when setting up the wallet, you could just get three USB sticks, create a Veracrypt container (which you want to secure with very strong passwords) on each of them, and write the key inside of it. Then you can keep one USB stick at your home in case of problem with your computer (to still be able to access your wallet), and the two other in trusted places. For example one at a relative's place, and one in a safe deposit box at your bank. You should never have all your backups at the same place. The reason is simple: if you have all your backups at home, and your home burns, then all the funds are gone.
Things get more complicated when you want to make a backup for a cold wallet since the whole point of it is that the key never enters your computer. From there, multiple strategies can be applied.
The YOLO Strategy
The "YOLO Strategy": you trust that your computer is not infected at the moment and that no temporary files or anything of the kind will be created if you edit a file text, and you use the three USB-sticks strategy previously stated. It might work, but it breaks the purpose of cold storage to some extent and I don't recommend it.
The Improved YOLO Strategy
A bit better strategy is to boot a computer using a system like Tails, and to use the same three-USB sticks backup strategy. The most paranoids of us will say that it is not good because electronics are involved, but this is a reasonable solution.
Analog Single Backup
You could use the papers provided with the ledger, write the key on it, hid one at home, and put the other one in a safe deposit box at a bank.
The problem with that is that if someone can get their hand on the seed paper, they can spend everything. It could happen if your house is robbed, or if your safe is seized, or accessed by corrupted bank personal.
One other issue is that paper is pretty easy to be destroyed. This can however easily be addressed by using steel plates or something similar to write down your seed.
The Shamir Strategy
Using the Shamir Backup, you can generate multiple shares of your seed, and put them with different people and places. For example, you could generate a 2-3 schemes, keep one at home, and put the two others in different deposit boxes in different banks. Using this scheme, only two shares are required, so if someone manages to steal one, or if one is lost, then you can still access your fund with the remaining two.
You can use up to 16 recovery shares, so it allows plenty of combinations depending on your trust model. For example, a 7-10 scheme would require an attacker to get his hands on 7 shares of the seed, while still allowing three to be lost.
Taking Advantage of Trezor's Password
Since the Trezor allows you to create a password that will be used on top of the seed, it offers a bit of safety since the seed being compromised alone is not enough to compromise your funds. In this case, you could just use the "Analog Single Backup Strategy" and keep the wallet password in your password manager.
Note that there are multiple strategy variations that can be employed. For example, you could leave some funds on a password-less wallet, and then have a BTC wallet with a password A, and an ETH wallet with a password B. You can use as many passwords as you want with the same Trezor/Seed.
Backup Extra Considerations
One thing that you want to consider when creating your backup strategy is what will become of the coins if something happens to you. Unlike banks, your funds will be absolutely impossible to recover without the proper keys.
To address that, you could look at the previous strategies, and think about how you can adapt them to allow funds to be recovered if something happens to you. You need to think about what you are comfortable doing, but one basic example could be to distribute Shamir Backup shares to people you trust and then to leave a list of people having a key with your attorney (after giving instruction to shares holders on where they should or should not give the share away and to whom).
Credits and Further Reading
- Shamir Backup
- Trezor Passphrase
- bitcoin.it wiki
- bitkey - a self-contained live cd/usb for airgap
- How should I store my bitcoin?
- SmartCustody: Simple Self-Custody Cold Storage Scenario