Evolution of Bitcoin Wallets & Functionalities
Originally posted on Veriphi blog (defunct) on July 20, 2021
We’ve come a long way in Bitcoin usability since v0.1 was released by Satoshi back in 2009. This article and timeline are dedicated to describing how wallets have evolved over the past 12 years.
A breakdown of the timeline can be found further below.
Info on wallets
There are several types of Bitcoin wallets available depending on the platform on which they are found/created for:
Desktop wallet
This was the first wallet type created. It offers users a greater degree of autonomy and control since verifying the integrity of your device is much more accessible versus most other wallet types. However, there are security limitations when running your wallet on general-use operating systems like Windows or Mac OS.
Mobile wallet
This is a very common wallet type since all you need is a mobile phone. This is a popular method for first-time users, but then again you need to be careful with which wallet you decide to download since not all of them have verifiable source code or provide you with your private key. There are also wallets that are better designed for more advanced users and there exists ways of using it without compromising your security, such as only having a watch-only wallet on your mobile device.
Web wallet
These are wallets accessed through your web browser. The wallet is stored on a third party server. Some will provide you with your private key using client-side code, but many will store everything in their own server. It is not recommended to store Bitcoin in a web wallet.
Hardware wallet
Hardware wallets are devices that operate a secure self-contained bitcoin wallet on special-purpose hardware. They usually connect to a desktop or mobile device via USB cable or near-field-communication (NFC), and are operated with a web browser or accompanying software. By handling all bitcoin-related operations on the specialized hardware, these wallets are considered very secure and suitable for storing large amounts of bitcoin.
Paper wallet
The keys controlling bitcoin can also be printed for long-term storage. These are known as paper wallets even though other materials (wood, metal, etc.) can be used. Paper wallets offer a low-tech but highly secure means of storing bitcoin long term. Offline storage is also often referred to as cold storage.
Another way to categorize bitcoin wallets is by their degree of autonomy and how they interact with the bitcoin network:
Full node client
A full node is a software that validates all of the blockchain history (about 355 GB) according to the protocol rules and decides which chain is the valid one. The most popular implementation (by far) and the one with the most developers working on it is called Bitcoin Core. Â Bitcoin is a peer-to-peer system, meaning there are a lot of connected nodes (peers) forming a network. Anybody can decide to run their own node and become an independent constituent of the network as the Bitcoin full node is open source and permissionless. Using a full node client allows you to broadcast your transactions directly to the network without going through any intermediaries and provides greater privacy to its users.
Lightweight client (SPV)
SPV (Simple Payment Verification) clients connect to random nodes in the network and request information about the user's transactions, but also other transactions that don’t belong to the user. This makes a single user less discoverable by the network since it can be difficult to determine which transactions are actually related to them. This is a connection method generally considered slightly more private, but does not provide the anonymity benefits brought by running a complete personal node. Most SPV wallets use the Bloom Filters implementation, which has been proven to offer very low privacy. Lately, a few wallets use the Neutrino implementation, which provides additional privacy but it remains a light wallet so security and sovereignty risks remain.
API client
API wallets are those that connect to (often proprietary) back-end servers, not to a Bitcoin node directly. By default, they connect to the service provider’s node and fully reveal the user's master public key (xpub) to automatically retrieve the wallet’s information and addresses. The API is just the way the wallet communicates with the server, so it's possible to connect to your own Bitcoin full node this way if the back-end code is open-source.
Below you'll see how the private keys within a wallet have evolved over time thanks to the multiple BIPs listed above.
Nondeterministic (Random) Wallets
Initially, wallets generated several private keys randomly, each with its own public address. You’d use each address/key once and would generate new ones as needed. You’d have to backup every key, else you’d lose the funds associated with each one. As a consequence, people tend to reuse the same address in order to reduce the amount of effort required to use their Bitcoin, but this then raises privacy concerns. Bitcoin Core includes this type of wallet, however its use is not recommended since there are now better alternatives. This type of wallet is also known as a  Type-0 nondeterministic wallet.
Deterministic (Seeded) Wallets
This type of wallet allows you to have a single backup (private key) from which you can derive more keys, each with their own Bitcoin address. This means that if your wallet no longer works for whatever reason and you have the initial backup, you can recuperate all of your funds in one go.
HD Wallets (BIP-32/BIP-44)
Similarly to the Deterministic wallet stated above, a Hierarchical Deterministic wallet also generates multiple keys from a single private key, however, each one of those keys can also generate their own keys and so on to an infinite number of series. Your seed can generate a parent or master key, which can then generate child keys, which can then generate grandchild seeds and so on.
Seeds and Mnemonic Codes (BIP-39)
The Bitcoin Improvement Proposal 39 offers a standardized way of creating a private key using words from a predetermined list of English words. Most wallets today use this standard where a user is tasked with writing down 12, 18 or 24 words in a specific order.
Optional passphrase in BIP-39
BIP-39 also allows users to add an additional set of words or characters to their original seed, thus producing a new different seed. You can always add a new passphrase to your original seed in order to generate a new wallet, but you must properly save that word in order to recuperate your funds. This tool can be useful for creating a dummy wallet where your main seed has some funds to satisfy an attacker and the main wallet is used in conjunction with the passphrase.
Breakdown of timeline:
2009
January 8 : Bitcoin v0.1 released âžš
You can send bitcoins to the recipient's IP address if they are online or to their Bitcoin address if they are offline, and they will receive it next time they get online and load the block that contains the transaction.
2010
July 6 : Bitcoin v0.3 released âžš
Several new updates, such as a daemon version without GUI and a Mac OS X version.
December 8 : Bitcoin v0.3.18 is released âžš
The main addition in this release is the Accounts-based JSON-RPC commands:
- getaccountaddress
- sendfrom
- move
- getbalance
- listtransactions
2011
November : Bitaddress.org is launched
The first paper wallet.
May 9 : Bitbills is released
They are plastic cards that hold the private key and were the first incarnation of physical bitcoins.
September 6 : Casascius coins 
Metal coins created by Mike Caldwell. Casascius coins hid the private keys safely under a holographic seal and came pre-loaded with bitcoins in several denominations. This continued until FINCEN began requiring a license for their production.
September 12 : MultiBit launched
First light client Bitcoin wallet. Now deprecated.
October 1 : BIP 13 Address Format for pay-to-script-hash
An address encoded under this proposal represents the encoded hash of a script, rather than the encoded hash of an ECDSA public key. âžš
October 18 : BIP-11
M-of-N Standard Transactions âžš
2012
January 3 - BIP 16
Pay to Script Hash âžš
January 29 : BIP 21
URI Scheme âžš
February 11 : BIP 32
Hierarchical Deterministic Wallets âžš
February 15 : Armory alpha launched Â
One of the first full-featured wallets with cold-storage capabilities.
2013
September 10 : BIP 39
Mnemonic code for generating deterministic keys âžš
July 29 : BIP 70
Payment Protocol âžš
2014
January : Trezor One is released
It was first prototyped in 2013 before being commercialized the next year.
March :
Bitcoin v0.9.0
The initial version, Bitcoin Satoshi or Bitcoin Qt, is now known as Bitcoin Core âžš
Xapo is launched
It is the first Bitcoin bank. It offers custody solutions to its clients.
August : Ledger is released
The first model to be created and commercialized is the Ledger Nano S.
2015
October 1 Â : BIP 65
OP_CHECKLOCKTIMEVERIFY âžš
December 4 : BIP 125
Opt-in Full Replace-by-Fee Signaling âžš
2016
May 19 : BIP 49
Derivation scheme for P2WPKH-nested-in-P2SH based accounts âžš
August 10 : BIP 112
CHECKSEQUENCEVERIFY âžš
2017
August 1 : Segregated Witness
A successful soft-fork leads to the activation of Segwit. This provides protection from transaction malleability, allows for better fee savings as well as the foundational layer allowing for the Lightning Network to exist.
2018
August : Coldcard Mk.1 release
First hardware device providing an easier creation of an air-gapped wallet and that uses a microSD card as the communication link between the signing keys and the Internet.
2021
June 30 : Bitcoin core #19651 merged
Allows wallet key manager to update existing Output script descriptors. This allows wallet users to edit labels, increase descriptor ranges, reactivate inactive descriptors, and perform other updates using Import Descriptor Wallet RPC. âžš