- How do I store Bitcoin?
- You need to get a cryptocurrency wallet
- How do I do it?
- Listen up!
It's weird, but these kinds of questions don't get answered in too much detail on the internet. Even if you type in "Bitcoin wallet comparison" you get some stupid websites i.e. "20+ Best Bitcoin Wallets to Store your Bitcoins in" with some really weird comparison criteria and an ad for 1 of them.
I already mentioned Jaxx in my post about how to buy cryptocurrencies. It supports tons of coins (BTC, ETH, DASH, ETC, REP, LTC, ZEC, RSK, DGE, ICN, GNT, GNO, DGD, BCAP) and will be perfect if you are just starting to get into crypto and won't be investing huge amounts of money in it.
But if you are, let's take it step by step.
What kind of keys exists for wallets?
Let's use a Bitcoin Wallet as an example. It has:
A Private key. This is a randomly generated 256-bit number usually written down in a hexadecimal format, for example:
Public key. This is generated from a private key (in order to do it a computer solves a cryptographic elliptic equation). This is a 512-bit number which is normally written down in the hexadecimal format. For example:
Address. The address is generated from a public key with the help of the hashing function. It normally consists of 27-34 Latin letters and numbers. Some people forget that it can vary in length, so keep that in mind. An example of an address is:
As you may guess, you can easily get a public key and an address if you know the private key. However, it doesn't work backwards. So, if you know the address - you won't be able to get a public key and don't even dream about getting the private key.
Below is a diagram of how an address is generated from a private key. In addition to that, you can try to generate an address firsthand. This website generates the address from a private key whilst allowing you to look at all the intermediate values.
#1 Never show your private key to anybody. If someone knows your private key they can easily access your wallet and transfer (steal) all your Bitcoins.
#2 Important, but not very obvious. You can generate your private key yourself. In order to do that - take a coin (a physical coin), flip it 256 times, write down all the 1s and 0s instead of heads and tails, format it into a hexadecimal format and you are done!
#3 What if someone generates the same private key as me?! You are right. Someone can generate the same private key as you. However, the chances of that happening are extremely extremely low. That's the beauty of LARGE numbers. Don't trust me? Read this and this. There's also this cool picture which explains it very well. So, the only way for you to get a private key which matches someone else's is a glitch in a random number generator (when it doesn't return random numbers).
Let's look at the https://www.bitaddress.org website. It generates a private key and an address. The button "generate new address" generates a new pair. The beauty of it is that the pair you are seeing on the screen now has never been shown to anyone ever! You can generate a hundred or even a thousand different pairs and no one would've seen them before! You can literally Google the private key to check.
So, what is an actual wallet? A wallet is a file which stores your public and private keys. A wallet can have multiple private-public pairs and therefore multiple addresses.
You might have noticed that for each Bitcoin wallet you can get many different addresses. Some people even recommend using a new address for each new transaction.
You can also set a password for your wallet and it is highly recommended that you do so.
Cold vs Hot wallets.
There are many different types of wallets:
- Light vs. Heavy
- Cold vs. Hot
- Paper wallets
- Hardware wallets
- Web wallets
- Exchange wallets
Let's talk more about each of these because different websites' definitions of each type tend to vary. For example, some say that the official Bitcoin wallet, "Bitcoin Core", is a cold wallet whereas others claim that a cold wallet is a txt file on an air-gapped computer.
Light vs. Heavy
The original idea of blockchain envisioned people storing the whole blockchain on their computer (this is called a node). At the very early days of Bitcoin, this was exactly what was happening. To paraphrase a popular computing magazine:
Don't trust anyone.
Bitcoin database and blockchain does not have any centralised governing body. It is open to anyone who is connected to the Bitcoin network and the whole database is stored on everyone's computer. No one is responsible for the inviolability of data as it is enforced by the network's architecture. Blockchain exists in many different copies and in order to change any record you will need to access at least 50.1% of all computers where the blockchain is stored. This task is practically impossible for any criminal, no matter how determined they are. Blockchain - is a distributed ledger (database) technology and the number of copies of each database has now reached thousands.
A heavy wallet is the one which has the whole blockchain downloaded together with the wallet. This type of wallet can independently make a transaction and check that your friend really has 1 BTC in their wallet by checking their address.
Light wallets, in contrast, don't download and store the whole blockchain. They make a request to their servers instead. For example, Electrum, a light Bitcoin Wallet, has special servers which index the whole blockchain by making a secure, SSL protected, request to 10 random servers.
Jaxx, the client we mentioned before, is also a light wallet.
It is considered, that Heavy Wallets which have the whole blockchain downloaded are more secure!
Their main disadvantage - their size. If you try to download the whole blockchain it'll currently take around 148GB on your computer. Your only alternative is to trust the servers of light wallets.
Web wallet stores your private key itself and you login into the wallet with your login and password (+2 step authentication). Of course, all web wallets will tell you that everything is super duper secure. But how true is it?
In my eyes, this is a very risky way of storing cryptocurrencies. You are trusting your private key to some third-party web service. Even if their intentions are good - what if they get hacked?
One of the most known web wallets is BitGo. Yes, everyone recommends it and yes, it is also mentioned on the bitcoin.org website:
Even so, I'm personally a bit worried about storing my money there.
Cold vs. Hot Wallets
Every wallet mentioned above is a hot wallet. Why? Because each one of them has access to the Internet, so theoretically speaking your private key can be stolen if you will go to some shady websites and start clicking on some shady links.
Cold wallets are protected from that as they have no access to the internet. How does that work? You can sign a transaction on your air-gapped computer, copy the transaction text to a USB, plug the USB into a computer which is connected to the Internet and send the transaction to the blockchain.
Sounds hard? It is actually pretty straightforward. Read this guide here about how to create an Electrum wallet on two computers. First one will not be connected to the web and will store your private key and the second one will be online, but won't store private key.
Go to https://www.bitaddress.org or any other service for key generation and create your keys. Write down your private key and address to a txt-file and save it on 3 different flash drives. Encrypt them. Dig a hole in your yard and put the first flash drive there. Open a bank cell and put the second drive there. The third one you can carry around in your pocket.
Afraid that bitaddress.org will save your private key? Fair enough. You can use the good old Electrum to generate the keys for you.
What to do if you are super paranoid? Flip a coin 256 times and write down all the 1s and 0s instead of head and tails. Install the hashing program on your air-gapped computer to generate a public key and an address. Then save the private key on the flash drive and put it in that hole in your yard you've dug.
Don't trust flash drives? Then print your key! But be careful, maybe someone will look at the key whilst you are printing it...
You can create a wallet for almost any cryptocurrency on an exchange in one second. You won't have access to your private keys or to any keys in that matter. You will only have an address. Why would you use it? Literally, the only use I see is to deposit money into it, buy whatever cryptocurrency you want and quickly send whatever you bought to your own wallet.
I highly recommend not storing anything on an exchange.
To quote Andreas Antonopoulos: "How can I trust my money to a startup of 6 people which was created 3 months ago?". By the way, he's a cool dude. If you are into crypto, I'd subscribe to him: https://www.youtube.com/user/aantonop/featured
Simply put, a hardware wallet is a USB which acts as an offline computer with your private key. You can use these types of wallets not just for Bitcoin, but also for other popular cryptocurrencies. To be honest, this might be the best way of storing your Bitcoins. If you connect it to your computer it won't be able to connect to the Internet due to a sophisticated level of protection. Or, if someone physically steals it from you - they won't be able to access it due to a pin code on the wallet.
But. (There is always a but). A hardware wallet has a recovery process if the wallet breaks down or you lose it. In order to restore it, it generates a random list of words. For example:
constant forest adore false green weave stop guy fur freeze giggle clock sympathy hot whoever will read this email me for huge discount red block pill
You even get a special piece of paper in the box of your wallet to write down your recovery phrase.
So. If someone gets access to that phrase they can easily get access to all your cryptos. Or, if you break your wallet and lose the recovery phrase - say goodbye to your money.
You can technically tattoo the words somewhere, but again, someone can just look at them...
If this is the wallet option you want to go for, these are the three main market leaders:
Omg, there is so much info here!!! What do I do?
Let's suppose you want to live that crypto lifestyle.
1. Your savings (car, mortgage, children's tuition) should be held on the maximum security wallet. Your options are:
- Hardware Wallet
- Air-gapped computer
- Encrypted USB
I'm not going to give any links in this part of the post because I spent days writing this and I want you to go out and learn it for yourself. You'll thank me later.
2. For medium-sized transactions like payments to your friends/family/employees, vacations, payments for your mining farm, etc; should ideally be done from your local wallet. If you have decent Internet and 150GB of storage - Bitcoin Core is the one I'd recommend. If not, use a light wallet like Electrum. When you download the file, make sure to check the checksum (What is it?)
3. For everyday expenses like SPA, restaurant, supermarket you can use a web wallet. Check out BitGo and Blockchain.info. You can also use a light wallet on your phone! Check out Mycelium, Airbitz, Bread.
P.S. If you are still confused - I'm always available on Twitter to answer your questions.