According to this answer: (https://ethereum.stackexchange.com/a/62694/23024) one of the approaches to anonymize users in smart contracts is:

"writing a smart contract which accepts Ether transactions and stores the received Ethers inside the contract. After enough such Ether transactions have been received (or after a time interval, or something else), it sends out corresponding Ether transactions to the intended receivers."

Is there an example of such smart contract as an instance?

1 Answer 1


The problem with mixing is that you need a way for the user to signal to the contract (or to the contract owner) the address they want to receive the ETH at after it is mixed.

If you have a trusted central party, and a secure communications channel, then you simply sign a message with the sender address, and ask for the mixer to forward to the receiver address.

If you want a trustless setup, one way is to use ring signatures. Basically you would have a mixing pool accepting a defined quantity of ETH by a certain number of senders. Once a defined number of deposits is reached, users can withdraw from a different address, by supplying a ring signature including all sender's public keys. The ring signature proves that the user is the owner of one of the sender accounts, but does not provide any clue as to which one. Note that all users must send the same quantity of ETH.

These ring signatures can then be verified on-chain by a smart contract, but there is probably a cheaper way to handle this off-chain with some cryptoeconomics.

I believe there are examples of such ring signature verifiers available on GitHub

  • Thank you very much, just it would be perfect if you could add one of reliable examples for this scenario as an instance. Thanks
    – Questioner
    Nov 20, 2018 at 15:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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