Wallets X, X1, etc. aren't associated in any way to wallet A. Nor can input and output amounts be matched - unless someone gains physical access to the machine where John keeps his wallet, I suppose.
This got me thinking:
What prevents wallets A, X, X1 from being associated by IP address? There's no association on the block chain, but IP association is just as bad...
I2P.
Need to get smart on this I guess - I've never heard of it :p. Is that something that will be built into the client or is it a separate protocol (like tor) that will need to be set up?
If separate, that's something that needs to be made clear with like a flashing neon sign...
I think I have a better solution than that, I want to turn the masternodes into I2P relays for darkcoin. So your client will pick one when you start, then relay any messages through that one. It encrypts all of the traffic, removes the connection between IP and address and it the blockchain is still a complete fog. Plus it'll be a private I2P, so it'll be super fast. Masternodes are going to be awesome

There's the quote about it.
Pretty great anonymity could also be obtained by sending the broadcast 4+ peers away from you. Encrypt the packets and you'd be good.