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.