{"title": "ZK Email", "logoImg": "bafkreicxrukbamsxuxtsdv7gykgy4xtilcdu2ii7cd64aox4vjo4lo7nim", "website": "https://prove.email", "bannerImg": "bafkreie2dfwyxiorm5i2zzbgezpxtwodlyquwjehvqcawzc65yx2vxccv4", "createdAt": 1721140087152, "userGithub": "Divide-By-0", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..DXTspR-uvzvPwsGNGwNcIP-F76Nlyuai2vXmE4W00FebUG73liyRf5-8C0E_XCyhh6kCkABe9w_CThg4RtLlBA", "type": "Ed25519Signature2018", "created": "2024-07-16T14:28:00.266Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-07-16T14:28:00.265Z", "expirationDate": "2024-10-14T14:28:00.265Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x6171aeBcC9e9B9E1D90EC9C2E124982932297345", "hash": "v0.0.0:N2WNxQDjqw4fbgxVgl21OqFvIJuDaVRm+0AIhtPv80c=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#zkemail#4804438"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..tttlevYPy889y0prjqrR8j2qVUeE7Muvj4MKBwnTUbepK3Mfbvw7iX8E9ezWmYuC0AMiu7Y3iOsFZg_tcCG2Cw", "type": "Ed25519Signature2018", "created": "2024-07-16T22:50:59.245Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-07-16T22:50:59.245Z", "expirationDate": "2024-10-14T22:50:59.245Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x6171aeBcC9e9B9E1D90EC9C2E124982932297345", "hash": "v0.0.0:235/91DZr8+Zz94P4h/jAj4dOuDG0+Eb5FayiYuYK7g=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#proofofemail"}}}, "description": "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.\n\nWe 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.\n\nWe 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 .\n\nWe 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. The first version of this tech was actually created at Zuzalu! 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).\n\nWe 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.\n\nWe 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.\n\nNote 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.\n\nUPDATE July 2024:\n\nThanks 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.\n\nThe work is entirely open source. Previous work has led to a number of impactful open source contributions in the zk space including:\n\n- The first RSA-SHA256 circuit in halo2\n\n- The first ZK Regex circuits and libraries, in circom and halo2: https://github.com/zkemail/zk-regex\n\n- 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.\n\n- 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.\n\n- 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, benchmarks, and explainers such as https://prove.email/blog/zk .\n\n- 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.", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "zkemail", "projectTwitter": "proofofemail"}
ZK Email
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. The first version of this tech was actually created at Zuzalu! 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, benchmarks, 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