Our super-duper-burner-stealth addresses work like charm, but there’s still one link possible between our transactions, and that is (as in most cases) human behavior. Think of the following scenario. I’m a political dissident on a country ruled by a government that likes to put political dissidents in prison. I dedicate many hours to write on the web, denouncing the evil doings of such tyrannical government. I’m not stupid and I don’t want them to knock on my door in the middle of the afternoon, so of course I do this anonymously, using an alias. To support my work, I have a public address for donations, so those that like my work can contribute. So far so good. We already know that even though that address doesn’t change, every time someone donates, their add will write a different stealth address on the list, and nobody can tell that I even received anything.
But during my days, I’m also a merchant. I have a little bar where you can pay with Monero as well. If I use same public address, anyone that have seen that address published on my site, will know I’m the same person. It’s like your name. You’ve just linked both of your personalities by basically using the same public address, just like you would if you used the same name.
Lesson learned: don’t use an address in more than one place or occasion. The internet never forgets, and it’s pretty easy to search for matches. Luckily, we can design our wallets so that we can get multiple addresses from the same seed, and keep our different personas separated. Our money cannot protect everyone from everything. But it’s pretty close.
One thing though, it’s one thing to protect users from losing their money or their anonymity, but how can we ensure that there’s only one of those moneys in the first place? Only one list and not multiple ones? How can we agree on the list?