Inspiration

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.