miximus
miximus copied to clipboard
A proof of concept trustless ethereum mixer
https://github.com/scipr-lab/libsnark/tree/92a80f74727091fdc40e6021dc42e9f6b67d5176/libsnark/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark
This will allow use with any token. To do this we need to replace ``` mapping (bytes32 => bool) roots; mapping (bytes32 => bool) nullifiers; ``` with ``` mapping (address...
Right now we have to call the cpp code to make a zksnark proof before withdrawing. It would be better if this was done in javascript so that cpp only...
Below are some scalability ideas: 1. **3-pairing SNARKs**: The [Groth 16 paper](https://eprint.iacr.org/2016/260.pdf) reduces the number of pairings from 8 to 3, so that should reduce the gas cost of withdrawals...
When `0x3fdc3192693e28ff6aee95320075e4c26be03309FFFFFFFFFFFFFFFFFFFFFFFF` and `0xc9b94d9a757f6a57e38809be7dca7599fb0d1bb5ee6b2e7c685092dd8b5e71db` we get leaf `0x06cb95f83223c9c472957b7bb259bc1e2e6f9ddd8abf902e8f03d1a8ebf4c818` Which does not agree with what we get in libsnark. But lets revisit this after https://github.com/barryWhiteHat/miximus/issues/6 which may solve this.
`deploy.js` exports `tree17 = new BigNumber(tree[17], 16).toString(2).split("").join(" ,");` and several other parmeters needed by `../src/main.cpp` for creating a proof. However the current method drops some leading zeros in the output...
libsnarks only allows 253 bit variables. So we end up padding the last two bits of `input[2]` and `input[0]` What we should do is merge `input[0]` with input[1] and merge...
assert is not working in src/main.cpp. Its probably cmake that disables it.
Based on readme, I have to run a ethereum node with unlocked account, I think it would be better if we can specify in .env file public RPC node, Public...