Email2Ether

Email2Ether

Email2Ether: Keyless Email Wallet via ZK

322
Built at ETHDenver 2024
Base: First Place
G3
Email2Ether

Email2Ether

Email2Ether: Keyless Email Wallet via ZK

The problem Email2Ether solves

  • Centralized Private Key Storage: Traditional wallet services store private keys on their servers, posing a significant risk of hacks and data breaches. Our solution eliminates the need for centralized storage, thereby reducing the risk of security breaches.
  • User's Data Loss: Users often face the risk of losing access to their assets if they forget their private keys or backup phrases. Our system allows for easy recovery and access through email verification, mitigating the risk of data loss.
  • Compromise Between Convenience and Security: Current solutions force users to choose between ease of use and security. Our email-based authentication offers a secure yet user-friendly alternative, ensuring both convenience and high-level security.
  • Dependency on User Memory: Traditional methods require users to remember complex information, leading to a high risk of loss and inaccessibility. We remove this dependency, enhancing user experience and security.

Challenges we ran into

  • Understanding ZK-SNARKs: Understanding zk-email and zk-regex for regex matching circuits and email preprocessing was complex. We overcame this by intensive research and trial and error.
  • Optimizing Circuit Size: Initially, our circuits were too large due to body hash checks (millions of constraints). By focusing solely on email header and signature verification, we significantly reduced the circuit size while maintaining security.
  • Hash Function Consistency: We faced challenges ensuring the Poseidon hash function worked identically across frontend, backend, and Circom. This was resolved by detailed code reviews and cross-platform verification.
  • Parsing Circuit Output: The circuit outputted data in a complex format (packed ASCII bytes). We developed a method to convert this into usable wallet addresses, streamlining the ownership transfer process.
  • ERC-4337 Implementation: We encountered a bug that the ERC-4337 Entrypoint Contract version isn't same with our local development version, where the bug is hard to find. We overcame it by looking deeply into the code and execution trace.
  • UI/UX Innovation: Creating an intuitive UI/UX was challenging because it's a new concept of login. We iterated based on user feedback to make the authentication and wallet creation flow user-friendly.

Tracks Applied (9)

Identity, Privacy & Security Track

We develop an innovative wallet based on email identity and ZKP, also preserving user's privacy of email address

Best Library / Framework (”Best Use of Arbitrum Library”)

We develop an innovative email wallet based on ZKP and ERC-4337. We use Artibrum's developer tools and deploy/test it on...Read More

Arbitrum

Build a Consumer Product

We develop an innovative email wallet based on ZKP and ERC-4337 with intuitive UI, which has the potential for mass cons...Read More

Base

Build on Account Abstraction

We develop an innovative email wallet based on ZKP and ERC-4337 with intuitive UI, which has the potential for mass cons...Read More

Base

Build on Linea

We develop an innovative email wallet based on ZKP and ERC-4337. We use Linea's developer tools and deploy/test it on Li...Read More

Linea

Build the Polygon CDK

We develop an innovative email wallet based on ZKP and ERC-4337. We use Polygon's developer tools and deploy/test it on ...Read More

Polygon

Zircuit Integrations

We develop an innovative email wallet based on ZKP and ERC-4337. We use Zircuit's developer tools and deploy/test it on ...Read More

Zircuit

Best Overall Projects on Zircuit

We develop an innovative email wallet based on ZKP and ERC-4337. We use Zircuit's developer tools and deploy/test it on ...Read More

Zircuit

ZK is the Endgame

We develop an innovative email wallet based on ZKP and ERC-4337. We use Polygon's developer tools and deploy/test it on ...Read More

Polygon

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion