ZK Email
100%
average score over 4 application evaluations
Open-source project for anonymous email verification on the blockchain, enabling email-based recovery for wallets, email as wallet signer, and a public DKIM key archive without centralized attestations.

ZK Email is a set of open source SDKs, libraries, and protocols (https://prove.email) that support making anonymous proofs of redacted existing emails on chain. This is useful for provenant proofs, by directly verifying SHA-RSA signatures from your emails within ZK. It can be used for proof of twitter account, proof of github contribution, and to make KYCs on Airbnb/Coinbase etc portable -- all of which have open source prototypes now, without centralized attesters (see prove.email for links). Our code, roadmap, and ideas are fully open source at https://github.com/zkemail.

We finished and are currently auditing https://github.com/zkemail/ether-email-auth, which lets any developer specify how they want to parse a subject in Solidity, and use that to build a new zk-email enabled app on-chain in 10 lines of Solidity.

We used this to build account recovery modules for wallets, which is live for Gnosis Safes at prove.email/recovery , which allows anyone to add an email address as a decentralized guardian for their wallets. We discussed this at ZK Summit: https://www.youtube.com/watch?v=rZTNzvLXB14 .

We also built email wallet (demo: https://emailwallet.org, docs: http://docs.emailwallet.org) as an open standard and protocol that anyone can plug into -- it allows you to use your email as a wallet signer, allowing much easier onboarding onto Ethereum. In addition, plaintext emails serve as a one-click replacement for hot wallets, for signing and sending transactions. It also lets anyone send any NFT directly to any email address. We also released 2 factor authentication via email signers on Safes using emailwallet.org (https://prove.email/blog/2fa) and general email-login based authentication modules via email wallet (https://zkemail.gitbook.io/zk-email/login-with-zk-email-oauth-api).

We think this is the future of provenant identity proofs on Ethereum, as well as the future of simple wallet interfaces to onboard new people to crypto via emails.

We rely only on pre-existing cryptography and our bespoke, highly optimized ZK proofs to verify your mailserver's signatures -- there is no centralized computation, MPCs, trusted hardware, or attestations. Only trust smart contracts, email, and DNS infrastructure.

Note that the primary developers on the project are funded by grants from Ethereum Foundation's Privacy and Scaling Explorations group, and initial development was funded by 0xPARC. Gitcoin money will go towards hiring developers to contribute, travel expenses for folks working on the project, and funding hackathon prizes to encourage folks to build atop the protocol, as these are not included in our primary grants.

UPDATE July 2024: Thanks to your support on Gitcoin, we were able to achieve a number of key goals. With that money, we built and hosted registry.prove.email, which is a public key archive of 1M+ DKIM public keys. We were also able to fund development https://registry-dev.zkregex.com/, which is a beta version of a tool that lets you construct a new zk email proof by just specifying a 10 line JSON configuration with your regex details (docs at https://zkemail.gitbook.io/zk-email/zk-email-sdk). We were also able to fund travel of one of our developers to Brussels for EthCC, in order for him to build at the hackathon and strategize with the team. We spent a previous Gitcoin grant on infrastructure development for our relayer.


The work is entirely open source. Previous work has led to a number of impactful open source contributions in the zk space including:

  • The first RSA-SHA256 circuit in halo2
  • The first ZK Regex circuits and libraries, in circom and halo2: https://github.com/zkemail/zk-regex
  • Halo2 Benchmarking: We have open sourced a halo2 wasm benchmarking repo that runs any halo2 wasm code in the browser on 100 instances in parallel for any browser on any operating system (mobile or desktop), and spits out the mean running time and variance -- we intend to publish this as an easy to use Cargo and NPM package soon for others to use.
  • Halo2 Optimizations: We have various halo2 circuits to split verifiers, divide circuits for faster parallel client side proving, and many others. We have in addition contributed back to various open source libraries in the ecosystem.
  • Educational content: We have created a set of blog posts (https://prove.email/blog), talks, and docs (https://prove.email/docs) around our experiences, including generic ZK breakdowns and explainers such as https://prove.email/blog/zk .
  • Circom Hash to Curve on the Grumpkin Curve: Our circuits enable proving the private set intersection (PSI) protocol in ZK, which we use for decentralized relayer communication, so that relayers cannot censor unfavorable queries.

ZK Email History

People donating to ZK Email, also donated to

Creating a cross-community knowledge base and Interest Graph for Token Engineering through a graph database and curation service protocol, aimed at fostering growth in token engineering.
A swap and perpetual DEX offering secure, liquid trading for various blue-chip crypto assets.
One-month residency in Japan for developers focusing on signature verification within zk-SNARKs, privacy-preserving apps, identity solutions, and client-side proving technology enhancements.
A decentralized science non-profit develops tools for communities to measure and prove their environmental efforts, creating sustainable income sources through decentralized data collection and research.