Want to better understand the basics of Bitcoin and Ethereum? Check out our introductory post here.
Bitcoin is a new kind of money that is different from what most people know and use daily. For example, bitcoins exist entirely in digital form, and the Bitcoin network operates exclusively as a decentralized peer-to-peer network. No single institution controls the Bitcoin network; the Bitcoin network is a distributed network of nodes that collectively manages all its transactions and the issuance of new bitcoins.
This drastic departure from conventional financial systems — wherein the control and management of financial networks, policies, and currencies rest solely with nation-states and their central banks — has arguably led to much confusion and uncertainty among those seeking to dip their toes into Bitcoin for the first time. In particular, much of this confusion and uncertainty revolves around how — and how best — to store their bitcoins.
This article therefore delves into the different methods of storing bitcoins, with the goal of helping the Bitcoin beginner make an informed decision regarding how best to store their bitcoins, according to their needs. In doing so, we will look at bitcoin wallets — what they are and how they work — before proceeding to discuss the various types of bitcoin wallets and their respective advantages and disadvantages. We will then conclude with some factors to consider when deciding which type of bitcoin wallet to use.
Bitcoin Wallets: What They Are and How They Work
A bitcoin wallet is a tool that stores and manages the private keys used to access Bitcoin addresses to allow its user to spend and receive bitcoins.
Notice here that a bitcoin wallet does not store any bitcoins per se, but the cryptographic keys needed to access the wallet’s addresses and to sign transactions made from the wallet. This is because there are no actual bitcoins stored in the Bitcoin blockchain, but instead a growing database of transaction information that consists of transaction records and address balances. So, for example, if Alice sends 1 BTC to Bob, a new transaction is created that subtracts 1 BTC from Alice’s wallet balance and adds 1 BTC to Bob’s wallet balance. There are no actual bitcoins moving from Alice’s wallet to Bob’s wallet. The transaction becomes confirmed as valid when a miner, after verifying that Alice indeed had 1 BTC to send to Bob, adds the transaction to the Bitcoin blockchain in a new block.
Types of Bitcoin Wallets
Bitcoin wallets can be generally classified into four types: full-node wallets, lightweight wallets, web wallets, and hardware wallets. Each type of wallet offers its own distinct set of features, which in turn has its own set of advantages and disadvantages.
A full-node wallet holds a copy of the entire Bitcoin blockchain and is designed to verify each and every transaction it makes and receives against its copy of the blockchain. A full-node wallet also independently verifies its copy of the blockchain against its hardcoded set of Bitcoin’s consensus rules to ensure that its copy of the blockchain is valid according to those rules. As a result, a full-node wallet will only make and accept transactions that fully comply with all of the current consensus rules of the Bitcoin network.
In addition to providing wallet features, full nodes also form the backbone of the Bitcoin network. Full nodes, by default, broadcast new transactions from users to miners for the miners to verify and add to the Bitcoin blockchain. Full nodes then relay new blocks of verified transactions from miners to other full nodes, keeping Bitcoin’s distributed ledger of transactions up-to-date across the entire Bitcoin network.
A full-node wallet offers the best possible security against negligent or dishonest miners, the best possible privacy when sending and receiving bitcoins, and helps to protect Bitcoin’s decentralization.
Because a full-node wallet ensures that every transaction and block it accepts is valid, a full-node wallet offers the best possible protection against negligent or dishonest miners. By checking each block of transactions it receives to ensure that everything in that block is fully valid, a full-node wallet allows its user to trust the block without trusting the miner who created it. This prevents a full-node wallet user from being tricked into accepting blocks and transactions that violate Bitcoin’s consensus rules, which in turn protects the user from being a victim of invalid blockchains and fabricated transactions.
For example, in July 2015, several large miners accidentally produced an invalid blockchain that was several blocks longer than the valid blockchain. Wallets that did not fully validate transactions, such as lightweight wallets, were temporarily led into accepting these invalid blocks and transactions, putting their users’ bitcoins at risk. Users of full-node wallets were unaffected, as they correctly rejected the invalid blockchain. If not for the miners’ desire to remain compatible with the correct blockchain — they gave up more than $37,500 of mining income at the time to do so — the Bitcoin network could have split into two, and users of lightweight wallets would have continued following the miners’ longer blockchain.
A real-world example concerning fabricated transactions took place on August 4, 2015. At the time, web-wallet provider Blockchain indicated that a transaction had spent the first 250 bitcoins in existence. Some at the time believed that these 250 bitcoins belonged to Bitcoin creator Satoshi Nakamoto. It was later discovered that the transaction was actually a spoof transaction created by a security researcher, and that Blockchain was not fully validating all of its transactions.
A full-node wallet offers perfect privacy when receiving bitcoins and strong privacy when sending bitcoins.
Perfect privacy when receiving bitcoins
There are currently more than 254 million transactions in the Bitcoin blockchain. How, then, do you identify the transactions that pay you?
If you rely on a web wallet to identify them for you, the web-wallet provider would be able to know which transactions are yours. Furthermore, because most web-wallet providers collect personally identifiable information from you when you sign up, they will be able to link any and all transactions made from that web wallet back to you.
Similarly, although standalone lightweight wallets do not collect and store any personally identifiable information, such wallets still offer only marginally better privacy than third-party web wallets. This is because a lightweight wallet, by virtue of not having its own copy of the Bitcoin blockchain, has to query third-party servers or full nodes to ask for payments related to its own addresses. These third-party servers and full nodes would then be aware of which addresses belong to that lightweight wallet, and would be able to link transactions back to that wallet.
A full-node wallet, on the other hand, downloads all 254 million transactions and processes them to find out which ones pay you. This offers the best possible privacy when receiving bitcoins, because a full-node wallet does not collect and store personally identifiable information, nor does it query any third party to identify which transactions pay you.
Strong privacy when sending bitcoins
A full-node wallet, by default, relays other users’ transactions to all its peers on the Bitcoin network. This is in addition to any transaction that you make from the full-node wallet, therefore helping to obscure the origin of your transaction. In other words, because your transaction is relayed from your full-node wallet in addition to thousands of other transactions, it becomes extremely difficult to pinpoint exactly where your transaction originated from.
Helps protect Bitcoin’s decentralization
Bitcoin currently works and has value because its users acknowledge that Bitcoin has value, and therefore ascribes value to Bitcoin by trading bitcoins in exchange for other valuable things. It is therefore Bitcoin’s users who decides how Bitcoin works.
Since a full node independently enforces all of Bitcoin’s consensus rules no matter what, using a full-node wallet for all of your transactions means that you would be playing a crucial part in keeping the power of enforcing Bitcoin’s consensus rules from being too concentrated in any one entity. And if there is a significant number of users who rely on full-node wallets for all of their economic activity, malicious actors would have much less of an incentive to strong-arm Bitcoin’s consensus rules in their favor, since they would stand to lose a lot money in doing so.
A full-node wallet — though it provides vastly superior security, privacy, and decentralization compared to web and lightweight wallets — does come with certain costs. These costs consist of higher minimum system requirements and greater responsibility for the security of the bitcoins in the full-node wallet.
Higher minimum system requirements
Because a full-node wallet stores the entire Bitcoin blockchain, your wallet’s computer has to meet higher storage requirements. The current minimum recommended amount of available disk space is 145 GB. Note that the blockchain is constantly growing in size at a rate of approximately 144 MB per day.
The other significant cost to consider is bandwidth, especially if your internet plan is subject to data caps. Running a full node is expected to consume approximately 5 GB per day in upload data and approximately 500 MB per day in download data. This is in addition to the one-time download of the Bitcoin blockchain (currently around 140 GB) when you start your full node for the first time.
Using a full-node wallet means that you, and only you, have access to and control over your wallet’s private keys. While this means greater security in that a third party — e.g., a web-wallet provider — does not have access to and control over your bitcoins, this also means that you alone are responsible for the safety of your bitcoins. If you lose your wallet’s private keys, you lose your bitcoins, and no one would be able to recover them for you.
It is therefore strongly recommended that you regularly make backups of your wallet, and that you encrypt these backups and store them in multiple safe locations. This allows you to recover your wallet in the event of loss or theft, while at the same time protecting it from unauthorized access.
You should also encrypt the wallet itself — not just the backups — with a strong, easy-to-remember, and yet hard-to-guess passphrase to help protect your bitcoins against unauthorized access. Note, however, that this does not protect your bitcoins against keyloggers and other bitcoin-stealing malware. You should therefore ensure that your wallet and your computer is always kept up-to-date, and that your computer is kept free from malware.
Recommended full-node wallets include Bitcoin Core, Bitcoin Knots, and Armory.back to menu ↑
A lightweight wallet is like a full-node wallet — in that they both give the user full control over their wallet’s private keys — but with one key difference: a lightweight wallet does not download and store the entire Bitcoin blockchain.
This is because a lightweight wallet relies on a method called Simplified Payment Verification (SPV) for identifying which transactions belong to the wallet. SPV involves downloading only the headers of blocks to determine which blockchain to follow — SPV clients will always choose to follow the longest blockchain — and then requesting transactions from full nodes as needed.
Lightweight wallets have lower storage and bandwidth requirements, and therefore offer greater portability.
Lower storage and bandwidth requirements
A block header is only 80 bytes in size, regardless of the total size of its corresponding block. This means that at the current block height — 485,530 at the time of writing — a lightweight wallet would only have to download and store around 38.8 MB of data. With the current average rate of one new block every ten minutes, a lightweight wallet’s storage requirements would grow at only around 4.2 MB per year.
A full node, on the other hand, would have to download and store around 140 GB of data when started up for the first time. A full node’s storage requirements would then have to keep up with the growth of the blockchain itself, which currently translates to about 52.6 GB per year.
Obviously, more modest storage and bandwidth requirements mean that a lightweight wallet can easily run on a smartphone. Even if a smartphone did have enough storage capacity to hold the entire blockchain for a full-node wallet, it would still be highly impractical — not to mention downright expensive — to have to download 140 GB of data over a cellular connection.
Lightweight wallets are more vulnerable to certain attacks against the Bitcoin network, and offers less privacy compared to full-node wallets.
Greater vulnerability to certain attacks against the Bitcoin network
Because a lightweight wallet does not verify the blockchain for itself, and instead relies on other full nodes for this, a lightweight wallet can be fooled into believing that a real and valid transaction did not exist. This is because a full node can simply lie to the lightweight wallet by leading the lightweight wallet to believe that a real and valid transaction did not take place. This can be considered a denial-of-service attack. Although this attack can be mitigated by having the lightweight wallet connect to multiple full nodes and then sending requests to every one of them, this mitigation strategy is still vulnerable to Sybil attacks, where the lightweight wallet is cordoned off into seeing and connecting to only full nodes that are controlled by the same malicious actor(s).
Also, as mentioned earlier, because lightweight wallets do not verify the blockchain for themselves, and only trust and follow the longest blockchain no matter what, lightweight wallets are vulnerable to being tricked into following a blockchain that does not follow Bitcoin’s consensus rules.
A lightweight wallet only requests transactions from full nodes that correspond to the lightweight wallet’s own addresses. This enables full nodes to have a complete view of the public addresses that correspond to the lightweight wallet’s user. This is a significant privacy leak, as it would then be trivial for the queried full nodes to link the lightweight wallet’s transactions together and build a profile of the lightweight wallet’s user. Such profiling may then be used to link the lightweight wallet’s transactions back to the user’s real identity.
Recommended lightweight wallets include: Electrum for Linux, macOS, Windows, and Android; and breadwallet for iOS and Android.back to menu ↑
A web-based wallet, as its name suggests, is a bitcoin wallet that is accessible over the web. This allows you to access your bitcoins from anywhere, and on any device, with an internet connection. However, unlike full-node and lightweight wallets, a web wallet stores your private keys online, and is usually controlled and managed by a third-party wallet provider. This offers several advantages, especially in terms of convenience and ease-of-use. However, such advantages — because the wallet’s private keys are under the control of a third party — come with significant risks.
The ubiquity of a web wallet offers a level of convenience not found in standalone wallets. Also, because a web wallet is usually managed by a third-party provider, this shifts much of the burden of properly securing and managing a bitcoin wallet from the user to the provider.
Convenience. Having access to your bitcoins from anywhere, and on any device, with an internet connection arguably goes a long way in making Bitcoin truly portable. With a web wallet, there is no need to fumble around with wallet backups or keeping your wallet in sync with the Bitcoin network. All the nitty-gritty of wallet management is handled by the wallet provider, greatly simplifying the task of using a web wallet to its bare essentials, i.e., sending and receiving bitcoins.
Active traders would especially benefit from the ubiquity of a web wallet when using the wallet provided by a bitcoin exchange. This saves the trader precious time when acting on price movements, especially given Bitcoin’s infamous price volatility and most bitcoin exchanges’ policy of waiting for at least three Bitcoin network confirmations — which takes an average of 30 minutes — on all bitcoin deposits before crediting them to the user’s account. In Bitcoin time, that 30 minutes could be the difference between making a profit or suffering a significant loss.
Remember how lightweight wallets leak sensitive information when querying full nodes for transactions belonging to them? Well, web wallets take that privacy issue to a whole new level. Everything about your web wallet — how many bitcoins it has at any given time, who you sent bitcoins to, who you received bitcoins from, etc. — is visible to your web wallet’s provider. And since most web wallet providers, and especially the bitcoin exchanges, now make it mandatory for every user to identify themselves when signing up for their services — in accordance with know-your-customer (KYC) and anti-money laundering (AML) regulations — these providers are able to link every transaction related to your web wallet back to your real identity.
Whoever controls your private keys controls your bitcoins. In this context, since the wallet provider controls the private keys of your web wallet, it is the provider who has ultimate control over your bitcoins, not you.
This essentially forces you to place a significant amount of trust in your wallet provider’s honesty and security practices, which is arguably rather antithetical to the whole premise of a decentralized and pseudonymous peer-to-peer payment network. You would have to trust that the wallet provider is able to keep your bitcoins safe from loss or theft, and that the wallet provider would not act against your best interests.
Unfortunately, web wallet providers have not had the best reputation when it comes to keeping their users’ bitcoins safe. Over the years, there have been multiple instances of web wallet providers and bitcoin exchanges suffering major security breaches which led to the loss of significant amounts of their customers’ funds. Probably the most infamous example would be the Mt. Gox debacle of early 2014, wherein the then-largest bitcoin exchange by volume lost more than $460 million of customers’ funds through a series of catastrophic security breaches. More recently, on July 5, 2017, it was reported that South Korean cryptocurrency exchange Bithumb — the world’s fourth-largest bitcoin exchange by volume as of September 16, 2017 — fell victim to a security breach that resulted in the loss of more than 31,800 customers’ personal information and “tens of thousands of dollars worth of cryptocurrency.”
Because of web wallets’ inherent privacy and security weaknesses, it is strongly recommended that you use them for only small amounts of bitcoins — e.g., for small everyday purchases or for day trading. Always keep more significant amounts of bitcoins in a wallet where you have full control of the private keys.back to menu ↑
A hardware wallet is a physical device designed specifically for the secure storage and management of private keys. In other words, instead of having a wallet’s private keys stored on a device’s hard drive (as with full-node and lightweight wallets) or in the cloud (as with web wallets) and completely managed by the wallet program, a hardware wallet stores your wallet’s private keys on the device itself — usually in a protected dedicated area of the hardware wallet — and interfaces with the wallet program when signing transactions with those private keys.
Advantages. By isolating private keys in a dedicated area of the hardware wallet’s electronics, a hardware wallet is able to keep the private keys from being compromised by malware or other software-based security vulnerabilities, and keep the private keys from leaving the hardware wallet in unencrypted form. This arguably offers far greater security when compared to having private keys stored on an internet-facing computer.
Furthermore, by virtue of its interactivity with most wallet programs, a hardware wallet offers the same robust security as a paper wallet, but without the added hassle of having to import the paper wallet into a wallet program when you need to access the bitcoins in the paper wallet.
Disadvantages. Probably the only disadvantage of hardware wallets at the moment is that you must be in physical possession of your hardware wallet whenever you want to spend any bitcoins associated with the private keys in the hardware wallet.
Examples of hardware wallets include SatoshiLabs’ TREZOR, Ledger’s Nano S, and the KeepKey. Check out our review of the best hardware wallets.
Different types of bitcoin wallets offer different sets of features, each with their own sets of advantages and disadvantages. It is therefore important to consider the merits of each type of bitcoin wallet and apply them to your needs and intended use case when choosing the type of wallet to use.
For example, a person looking to dip their toes into some light bitcoin trading may not need a full-node wallet and all of the storage and bandwidth overhead that comes with one. Likewise, a person holding a significant amount of bitcoins ought to seriously consider using a hardware wallet to store and manage their private keys. One could even use multiple types of wallet to fit specific use cases; a full-node wallet for important transactions and a lightweight mobile wallet for everyday purchases, for example.
Nevertheless, regardless of which type of bitcoin wallet you choose to use, always remember that control of your bitcoins rests with control of your private keys. Whoever controls your private keys controls your bitcoins.