A notion just struck me...
When denominating a large chunk that gets submitted, doesn't get enough entries, gets submitted, doesn't get enough entries... This happens hundreds of times before 3 finally show up... Does the failed entry process give anything away? It happens so much you're pretty much guaranteed to have submitted it to every masternode in the network several times before it actually happens, so couldn't just a single rogue node monitor/track large chunks through this process of repeated submissions?
The presubmission phase is where the client just says "hey, I'd like to mix these denominations here", then the masternode broadcasts a message saying it's accepting more clients. If it gets 3 of those "hey, I'd like to mix" messages, it'll tell those users to submit their actual transactions, inputs+outputs. So the system doesn't reveal any information until the actual mixing is about to happen.
Look at the "dsa" and "dsq" message events in main.cpp for more info.
in theory the anonymization with MN's is great, but i practice it is a pain as it seems
to be so hard to find people to annon with !! can not be there a secure way that a certain amount of DRK
are on the MN network (say 5000 DRK) just flying around the network (not belonging to anybody)
waiting to anonymize with somebody ?
that would make the process definately faster and available all the time !?
I was waiting for about 3 or 4 days to anonymise funds for a masternode and have given up for now because I had to unplug the PC. I only got 1 of 8 rounds completed. With adoption there would no doubt be more coins floating around to be anonymised, but can adoption happen if people can't anonymise their coins? There need to be some incentives in place for people to leave their wallets unlocked and available for mixing.
One basic option available now is for those wanting to anonymise funds to offer to pay for others to make funds available. For example, you could offer 1.5 DRK each to two other parties to leave their wallets open for 24 hours. There's no guarantee that you would be able mix your coins with them if there were others trying to do the same, although if there were so many others trying to do the same thing, it probably wouldn't be necessary in the first place. You could offer to pay half at the beginning, half after, or to use the reputation system offered here or on DarkcoinTalk for example. However, this makes DarkSend more expensive and much more of a hassle.
Another option would be two different types of masternodes. The current masternodes could continue to offer the same service and new type of masternode could leave coins available for mixing as well. This would mean leaving a hot wallet on the masternode I imagine, and as a result is more risky for the masternode owner. Consequently, I think you would have to offer some compensation to these masternode owners, whether it be in the form of a higher ratio of the masternode payments or a discount in the coins required to have a masternode. Maybe the MasterMixerNodes could be required to have only 800 DRK and receive payments as per a normal MasterNode. Or perhaps MasterMixerNodes could be required to have 1000 DRK and receive 3/5 of the masternode payements, and regular MasterNodes perhaps only 700 DRK and receive 2/5 of the payments. Although this would probably be quite difficult because of different quantities of the two types of masternodes. Yet another option would be to require the same quantity of coins for both types of masternodes, but to withhold say 20% of masternode payments to be distributed to the MasterMixerNodes for their increased level of risk. Obviously the reward system would need to be looked at very carefully and it would perhaps be a good opportunity to offer some form of masternodes at a discount. After all, 1000 is not a magic number that is a perfect requirement for a masternode, but an arbitrary - but round - number. If masternodes are going to be used for mixing, I suppose IP obfuscation would be necessary.
TLDR:
The problem with a lack of DarkSend participants should be solved by offering incentives to provide a constant supply of coins available for anonymisation, perhaps by offering two tiers of masternodes.