John darksends 2 coins from A to C, gets 8 back as change on address X
Joe darksends 3 coins from E to G, gets 7 back as change on address W
Suzie darksends 3 coins from K to Q, gets 7 back as change on address S
Now, we make a pool with X+X1+W+W1+S+S1.
Pool total output == 30DRK
X+X1 = 10DRK
W+W1 = 10DRK
S+S1 = 10DRK
X will always be less than 10DRK, there for we need another input to bring it to 10DRK total. This way no one can tell who is receiving which inputs, thus cleaning them in the inverse way DarkSend works.
Make sense?
I'm not sure I understand.
John darksends 2 coins from A to C, gets 8 back as change on address X.
He then contributes 2 additional coins from another address in his wallet, address D?
If that's how it works I'm not sure I get how this helps. It just exposes the holder of address D as the person who darksent 2 coins to C.
I am probably misunderstanding where X1 S1 and W1 are coming from.
If I'm not mistaken, X1 would be John's change address from a subsequent darksend. So all of John's change addresses are subsets of X (X1, X2, etc.). When two or more of these total 10DRK, the 10DRK is sent to the change pool to be cleaned.
The block chain would only ever show denominations of 10 leaving or coming back in to John's wallet A (10 coins out for darksends, 10 coins in from the wallet the change pool sends to (if John so chose)).
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.
I'm still curious to know what would happen if John tried to send a DarkSend for more than he had in wallet A, but less than he had in wallets A + X, before his change wallets totaled out to 10+ DRK so they could be sent out for cleaning.