ZK Email Oauth Login

Overview

ZK Email OAuth is a revolutionary technology that combines email authentication with zero-knowledge proofs to enable secure, privacy-preserving user authentication on blockchains. This system leverages existing email infrastructure, particularly DKIM (DomainKeys Identified Mail) signatures, to create a trustless bridge between Web2 and Web3, while offering a simple OAuth-like user experience.

Oauth SDK

The OAuth SDK is a specialized component of the ZK Email ecosystem that enables users to authenticate with their email and execute blockchain transactions through ephemeral keys. It simplifies user onboarding and interaction with blockchain applications without requiring private key management.

Key Features

Feature
Description

Single Email Reply

Users only need to reply to one email to authenticate, unlike Email Wallet which requires replies for each transaction.

Ephemeral Keys

Generates session-based keys that allow for multiple transactions after initial authentication.

Token Allowances

Configurable limits on what the ephemeral key can access or transfer.

Natural Usernames

Supports registration and authentication with human-readable usernames.

Expiry Controls

Optional time limitations for ephemeral key validity.

Singleton Wallet

Creates a deterministic wallet address for each unique email user.

Authentication Flow

  1. Initial Request: User enters their email address in the dApp interface

  2. Email Sending: Relayer sends an authentication email to the user

  3. Email Reply: User simply replies to the email to verify ownership

  4. ZK Proof Generation: Relayer generates a zero-knowledge proof of the email verification

  5. Ephemeral Key Activation: Upon verification, an ephemeral key is activated on-chain

  6. Transaction Execution: User can now execute multiple transactions using the ephemeral key

  7. Integration with Payment ID

In the Payment ID system, the OAuth SDK enables users to:

  • Authenticate with just their email address

  • Register Payment IDs without managing private keys

  • Execute transactions through ephemeral session keys

  • Manage their Payment ID settings through the dApp interface

Last updated