mobius
mobius copied to clipboard
Trustless Tumbling for Transaction Privacy
## Description As per discussion with @zoenolan in the `#dev` channel in Slack, this repository is to be archived as it is now legacy and work is now carried on...
Recently Vitalik Buterin proposed to abuse `ecrecover` to compute hashed result of `ecmul`: https://ethresear.ch/t/you-can-kinda-abuse-ecrecover-to-do-ecmul-in-secp256k1-today/2384 I had implemented his idea: https://github.com/1Address/ecsol/blob/master/contracts/EC.sol It uses about 32K gas to call `ecmulVerify`.
As per: https://github.com/mimblewimble/grin/blob/master/doc/intro.md https://fc17.ifca.ai/bitcoin/papers/bitcoin17-final41.pdf The components necessary would be: * Range proof (base 4? e.g. Back-Maxwell range proof) to verify the value * Pedersen commitment to amount * Signature provided...
Once solidity v0.4.22 is released, update all revert and require statements with a reason
For functions which could be pure, e.g. all of the bn256g1, anything which doesn't reference state variables. See: * https://github.com/ethereum/solidity/issues/3388 * https://github.com/ethereum/solidity/pull/2966
Within the Mixer contracts Withdraw function the signature is checked for validity, including checking for the existence of the tag, then the 'tag' is added to ensure the same signer...
The Withdraw function in the Mixer contract (Mixer.sol), includes a require condition for a full ring (Line 199). This require condition is also included in the LinkableRing solidity library (LinkableRing.sol)...
For example: * Alice Deposits into a Ring of size 4 (A) * All inputs are Withdrawn into 4 other Rings (B, C, D & E), each of size 4....
As with all Ethereum transactions the address submitting the transaction can be used to trace origins and destinations of payments, however the ring signature will still reduce linkability to a...