User A wants to pay $103
User B wants to pay $254
User C wants to pay $51
User D wants to pay $53
-- All of them deposit their bills into the bucket:
$100,$1,$1,$1 == 103
$100,$100,$50,$1,$1,$1,$1 == 254
$50,$1 == 51
$50,$1,$1,$1 == 53
---- Now, count the bills of each kind
3x $100
3x $50
11x $1
Now the people randomly come collect what they're owed.
Who paid who?
Could you not just see that the destination address balance matches the total amount withdrawn from the beginning address(es)?
Does the change get DarkSent too? That would be pretty cool.
I see how it's much more difficult to track where the bills came from. I'm still trying to understand how it's completely unsolvable though. In your example, say now:
User E comes in and collects 1 $100 and 3 $1 = $103
User F comes in and collects 2 $100, 1 $50, and 4 $1 = $254
User G comes in and collects 1 $50 and $1 = $51
User H comes in and collects 1 $50 and 3 $1 = $53
and it's totally random how they collect. Still, at the the end of the day, can't I deduce that user A paid user E, since their outgoing and incoming wallet balances were the same.
Sorry again, I'm super slow, but if you can explain it to me, you can explain it to a 6 year old
EDIT: I just realized there isn't a way to determine who controls all these addresses, other than the owners of the wallets, as Tante pointed out. So, the only real way to tell is based on timing as mentioned below?