I’ve been getting a lot of questions about bitcoin wallets lately, so I thought I’d do a quick post. One of the most common bitcoin wallets is provided by Coinbase. However, Coinbase isn’t just a wallet service, it’s also an exchange. So before I get into the details of a wallet, let’s do high level overview of Wallets vs Exchanges.
Wallets vs. Exchanges an overview
A wallet is used to access your crypto currency (e.g bitcoin). With a wallet you can use crypto currency globally, meaning you simply send or receive crypto currency to anyone, anywhere without foreign transaction fees. Wallets are designed to access the system and “read” payment information for ‘like’ currency e.g. bitcoin to bitcoin, litecoin to litecoin, Monero to Monero, etc. Currently you can’t send unlike currencies e.g. bitcoin to a different type e.g. litecoin. For each crypt currency you need a wallet and you can have more than one wallet for a single type. For example you can own 5 or 10 or a 1000 bitcoin wallets.
An Exchange provides you with a way to get standard currency like the US dollar in and out of crypto currencies (e.g. bitcoin). With an exchange you can buy x dollars of worth of bitcoin, which is then “transferred” or “loaded” to a wallet. I’m using quotes here to denote that it’s not physically in your wallet but we’ll talk more about that later. Unless you plan to buy your bitcoin from an individual you will need to use an exchange. To buy from an individual, you would pay them some money for the current number (or fractional number) equivalent in bitcoin. In essence, you would hand them the physical money (or send from paypal, etc) and they would use their wallet to send you some bitcoin to your wallet’s address. Thus at a minimum each of you will need a wallet.
Wallets come in a several fashions. There’s cold wallets, mobile wallets, hardware wallets, wet wallets, and online wallets that double as exchanges. I’ll break each of them down in a few minutes. The main thing to understand is that all wallets work on a public/private key architecture. This is the same type of system that makes the internet traffic secure by encrypting the traffic. It works like this: a public key is used to encrypt the data and transmit it securely, your private key is then used to access that information (in this case your bitcoin).
Your wallet is a secure way to store the private keys needed to access your bitcoin. Only the private key gives you access to your funds. This is important. It means you need to be very careful how you store your private key. If anyone has access to your private key, they have access to your funds. Think of it this way: It’s as if they made a duplicate of your ATM card and pin. This is regardless of what type of wallet you use.
Bitcoin isn’t actually stored in your wallet
The main thing to wrap your head around is that your bitcoin isn’t actually stored on the wallet. Your “wallet” is just a way to access your money. And if someone knows your private key, they can transfer (steal) your bitcoin. If you feel that your wallet is ever compromised then you should quickly create a new one and transfer your funds to the new one as soon as possible. If you ever lose your wallet, you’ve lost all your money; there’s no central authority out there that can help you recover your private key. Even if you think you’re wallet is ever compromised, it’s still advised that you DON’T DELETE YOUR WALLET. Remember if you give out your public address, someone may still send you money via that address and if you delete your wallet (e.g. private key) then you have no way to access it. In this case you should know that it’s been compromised and don’t use it.
This is essentially what happened to several people who “mined” bitcoin when it was just something to do for fun. At the time they didn’t think it would go anywhere and at some point many of them forgot about it. They got new computers, reformatted hard drives to reinstall their OS or in some cases they simply threw the drives away. In all cases they no longer had access to their wallets and “lost” access to their money. The money is technically out there listed in the block chain, but they have now way of accessing it due to the nature of the block chain security.
To better understand what it’s in your wallet see the image below. This is an actual wallet (BUT DON’T USE IT). I’m posting this here, so everyone will know the private key, which means everyone will have access to this wallet. So unless you want to give money away, don’t use this wallet. I generated this wallet from https://www.bitaddress.org. It’s a fun tool and I suggest you check it out.
If it’s not in my wallet, where’s my bitcoin stored?
Your bitcoin along with everyone else’s bitcoin is stored up in the “cloud” as part of the block chain. A record of all your transactions are stored in this block chain (think of an accountants ledger). When you send or receive bitcoin, a ledger entry is created logging the credit or deficit of the amount as well as where it came from, who it’s going to along with a private key used to sign the transactions. The signature keeps the transaction from being altered.. The block chain (ledger) is shared publicly keeping track of all the transactions. The block chain is stored in several places making sure the transactions are always available. It’s what’s referred to as a decentralized system as opposed to a centralized system like your bank. When the transactions are sent, they are broadcasted to nodes that package up the transactions into groups, which are then confirmed by a process called “mining”.
The mining process is used to confirm whether or not the transaction is real. This process for bitcoin usually takes about 10 minutes however as you may have seen, heard or experienced this has been actually taking longer lately. There are several reasons for this which I plan to cover in another post later, but the main reason for it now is due to bitcoins growth in popularity.
To understand the basic idea of bitcoin and block chain I’ll give you the abstract directly from bitcoin’s initial proposal.
A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they’ll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.
Type of wallets
As mentioned above there are several types of wallets, which translates to where and how your public & private keys are stored. We already saw an example of a paper wallet listed above but we’ll go into a little more detail here. The list of wallets changes pretty regularly, so instead of listing which wallets are available, I’m just going to give you an overview of the types. For an up to date list, I’d suggest going to bitcoin.org (https://bitcoin.org/en/wallets).
Wallet types range based on your needs. Do you want it super secure? Do you need access to it on the go? Based on that information you decide which type you want. Keep in mind you can always change your wallet and then transfer your crypto currency from one type to another. The down side is there is some sort of small fee for this transfer. Remember: All block chain transactions have to be “mined” which is computing cost to someone. The mining process which validates all the transaction is a small price to pay to keep the system safe and secure.
If you’ve ever installed the original bitcoin client (Bitcoin Core) not only can you help keep bitcoin decentralized (by running a node) but you also have a desktop client. This is probably the most feature rich desktop wallet. This type simply runs on your desktop of your operating system of choice (windows, mac, linux). Your private key is stored locally on your machine so be sure to make a backup of it. Most recommend printing a hard copy that you keep in a safe as well as an electronic version (in a text or html file) that you store on a USB stick and also keep it in a safe. It’s unwise to store it up on a cloud drive somewhere. If your account gets hacked then someone will have your private key.
Mobile wallets aka Hot wallets
For those on the go, which is most of us, you will probably want a mobile wallet. These are wallets that run natively on your smartphone. Be sure to do your research on the companies and the smartphone app. MyEtherWallet was the #3 download on the apples store and had nothing to do with the actual MyEtherWallet.com site. It’s best to find the site you trust and use their links to download the app. This type of wallet also stores the private key on your device so be sure to keep a backup. It is important to note that some mobile wallets are also considered Online wallets. In that case your keys are typically stored up on their servers. See online wallets (next) for more information.
This is just as you’d expect. Your private key is stored online in someone else’s system. It’s important to research and review the company your storing your private key with. Some online companies do not have access to your key (which is good). It’s encrypted by you with your password (so don’t lose your password). Other online systems have a less than secure approach. I would personally avoid those or at least store as little bitcoin as possible with those wallets.
These wallets are probably the least secure and most vulnerable so don’t keep a lot of money on them. They are extremely popular because they are extremely easy to use.
There’s only a few hardware wallets on the market. They are small devices that store your private keys digitally. Most are about the size of a keychain. Often they will have some sort of 2 factor authentication for better security. They are extremely secure but again make sure you have a backup of your private key somewhere in case you lose the device. One other caveat, unlike all the other wallets they cost money. At this time the cheapest one is around $70.00 and they can go up to several hundred. If you really get into bit coin, you should probably invest in one. I’ll take a deeper dive into the different models and reviews in a later post.
Here’s some from Amazon. I couldn’t find the anything below the $150.00 range.
The concept of a paper wallet is pretty straight forward (see the image sample earlier in this post). They simply store your private key & public key on paper, which is associated to your transactions which translates to your balance. Receiving money (see more later in this post) is used the same way as the others, you simply give out your public key. However spending the money is a little more tricky. You should treat a paper wallet like piggy bank that only has a entry slot (without a hole and a rubber stopper on the bottom). You can add money any time but when you want to remove it, you’ll have to bust it open and never use it again (you simply get another one). Essentially you should send what you want to the main recipient and send the rest to a new paper wallet. This is the most secure way of completing the transaction. This process is tedious but it’s also very secure.
Wet wallet / Brain wallet
This key is stored in your brain. You can use a long phrase to generate a bitcoin Public & Private key. If you forget your pass phrase, you are total screwed, so keep it in a safe place (but then it’s not really wet anymore). For more information visit bitaddress.org
So fare we’ve talked about spending money and loading (or unloading) a wallet from an exchange. However wouldn’t it be nice to receive money from friends, family members or businesses? Merry Christmas or Happy Birthday son, here’s $50 in your bitcoin account. Yay! In order to receive money, you give out the public key to anyone who wants to send you some money. You can use the Public Key string or a QR code.
Let’s say you were feeling generous and wanted to send me some money. You could open your wallet software and paste this Public Key address in: 1Bx5g1KcMBpMwkHfXPd73iMbgEUSGaWdqY enter the amount and then send / or confirm the transaction. That’s it, you’ve just sent me some money. Thx!!
Since long numbers can be a pain to deal with you can also use your software to scan in a qr code (assuming you have a camera – which is why using your phone is very convenient). The qr code that represents this number is the image below. To send using the QR code, open your wallet app, chose the send option or click on the paper plane icon (in the coinbase app), enter the amount, click send. The next screen wil have a “to” field. You can enter an account, email address or click the QR icon. Using the QR code option, it will want to use your camera. Click ok. Use the camera to focus on the QR code, type in the amount. Then click send (or confirm, etc). If you want to test it out, feel free to use this QR code and send me some bitcoin! 🙂
NOTE: at the time of this writing. The network fee (transaction fee) is pretty high. It’s around $35 per transaction on coinbase. I would avoid sending me any money due to the high transaction fees. For example if you wanted to send me $1, it would cost you $36 ($1 + $35 in transaction fees – yikes). Always double check the transaction fee amount before sending! You can avoid the transaction fees on coinbase by send bitcoin via an email address of someone else also on the coinbase system. If you have friends or family members on coinbase that’s a good option. Using an email address keeps the transaction “in-house” vs. going out on the blockchain network. See the FAQ for more details Coinbase Transaction Fees FAQ
Creating a bitcoin wallet
Earlier in this post I mentioned creating a paper wallet using https://www.bitaddress.org.
If you want to create an easy to use online wallet that has a mobile app, I’d suggest getting your feet wet by signing up for a coinbase account. It’s the easiest way to get started. Get an extra $10 added to your account (when depositing $100 or more) by using the following link (Coinbase.com – get extra $10). Since coinbase is also an exchange you can add money via your bank, creditcard or wire transfer. Once you sign up you can get the same deal for your friends, family etc.
This was a lot of information thrown at once. Take some time to digest it. I plan to do other post that take a deeper dive into wallets, block chain, nodes, mining, etc. If there’s something specific you want to see just let me know.