/heiswap-dapp

Heiswap Dapp - Mix and Mask your Ethereum Transactions!

Primary LanguageJavaScriptMIT LicenseMIT

Heiswap Dapp


Branch Status URL
master Build Status heiswap.exchange

Heiswap (黑 swap) is an Ethereum transaction mixer that ultilizes parts of CryptoNote to enable zero-knowledge transactions.

It ulitilizes Ring Signatures and pseudo-stealth addresses to achieve its zero-knowledge properties. The deployed smart contract handles the signature verification, while the client is responsible for generating the pseudo-stealth address.

Ring signatures was only possible on the EVM (gas-wise) due to the recent addition of EIP198 and EIP1895.

You can play with the Ropsten version right now.

Development

Project is a standard create-react-app project, using truffle to compile, migrate and deploy contracts.

Solidity files are located in contracts, and compiled to src/contracts

Run yarn start to run the project.

The proof-of-concept repository is located here.

Verifying Contract on Etherscan

  1. Deploy to etherscan. (truffle migrate --network ropsten)
    • Remember to export ENV vars ETH_SK and INFURA_KEY
  2. Install truffle-flattener
  3. Flatten source files: truffle-flattener contracts/AltBn128.sol contracts/Heiswap.sol contracts/LSAG.sol > /tmp/etherscan.sol
  4. Upload single large file (/tmp/etherscan.sol) on to etherscan to verify, remember to add the library addresses from src/contracts/Heiswap.json -> links.

Special Thanks

This project would not have been possible without the existence of other open sourced projects, most notably