We’re designing our money in such a way that every time someone sends money to someone else, it writes a different, one-time-use address in the blockchain. That’s great because it protects the receiver’s identity from people just looking at the blockchain. But that alone doesn’t protect users. It’d be very cumbersome to have to create a new wallet with a different set of keys for every new address we need.
And we don’t want to solve that issue by creating different accounts every time, because since every account has different balances, we’d need to send money from our own accounts to another account maybe even in the same wallet just to merge those funds together and being able to afford a pricier spend. Not impossible, but cumbersome. And we already decided that cumbersome is the enemy of usage. We want our money to be used, right?
A solution is to use the same trick we used to generate multiple accounts from the same pair of keys, but now to generate multiple subaddresses for every account. We’ll call them sub addresses to differentiate them from the main, original address of our set of keys.
These addresses work like those old pneumatic tubes that were on every floor of vintage office buildings. You can insert a pod in one of many different endings, but they all end up in the same floor where they’re sorted out. Or just like veins in our body that all carry blood back to a single heart.
So, you can use a single account for your art commissions for example, but give a different subaddress to every client. That way, all your income from that source is on the same balance, but you can still be protected from clients that talk to each other to single you out. Also, it provides the extra benefit of automatically knowing who paid and how much, since every client only knows their corresponding subaddress.
Subaddresses are very cool and useful.