Transactions on the blockchain are pseudonymous. It's easy to track spending patterns of individuals / companies - which is non-ideal for some industries. Also, we were curious to have a protocol similar to ZCash on ethereum.
What it does
Enables you to send/receive any ERC20 tokens privately. We are calling this PoC - ZkDAI. When you come to our dapp, we offer you to swap any of your tokens (using kyber swap) into DAI, send it to the smart contract and convert into a secret value note. This transaction is public. Subsequently, you can spend the secret notes like UTXOs. At any point you can convert your secret note into the equivalent DAI value.
How we built it
Using zero-knowledge proofs and zokrates circuit compiler for the zkSnarks.
Challenges we ran into
Learning to deal with the zokrates CLI.
Accomplishments that we're proud of
We were able to build everything we had in mind in the scope of the hackathon.
What we learned
Bit manipulation, converting numbers between bases and being able to verify zkSnarks on-chain using zokrates
What's next for ethsingapore-zk-dai
In depth study of the aztecProtocol to see how it can benefit our idea.