Trustless and 0 fee international remittance using ZK proofs
We have built a trustless, 0 fee and globally accessible cross platform payment system that utilizes ZK proofs of email DKIM signatures. Venmo and Revolut both send proof of payment emails that can be verified using ZK Email.
The solution is cross platform (Venmo to Revolut) which allows much better rates than using TradFi
Use ZK proofs to prove emails from Venmo for free domestic USD payments and from Revolut for free domestic EUR payments
The system uses coincidence-of-wants to match all user intents in the system and keep net currency flow 0 across countries. This means USD stays in US, and EUR stays in Europe
Take advantage of superior and permissionless forex liquidity in DeFi using USDC EUR stablecoins in Uniswap or Curve
The sender and receiver donβt need to be on-chain to complete the flow, similar to your favorite Web2 apps
No need to install crypto wallets (e.g. Metamask)
There are 4 actors in the system:
There are 2 ZKPs that need to be generated in order to complete 1 x-border transfer:
We used the latest libraries in ZK such as ZK-email for verification of email DKIM signatures to prove payment emails. We used Circom and RapidSnark serverside proving which enables fast Groth16 proofs and abstract away the need for users to interact with the blockchain.
We designed a network of keepers and on / off-rampers. The system uses coincidence-of-wants to match all user intents in the system and keep net currency flow 0 across countries. This means USD stays in US, and EUR stays in Europe. This is similar to Wise's flow in Web2
Since Circom client side proving is slow, we needed to use a server, which does not preserve privacy of user emails. This means that some privacy might be leaked to the server, but emails mostly don't contain sensitive information. The user also had to manually upload raw .eml files which was a bit hacky.
We deployed our project to Polygon and used a real USDC agEUR 0.01% pool on Uniswap V3 to transact. This was pretty cool that we were able to deploy a mainnet demo and use ZK to settle real transactions
The other notable thing was that in our UI, the sender and receivers of x-border payments do not need to connect Metamask or any wallet to use the app. This is the holy grail of crypto, where users don't need to know that they're interacting with a blockchain