Anonymity wrt which secret contracts an ETH address interacts with

Lets say there’s a secret contract and I interacted with it. In Discovery, the only public record is that my ETH address interacted with Enigma. However, I think the worker knew at one point which DApp / secret contract it ran, because the bytecode is stored unencrypted in the Enigma network.

If multiple DApps could share one common anonymity set, it would help to bootstrap DApps that depend on anonymity - A DApp with only a few users could instantly have a large enough anonymity set (probably only applies to a set of DApps with similar input / bytecode sizes). Furthermore, there is a big difference between anonymity on chain, and anonymity where it is assumed that some of the workers are compromised. Finally, maintaining state for a DApp seems like another attack vector where an adversary could associate tasks or ETH addresses with a particular DApp, or at least link tasks together as being for the same DApp.

My question: In the very long run, will some DApps that require very strong anonymity - where the attack model assumes some subset of workers are controlled by an adversary - be able to share a common anonymity set?


Hey @MixMeister – I’m familiar with anonymity sets in the context of coin mixers / coinjoins but not sure what you’re referencing here. The code for secret contracts is public so users can ensure what functions are being performed on the encrypted inputs.

It sounds like you are suggesting security could be improved if the worker didn’t know what bytecode it ran, but this would make it difficult for the worker to receive the correct fees and verify that it did. So how would an anonymity set work in this case? Could you perhaps give an example?