I want to hide the ethereum addresses of dApp users so that your transactions will not be traced by one who you have interaction earlier. The use case is actually similar to the application:

  • Alice goes to BerBurry and gets some clothes by paying with ethereum.
  • Alice goes to Suegg and gets some clothes by paying with ethereum.
  • Alice requests some money from Bob, by sharing her wallet address.

In the scenario above, Bob can trace that Alice has some shopping from BerBurry and Suegg. The manager of Guess knows Alice has already bought something from Burberry, vice versa.

I know that it can be handled on Quorum but what are workaround solutions of the problem? I am open to off-chain solutions that can be verifiable on the chain or the solution may require multiple transactions?

Probably, the question I have asked may require some brainstorming or it may be already resolved by some genius guys :)

@Ismael I just simplified the problem to make it clear for everyone. Actually, Alice does not pay directly to BerBurry. Instead, Eve pays for Alice and there is an agreement that states Alice will pay to Eve for borrowing money to pay BerBurry. The off-chain identity of Alice is exposed to Eve and BerBurry. Initially, Alice does not have to share her wallet address but on payback, the address will be exposed.


1 Answer 1


If your requirements are limited to payment, then checkout the aztec protocol and specifically their implementation of a zero knowledge wrapper for dai. With this your users can transact privately, safely, and with stability, as Dai is a decentralized USD pegged stablecoin. If your purpose isn't focused around payments, then definitely look into Zokrates for implementing more application specific zksnarks.

Not the answer you're looking for? Browse other questions tagged or ask your own question.