Inspiration
The private transaction layer in the EVM-compatible Ecosystem will allow users to protect their privacy on address linkability and transaction data/amount, while getting the high return of APY in the DeFi.
What it does
Address Anonymity, Transaction Amount/Inputdata encryption and privacy-preserving computation on the encrypted inputdata.
How we built it
We use zk-zkRollup to achieve a low gas cost and programmable privacy transaction. For each transaction, we use The Twisted ElGamal scheme/Vector Commitment to encrypt the amount or input data for ERC20/ERC721 and use mixed proof system to generate the TX validity proof (signature, range proof, balance audibility, etc.). the sequencer will run a chain-BFT to reach the consensus of the next batch of transactions and submit the Merkle root of the transaction batch to Rollup Contract. Once the provers watched a new transaction Merkle root, it fetches the transaction from the node and generates the block validity proof on the Account Merkle Tree. Once the proof is generated, it submits to the Rollup Contract, and the Rollup Contract will verify the proof with the new Account Merkle Tree root and its TX tree root as the public input. If it's valid proof, Rollup Contract will return the deposit and another reward to the prover.
We provide EIP-level compatibility, which means we provide privacy-preserving ERC20, ERC721, Swap interfaces.
The audit is supported in our scheme. We can limit the upper bound of each transaction.
Our mixed ZKP system is being built on FRI and KZG arguments, to achieve no trusted setup on the user-end, and constant proof size with low gas cost on L1 verifier contracts. We had built the prototype on our eigen-zkit. We first implemented the Javascript/NodeJS bellman prover, and use this prover to generate proof for encrypted TX and rollup block. In the near future, we will replace our TX'es proof system with FRI, and generates the final block validity proof by Plonk.

Challenges we ran into
Once the zk-zkRollup Network is launched, we need funds to warm up the network since the transactions are fewer, but we also need to ensure each transaction can be confirmed in about 10mins.
Accomplishments that we're proud of
We also can extend the Account Balance Merkle Tree to support general assert, order, etc.
The decentralized Prover design, and zk-VM framework(transpiling constraints from Circom DSL to R1CS, and then to Plonk Gate).
What we learned
- zkzk-Rollup is the best way to offer privacy to users in EVM-compatible ecosystem, compared to L1 privacy layer and L1 privacy-first blockchain;
- Mixed proof system is vital for zkzk-Rollup. On the user side, non-trust setup and fast proving is necessary, but on the L1 rollup verifier side, small proof size and fast verifying is a must to save gas.
What's next for Eigen Network
Currently we do not implements our zk TX in the video demo, but the code is presented in our GitHub.
So the in the next 1 month, we will implement the zk TX, so we realize a complete zkzkRollup.
Then we plan to build our zk-zkVM based Private Uniswap in the next 2 monthes.
Built With
- privacy
- zkp
- zkzkrollup

Log in or sign up for Devpost to join the conversation.