Overview

The ZK-Email Wallet is a non-custodial cryptocurrency wallet managed via email.

The core component of this wallet is a smart-contract. The V1 contract supports:

  • Transfers of ETH
  • Transfers of ERC20 tokens
  • Extensions for using external contracts, such as Uniswap, and other functionalities

ZK-Email

The wallet is managed by users through email, leveraging zk-email or proof of email technology for trustless operations.

ZK-Email is a mechanism that validates the existence of an email message and verifies statements about any data contained within it. This technology can be used to build a trustless bridge from Web2 to Web3, without the need for third-party intermediaries like oracles such as Chainlink. In this context, email serves as a source of oracle data.

Core Technical Components

The core components of ZK-Email include:

  • ZK-RSA - RSA signature verification in Zero-Knowledge (ZK)
  • ZK-Regex - Regex pattern matching in ZK

Most modern mail servers sign email messages with a DKIM signature (essentially RSA) to mitigate various attack vectors. By verifying the DKIM signature of an email, we can confirm that it was processed by a specific mail server. This alone makes it possible to build a Web2 <-> Web3 bridge. However, in most cases, we need to conceal certain information contained in the message. Removing this information from the message would invalidate the signature, so we use ZK proving systems to check the signature in ZK and keep all data private, except for what needs to be public. This approach enhances privacy and significantly reduces the size of the calldata.

One challenge is that email messages often don't adhere to a specific format. To effectively retrieve necessary information, we use ZK-Regex.

For more information on ZK-Email, refer to this blog post by Aayush.

ZK-Email can be used to build various applications, including:

  • Proof of Twitter - Proving ownership of a Twitter account/username on-chain
  • ZK-P2P - A trustless bridge from fiat to crypto

The ZK-Email Wallet is one such application built using ZK-Email.