There are two types of cryptocurrency mixing services, custodial and non-custodial.
When a user submits “dirty” currency to a trusted third party and returns “clean” currency after a timeout, the process is called escrow mixing. However, this technique is flawed because users lose control of their money during the mixing process. Therefore, in the case of a custodial mixer, it is possible for a trusted mixer to steal funds.
Replacing trusted mixers with publicly verifiable and transparent smart contracts or secure multi-party computation is a common element in non-custodial mixers. The process of non-custodial mixing consists of two steps.
Users first deposit the same amount of ETH or other tokens into the mixer contract from address A, then, after a user-defined time interval, they can withdraw their deposited coins to address B through a withdrawal transaction.
Users can confirm to the mixer contract that they have made a deposit without using one of several accessible cryptographic techniques such as ring signatures and zk-SNARKs in a withdrawal transaction to expose the deposit transaction they issued.