What is a Bitcoin wallet?
July 13, 2019
If you’ve heard about Bitcoin you’ve probably heard about wallets. We’ve seen the Bitcoin address (public key) and private key notions in this article. We have also said that for privacy reasons multiple public and private keys should be used. But imagine if you would have to remember multiple series of digits and letters without any sense (the keys)? Things like this:
private: KyjSLZ4MoicT5aepCW4ccrM7tuGSp7JW4EaB1Mek7Wviy5sVqAk8 -> public: 1KzZANeoryVLoALM2e7ndeC21pTYjBueRM private: KxaaVF6Xr9y4Hqf3pCFQ6wALFveD4ypZbDaTc9DoJ1eQBuvgKtgf -> public: 1K1vMUvh5b19dtE9zAgBYRHJmwxkUMSDA4 private: Kwo2NNYYkrQ41cajTat8AibxBm9iTPZqikJ23wXtPdv2wbusETtg -> public: 18GpLuYSjykkAx7b1hu7tR23esSjMj8XjR ...
It wouldn’t be that great isn’t it? ⚠️ Do not use these adresses to receive Bitcoin payment as the private key has been disclosed!
In this article, we are going to cover the basics of what everyone should know about wallets to survive in Bitcoin and cryptocurrencies!
A wallet does a lot of things…
A wallet is an application. Some can run on your computer, your smartphone or even specialized devices (they are called “hardware wallets” and we will cover them later)! They most of the time do multiple things like:
- providing a UI (User Interface) for the user. It can be graphical (like on a computer or smartphone) but there are also command lines wallets for experimented users.
- managing your private and public keys. Need an address to receive a payment? The wallet will generate this for you!
- creating and signing transactions, i.e. sending money.
- Displaying the balance and the history of the transactions without having to care about which key is concerned by the transaction. Imagin that you have 0.1 BTC on one address, 0.2 on another, etc. The wallet will just abstract this and display the balance: 0.3 BTC.
Wallets are closer to a key-ring that an actual wallet. It’s an application that handles your keys!
We have already talked about one wallet application in this article. The Bitcoin Core application includes a wallet! Being a reference software, it’s safe to assume that it works well and is quite secure.
How do they work?
There are multiple types of wallets. Most wallets right now are Hierarchical Deterministic Wallets, or HD wallets for short.
Deterministic means that all the keys (private and public) that are handled by your wallet are generated from a seed. That seed is a number. For practical reasons and since the BIP-39 (BIP stands for “Bitcoin Improvement Proposal”. Bitcoin is a living thing, it gets improved over time!) this number can be represented as a mnemonic code: a sequence of English words.
Here is an example of a seed phrase taken from the bitcoin.it wiki:
witch collapse practice feed shame open despair creek road again ice least
⚠️ Don’t use this seed phrase for your personal wallet!
This seed format is useful for multiple reasons. You could in theory change your wallet software and still have the same seed. In this case, it would display your money as it was in the previous software!
Or you could, for example, lose your phone containing your seed. In this case, your money would be lost… That’s why you must ALWAYS write your seed down on a piece of paper that you would keep in a safe place. Why a piece of paper and not some text file on your computer? For security reasons. Computers often get compromised and seeds are things that are looked for in these computers. Someone stumbling upon your seed could just use it in their wallet application and move your funds to their wallet. You would lose everything!
How does my wallet create a transaction?
The wallet handles multiple keys. So let’s say you want to send 1 BTC to someone. Your wallet displays the balance: 1 BTC but under the hood, you may have 0.1 BTC on one public key, 0.7 BTC on another and 0.2 BTC to a third one. Your wallet won’t bother you with this kind of detail. It will just count the amount on each address you have and sum it to display the balance.
When you create a transaction the wallet will do as you would do if you were paying with cash! You would gather the necessary amount for the payment (more if you don’t have the exact amount) give it to the cashier and the cashier would hand you the change. The wallet does exactly that (minus the transaction fees) and it will send the change to another address generated by your wallet!
Different types of wallet
There are different types of wallets. If you want to understande the differences between these types of wallets, read this other article!
Choosing a wallet application to get started…
There are plenty of wallet softwares and it might be difficult to choose one! Here is my advice to chose a wallet and get started.
Chose an open-source wallet
You might not be from the tech world so I will explain what open-source is as simply as possible.
Applications you use on your computer or smartphone are computer programs that have been coded by developers. These developers create programs by typing lines of code. With open-source programs, you can read the line of code behind the program you are using. You don’t have to understand it or read it yourself but other people can do it. It means that if some malevolent programmer wants to add some lines of code to steal your coins then someone could see these lines and alert potential users that their coins are not safe.
That’s why I would only choose an open-source wallet.
Some websites offer online wallets. It means that they handle “your” keys for you. As I said in another article: not your keys, not your coins! I wouldn’t trust online wallets. If you really want to use them because it’s convenient (you just have to remember a login and password), use it only for small amounts! Sites get hacked every day. You don’t want to take the risk.
Wallets I recommend
I’ve tried Copay and I think it’s great for Android so I would recommend it as a wallet for your phone. However, I would only use it pour amounts like day to day payments.
If you plan to keep it on your coins on your computer, I recommend the reference software for Bitcoin that I spoke about earlier: Bitcoin Core. It can be used to create a full node but if you just want a wallet you can just disable downloading the whole blockchain.
If you have tried another wallet and think it’s great, just tell me on Twitter where I’m @vincentdnl!
Having a question or suggestion about the article?
Tell me on Twitter where I'm @vincentdnl!
Help others understand Bitcoin and cryptocurrencies by sharing this post!