Anonymity in end-to-end encryption Considering a scenario of anonymous data transfer between seller and buyer using proxies. If we consider that there are three proxies that are being selected by the buyer to obtain data from different sellers (like in emule), how can we make sure that these proxies do not collude with each other to obtain the copy that is being requested by buyer?

For example, if we use onion routing, then in this case, each of three proxies will have plain-text data at the end, and this plain-text data would be transferred to the buyer. What mechanism should we employ that will prevent the three proxies to collude? If they combine the files, they will get the copy of the same file being requested by buyer.

Thus as a solution, if we use end-to-end encryption, will the buyer and seller remain anonymous to each other?
If the buyer is selecting proxies to use as trusted third parties, presumably the buyer needs to trust that at least one of them is honest and not colluding with the other three.  Therefore, if you need to be sure that they're not colluding, the answer is that the buyer should choose the three proxies to ensure that they're not colluding.

Precisely how to do that depends upon the system and upon what knowledge the buyer has of the proxies.  One scheme is to choose randomly from a list of vetted proxies, and count on the fact that most parties on that list are honest so it's unlikely that you (by chance) happen to pick three that are evil and colluding.  Another is to choose three proxies who have a good reputation or who you have some other reason to trust.  But ultimately, this is not so much a cryptographic question as it is a systems design question for the particular system.

No, end-to-end encryption on its own is not enough to guarantee anonymity.  You need to also use some sort of system designed for anonymity, like Tor, and take other steps to protect your anonymity.