Bitcoin improvement proposal 32 is, in my opinion, one of the most important BIPs we have. (Thanks Peter Wuille!) BIP 32 gave us Hierarchical Deterministic Wallets. That is, the ability to create a tree of keys from a single seed.
In the early days of Bitcoin, each time a user wanted to receive new coins, their wallet would randomly generate a new Bitcoin private key, along with the associated public key and address. For example (and don’t try to use these):
Private key: L57hXXKTCRgJRytYMVbhaxnsKpWZdzPzReKUghiYY6D6aQqQrM39
Address (public key hash): 1P3AzkwVv1jDJAhEBQby6873xwJvymzDRn
Each user’s wallet software contained lists of public and private keys pairs. If the user’s computer broke or became stolen, you will lose all the private keys. The user had to be fairly tech savvy to know how to export and encrypt their keys for safe keeping. Even so, each time they received coins to a new address, they needed to re-backup the new private key.
HD wallets to the rescue
In accordance with BIP 32, new wallets called HD wallets (Hierarchical Deterministic, not High Definition) made the backup process a lot easier and safer.
Instead of generating random private keys for each transaction, HD wallets generate one seed which is used to create a master private key. This master private key can be used to generate more “child” private keys for each transaction. Because the child keys are determined using the same pattern each time, the user doesn’t need to back up all of their private keys, only the one seed:
However, since most wallets have also adopted BIP 39 you may be more familiar with a 12 or twenty-four word encoding of your seed (again don’t use this example):
bubble cat run happy tree bird snow flake person orange yellow mother
Now, on a piece of paper or in a password manager like Boot.dev, users can backup their seed phrase. Then they know that all the Bitcoins that will ever be stored in their wallet are recoverable.
Learn Go by writing Go code
I'm a senior engineer learning Go, and the pace of Boot.dev's Go courses have been perfect for me. The diverse community in Discord is a blast, and other members are quick to help out with detailed answers and explanations.
- Daniel Gerep from Cassia, Brasil
Watch only HD wallet
A watch-only HD wallet is a the same as a normal HD wallet except that it can’t spend coins, only store them. Watch only wallets are perfect for users who want a wallet to receive new coins easily but don’t want to spend regularly from that wallet, similar to a savings account.
The seed (and associated private keys) are stored offline or under heavy encryption, while the extended public key is used in the online watch-only wallet.
A full watch-only wallet is much better and safer than using the same address again and again. This is because using new addresses enhances privacy.
Thanks for reading, good luck, and stay safe being your own bank!