This project is meant to be used for educational purposes only.
Warning. Check out the legal disclaimer.
ZyKloon is a solution that allows to perform anonymous transactions on the Ethereum blockchain.
This project was built during the ZKHack Lisbon Hackaton held in Lisbon from March 31 to April 2, 2023.
Find the deployed contract and app id here or at
bytes16 immutable GROUP_ID = 0x1f24b274281ec802e53e1ded0dffc810;
address immutable MY_CONTRACT = 0x0509eE017540EC6156978dfa843B0615c881402D;
The transparency of the blockchain is a double-edged sword. On the one hand, it allows us to verify the integrity of the transactions and to prevent fraud. On the other hand, it allows anyone to monitor our transactions and to know our identity.
This is a problem for people who want to remain anonymous, for example, when they want to transfer funds from a public and wide known address, used for web3 socials and recognition, to a more private address which is used for personal transactions.
The problem is even more acute under the current economic and political context, where governments are increasingly trying to control the flow of money and to monitor the transactions of their citizens.
ZyKloon is a solution that allows transfer of Ether between addresses that belong to the same Sismo vault.
The initial scenario requires the user to have a Sismo vault with several accounts.
Next, one can deposit funds into the ZyKloonVault from one of the accounts of the Sismo vault.
The deposit of funds into the ZyKloonVault creates an event, which is picked up by the ZyKloon-epoch-depositors
Sismo group.
Therefore, the depositing address is "whitelisted". For more information on how Sismo groups work, please refer to the Sismo documentation.
To withdraw funds from the ZyKloonVault, one needs to provide a proof of the following statement: "I am in control of an address that belongs to the ZyKloon-epoch-depositors
Sismo group". With this proof, which is powered by Sismo's ZKConnect feature, funds can be withdrawn from the ZyKloonVault to another address (namely 0x2
in the example below).
Notice Deposits are limited to a fixed amount of 0.1 Ether, which is set in the
ZyKloonVault
contract. This is done to simplify accounting. In addition, deposits and withdrawal are limited to one per epoch (around 1 week). This is done to simplify the implementation of the Sismo group.
To run our frontend at localhost:3000
, first clone the repo
git clone git@github.com:luksgrin/ZKHack_project.git
and then execute the following commands:
yarn install
yarn dev