Prequel, Condensed
Wallets have appeared in a variety of shapes over time. Before the late 17th century advent of paper money and the introduction of credit cards in the 1950s, wallets had been used for millennia to keep food and newly minted coins.
But few transformations would be as significant as the shift from physical to digital wallets: in the early 1990s, digital wallets for virtual currencies like B-Money and Ecash were available. However, a centralized system of transactions, a lack of early adopters, or challenging computational requirements prevented these early digital currencies from becoming widely used.
Hope for a New Wallet
Bitcoin, a decentralized proof-of-work digital money inspired by its forerunners, was proposed by Satoshi Nakamoto in 2009. Users obtain Bitcoins, a form of virtual currency, after adding a block to the blockchain successfully. A user must supply the recipient’s public key in order to transmit bitcoins to them, and they must then verify the transaction using their private key. The remaining bitcoin can be stolen if a third party ever obtains access to a user’s public and private keys. The initial generation of cryptocurrency wallets was inspired by the requirement to protect the public and private key pair.
The open-source Bitcoin-Qt program, commonly known as Satoshi Client, was the first program to communicate with the Bitcoin blockchain. Early in 2009, a C++ program for Windows NT/2000/XP users was made available. Bitcoin-Qt had a command line and graphical user interface, as well as ways for users to initiate new transactions, view already completed transactions and check their wallet balance. It also kept blockchain data and user wallet information in local storage. The wallet was a “full-client,” necessitating the download of the whole blockchain history by each user upon installation. The blockchain size in the early days of Bitcoin was roughly 16 MB; a complete download only required a small amount of storage space.
Operating a full-client wallet ensures both privacy and security when conducting bitcoin transactions. Because the client keeps track of every transaction, it can verify that no erroneous coins have been created by avoiding the pre-existing bitcoin supply. By preventing the bulk of malicious users from confirming false transactions, it also upholds economic trust in the system.
Although the Satoshi Client offered solid guarantees for transaction authenticity, the wallet had weak security protections, making it vulnerable to malware that could be used to compromise and steal the user’s local wallet.dat file, which included the user’s private keys. Even if passphrase-based encryption was introduced by Bitcoin-Qt two years after the original version, malware could still get around it, provided it ran on the same machine and with the same rights as the client.
Additionally, as the Bitcoin blockchain gained popularity, the cost of upkeep for disk space and network connections rose: the blockchain size exploded to over 2 GB in June 2012 and was anticipated to grow exponentially (as of Jan 2022, it is 379 GB).
Soon, a new generation of wallets that didn’t require downloading the complete blockchain to conduct transactions became widely available. Only the block headers would be stored, resulting in a 1000x reduction in size, as opposed to downloading all the blocks, which include a block header and information on all transactions in the block. Due to the data reduction, wallets may now operate more quickly and efficiently on mobile devices like smartphones.
The Development of Thinner Wallets
A free, compact wallet called MultiBit was made available on September 12th, 2011, by British programmer Jim Burton, who claimed that it “was built for non-technical folks as much as possible.” It supported a wide range of languages, had an easy-to-use graphical user interface, and allowed users to export and import key pairs. Users of MultiBit were able to construct “Bitcoin swatches”—QR codes comprising the Bitcoin receiver address, payment amount, and message—to receive payments smoothly.
“Thin client” for MultiBit
Around this time, brand-new online wallet providers started to appear, enabling bitcoin transactions on mobile and the web3 wallet development: When Coinbase was created in December 2012, it offered services to companies looking into taking Bitcoin as payment as well as online wallets for consumers. Bits allowed users to register by texting “SIGNUP” to a designated number. Users could make and receive bitcoin payments through text texts. In July 2013, Kipochi and M-Pesa introduced a similar bitcoin SMS service that allowed for the conversion of bitcoin to Kenyan shillings.
These “thin wallets” had gained enormous traction by the beginning of 2014: MultiBit had 1.5 million downloads, and Coinbase and Blockchain.info each had one million users.
These wallets had bugs, just like other early blockchain infrastructure components. MultiBit advocated the use of distinct addresses for every transaction and generated numerous random cryptographic keys. MultiBit would generate new keys at random if the existing ones were exhausted; this necessitated routine wallet backups, which could be error-prone. The bitcoin that was saved in the connected addresses became unrecoverable due to a loss of private keys.
A user discovered a bug in MultiBit’s wallet feature in April 2014 and reported it on Reddit. He stated that MultiBit failed to give the private keys for the ‘change’ address after a transaction, rendering 0.5225 bitcoins (worth $220 at the time) inaccessible. In the discussion, a number more people noticed the flaw and related problems. The ensuing criticism against MultiBit’s security flaws sparked changes to the ecosystem of existing wallets.