-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Miximus Deposit/Split/Join/Withdraw #1
Comments
I strongly support this proposal. Same goes for join/splits, Miximus would be far more useful if withdrawal out of Miximus was not required by the recipient. I'm working on a project where I am considering to use Miximus with DAI and both of these features are a must for it to work. |
Cool, I will make this a priority. Have you considered fungibility between multiple stable coins? e.g. Deposit DAI withdraw USDC or TUSD of equivalent value? |
Different stablecoins are generally not fungible among one another. That includes different stablecoins on the same chain and same CDP stable coins on different chains. This is mainly because you make different trust & security assumptions for each coin. For instance, with DAI you trust in the MakerDAO price oracle, but you make an assumption that in case the pegging is broken, a global settlement will occur, replacing your DAI with the equivalent ETH. |
Also, can you explain how join/split can allow for a payment correlation to be noticed? |
I think this may have been a mental note to think about this again, however there some example I can think of:
The ability to correlate increases with the number of payments, e.g. if 10 payments are made, then somebody performs 10 Join transactions, there is a higher probability of that one entity being the recipient for all of the payments. This worries me because it can erode anonymity, although Miximus with fixed denomination tokens has similar problems with correlation. This all hinges on the 'Gas Payer' problem, and the lack of account abstraction or meta-transactions (although Gnosis Safe is working towards providing viable meta transactions which can enhance anonymity). Other references worth reviewing: |
https://github.com/snjax/zDai-mixer allows arbitrary sized coins |
The Miximus circuit is lacking functionality which allows tokens to be 'fungible'.
Currently each leaf is of a fixed denomination, if that denomination is
1 ETH
then you need to make 10 transactions to make a 10 ETH payment. And if you want to make a 0.1 ETH payment, then you're out of luck.This ticket proposes a mechanism to make deposits, payments and withdraws of arbitrary values, meaning that you're not constrained to using coins of a specific denomination.
Currently, with fixed denominations, you must deposit that denomination and in return the smart-contract inserts a leaf into the tree. Because the smart contract enforces the deposit values we know that every leaf is of a specific value, and nullifying a leaf allows that value to be withdrawn (and optionally transferred to another person, by immediately creating another leaf).
By introducing the notion of arbitrary values, it means that each leaf can have a different value, and the zkSNARK circuit must strictly enforce the value. The following modifications to how Miximus works allows for arbitrary values to be exchanged:
New leaf format (ish):
Use cases:
Problems:
Questions:
The text was updated successfully, but these errors were encountered: