A cryptocurrency wallet is a piece of software that makes it easy to manage funds, send and receive transactions and communicate with the P2P network in various ways.
Cryptocurrencies make heavy use of cryptography and very large numbers. Wallets allow you to give some of these cryptic codes your own mnemonic names to help you remember.
For example, instead of seeing a bitcoin address such as 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa you can add it to an address book and call it something you’ll remember later, like “Satoshi’s Address from 2009”.
There are several kinds of wallets and not just one type of classification. There are lightweight wallets, full node wallets, hardware wallets and several other kinds.
Let’s take a quick look at each of these wallet types.
A full node wallet is what the original Bitcoin implementation intended to be. It had a friendly front-end interface and a service running in the background. Satoshi’s initial idea was to have everyone running their own node, verifying transactions using their computers’ spare processing time.
The user interface sends and receives messages to/from from the back-end.
The software running in the back is called a full node daemon. It goes online, announces itself and listens for transactions from other peers. When you wish to send a transaction, the full node daemon contacts nearby peers and sends your transaction to them.
Because this daemon keeps a complete copy of the blockchain, it’s called a full node.
Full nodes are able to walk the entire blockchain, from genesis to the very latest block.
Full node wallets are sovereign. They don’t depend on any other component in order to verify the blockchain, send or receive transactions. In fact, a full node wallet helps the network itself function by relaying node gossip and transactions.
There’s a trade-off for all this power : full nodes consume lots of hard drive space and must remain online 24×7 in order to stay in sync with the network. Since the most popular blockchains, like Ethereum and Bitcoin, are growing into the hundreds of gigabytes and may take several days to sync, users needed a lightweight solution that they could access from their smartphones and other space/CPU limited devices.
Bitcoin Core was the first full node cryptocurrency wallet made available to the public.
It written by Satoshi Nakamoto himself.
When Hal Finney posted his historic tweet saying he was “running Bitcoin”, he meant Bitcoin Core.
Running bitcoin
— halfin (@halfin) January 11, 2009
Bitcoin Core was forked by several different projects, thus becoming the base for many derived full node wallets. Every first generation cryptocurrency wallet derived from Bitcoin Core wallet.
We have a large section where one of our contributors comments on Bitcoin Core source code.
Light wallets were the first solution introduced to solve the full node sync problem.
The idea was very simple, in fact. Developers soon noticed that the front-end could easily be detached from the back end full node daemon and then be made to access it remotely.
Thus, a light wallet is simply the front-end component of a full node wallet which uses a remote node to perform communication with the P2P network.
The only drawback here is that you must trust the remote node. If the remote node decides not to broadcast your transaction, or decides to send you false transaction data, your front-end wallet has no way of knowing about the fraud.
Cryptocurrency investors soon realized that the best way to keep cryptos secure was to air-gap the secret keys and keep them offline. There’s more than one way to keep keys offline and harware wallets are one of them.
A hardware wallet is just what the name implies: a secure storage medium that is built specifically to hold cryptocurrency keys. It’s basically a flash drive on steroids and some user-friendly crypto functions added. For example, some hardware wallets are able to connect online and send/receive funds directly (although this breaks the initial purpose of keeping the keys 100% offline).
See our complementary article: Do you really need a hardware wallet?
Everything seems to be moving to web-based technology in recent years. Front-end frameworks like React now have a native version, allowing you to build desktop applications using web technology.
Web wallets are light wallets built on WWW technology, like Javascript, CSS and HTML. They’re a natural evolution of the lightweight wallet concept where the front-end is separated from the full node back-end. The only difference being how it’s implemented.
A web wallet doesn’t necessarily have to run on a public website. You can load an HTML from your local hard drive and access the wallet from there.
Since a web wallet is simply a light wallet that is built using WWW tech, you also need a full node running somewhere in order to send and receive transactions.
Security is a big issue with web wallets because the software must inherently trust the web browser where it runs. If the browser has malware attached to it, this malware can access your wallet, keys and steal your cryptocurrency.
Web-based wallets also do not store personal information or require login. It’s simply a front-end to a full node. So your keys and other personal information must be stored elsewhere. When you first open a web-wallet, it usually asks you whether you’d like to load your keys from somewhere or create new keys on the fly.
Getting a wallet running on a public website is an obvious application of the web-based wallets we just discussed.
Online web wallets offer much more functionality than offline web-based wallets. For example, it stores your personal address book, keys and transaction history, making the experience a lot like the early full node wallets everyone used to run.
Security is an obvious concern with any online web-based wallet. Not only does it inherit the browser security concern mentioned earlier, but adds a whole new perimeter of concern, since customer keys are stored somewhere online. A wallet with high value assets then becomes a target not only for remote attackers, but also employees, interns and other prying eyes within the organization.
E.g. Blockchain.com was one of the first online Bitcoin wallets available.
Wikipedia Cryptocurrency Wallets Entry