Skip to content

SoulWallet/email-approver

Repository files navigation

Email Approver

The ZK Trusted Setup Ceremony ended on UTC 2024-07-27. Thanks to the following individuals for their contributions:

0xcodemonkey 0xturboblitz Coriolan-dev Divide-By-0 Gooong Sainadhbhandaru adamegyed aguzmant103
anatoanctk32 bradchoato brucexu-eth chonggrovuple chrismPssina colfax23 contact-soulwallet ctrlc03
dancoombs davidinsuomi dineshraju erenaud guiprogenam hdlaocai hoanngothanh jayden-sudo
jhfnetboy julian1920 kwakoumccout198 nichanank remicolin ulthatnala yamadasyndrome zengjiajun0623

Circom Source Code: EmailApprover.circom

Solidity Verifier: emailapprover_verifier.sol

Verification Key: emailapprover_vkey.json

Final ZKey: emailapprover_final.zkey

Introduction

EIP1271 style approver by verifying user's email on-chain. Powered by zkemail. This can be used as:

  1. Email Guardian for smart contract wallet
  2. Gnosis-Safe wallet owner

Take Email Guardian as an example. This basicly works as:

  1. User input his email_address. The relayer generate a random number email_commitment_rand and keep it private. Then compute email_commitment = hash(email_address, email_commitment_rand). This is to hide the email address.
  2. Deploy the EmailApprover.sol with email_commitment as init parameter. Set this deplyed contract as guardian.
  3. During social recovery. User sends an email to the relayer with subject Approve address 0x{guardian wallet address} for hash 0x{social recovery hash}.
  4. The relayer generate a proof from email.
  5. The relayer trigger approver function of the Email Guaridan. The contract will verify the email's DKIM signature and extract the approved hash.
  6. If the verify passes, the Email Guardian will approve the given hash. User can then continue to execute Social Recovery.

Contributions:

emailapprover_00000.zkey emailapprover_00001.zkey emailapprover_00002.zkey emailapprover_00003.zkey emailapprover_00004.zkey emailapprover_00005.zkey emailapprover_00006.zkey emailapprover_00007.zkey emailapprover_00008.zkey emailapprover_00009.zkey emailapprover_00010.zkey emailapprover_00011.zkey emailapprover_00012.zkey emailapprover_00013.zkey emailapprover_00014.zkey emailapprover_00015.zkey emailapprover_00016.zkey emailapprover_00017.zkey emailapprover_00018.zkey emailapprover_00019.zkey emailapprover_00020.zkey emailapprover_00021.zkey emailapprover_00022.zkey emailapprover_00023.zkey emailapprover_00024.zkey emailapprover_00025.zkey emailapprover_00026.zkey emailapprover_00027.zkey emailapprover_00028.zkey emailapprover_00029.zkey emailapprover_00030.zkey emailapprover_00031.zkey emailapprover_00032.zkey emailapprover_final.zkey

Transcripts

emailapprover_00001_jayden-sudo-5867853_verification_transcript.txt emailapprover_00002_zengjiajun0623-14859235_verification_transcript.txt emailapprover_00003_davidinsuomi-1399563_verification_transcript.txt emailapprover_00004_Coriolan-dev-84125260_verification_transcript.txt emailapprover_00005_aguzmant103-67167307_verification_transcript.txt emailapprover_00006_ctrlc03-93448202_verification_transcript.txt emailapprover_00007_remicolin-98749896_verification_transcript.txt emailapprover_00008_dancoombs-8165816_verification_transcript.txt emailapprover_00009_adamegyed-5456061_verification_transcript.txt emailapprover_00010_0xturboblitz-62038140_verification_transcript.txt emailapprover_00011_Gooong-24506085_verification_transcript.txt emailapprover_00012_hoanngothanh-7513768_verification_transcript.txt emailapprover_00013_chonggrovuple-5982868_verification_transcript.txt emailapprover_00014_yamadasyndrome-9149045_verification_transcript.txt emailapprover_00015_guiprogenam-5965739_verification_transcript.txt emailapprover_00016_kwakoumccout198-269450_verification_transcript.txt emailapprover_00017_chrismPssina-4196209_verification_transcript.txt emailapprover_00018_Sainadhbhandaru-6338468_verification_transcript.txt emailapprover_00019_brucexu-eth-95468177_verification_transcript.txt emailapprover_00020_bradchoato-5894071_verification_transcript.txt emailapprover_00021_jhfnetboy-2945287_verification_transcript.txt emailapprover_00022_anatoanctk32-6374366_verification_transcript.txt emailapprover_00023_ulthatnala-5973485_verification_transcript.txt emailapprover_00024_erenaud-2235618_verification_transcript.txt emailapprover_00025_colfax23-914240_verification_transcript.txt emailapprover_00026_Divide-By-0-4804438_verification_transcript.txt emailapprover_00027_julian1920-91303740_verification_transcript.txt emailapprover_00028_0xcodemonkey-102006890_verification_transcript.txt emailapprover_00029_dineshraju-118484_verification_transcript.txt emailapprover_00030_hdlaocai-12641307_verification_transcript.txt emailapprover_00031_nichanank-15038946_verification_transcript.txt emailapprover_00032_contact-soulwallet-174410535_verification_transcript.txt emailapprover_contact-soulwallet-174410535_final_verification_transcript.txt