I'd like it be be in the main client, but I'd like it to be called "privacy mode", as opposed to "advanced view", for its educational effect.
For further educational effect, privacy mode could enable informational warnings that let you know which addresses/identites are being linked during a transaction.
If address labels have multiple entries: identity, one to distinguish same-identity addresses, and an "Is Reused?" checkbox for send addresses that you know or expect get reused with multiple people, then the messages generated can be much more personalized and succinct, and will hit home better.
Imagine if when you tried to send some bitcoins you got a warning like this:
This transaction will reveal to
That you own 957 BTC minus the 2 you're currently sending to them, and that you received 955.5 of them from RichMistress on June 2, 2011 at 11:38 AM (for extra effect, assume her identity is public knowledge because you know she reuses addresses with multiple people
), and 1.5 from address 1B... on May 1, 2011 at 4:56 PM.
That you're sending 2 BTC to address 1M... right now, and that you received 1.5 from address 1B... on May 1, 2011 at 4:56 PM.
That you're sending 2 BTC to address 1M... right now, and that you received 955.5 BTC from RichMistress on July 12, 2011 at 11:38 AM.
If this is too revealing, then use the Send To Address tab to manually select the addresses to send from.
Or maybe replace ShadyDude with Wikileaks' public address, and RichMistress with BusinessIPatronize (who happens to reuse the same address and needed to send you a refund one time, and who is now being subpoenaed by the Stasi into identifying you as the owner of the address the sent the refund to in order to prove you donated to Wikileaks).
Clearly address reuse is really bad for privacy, and the consequences are not internalized to the address re-users, so I think new address requests (and labeling) should be automated for all clients, not just privacy-conscious ones.
Sorry if this is obvious or flawed - I'm new to this stuff - but here's an idea for how to do this:
This can be done by having a contacts list, and a single master public key from each of their contacts, from which they can deterministically derive as many addresses as they want. These addresses can't be associated by outsiders as long as the master public key is kept secret. See this post by Stefan http://forum.bitcoin.org/index.php?topic=19137.msg318989#msg318989
and the one below by gmaxwell about choosing a sequence of serial numbers for how it might be implemented: .
Of course lost master private keys will be a problem, but this can be mitigated by users having (untrusted) storage servers that serve the master public keys to their contacts (the same one that syncs your everyday-use wallet between devices?). This way they can be easily changed at any time, all at once, and in one place, if necessary, and the contacts will always check that they're up to date.
Hopefully privacy mode would also turn on Tor as well.
Considering the "Bitcoin is anonymous" spin in the media, I really think we're going to have a lot of people unwittingly find themselves in a lot of trouble with criminals, spouses, friends, governments, etc. if they can't easily learn how Bitcoin is working for them in practice. Somebody said here that users aren't stupid, but the client is making them stupid, and I completely agree.