ens::verifiable-records

Introduction

This document provides complementary information for the SPP2 ZK Email Application proposal. ENS currently supports multiple Top-Level Domains (TLDs) (e.g., .eth, .com); we propose extending this functionality to allow users to verifiably link Web2 identities—such as email addresses and social media accounts—to their ENS names. Additionally, users will be able to use their Web2 identifiers, like email addresses, directly as their ENS names, similar to existing domain name usage. The scope includes integrating social username resolution, developing ZK-based verification for emails and social accounts, creating resolver contracts for verified identity records, and building SDKs and UI components for easy integration and user interaction.

Context on ENS

Registry: The registry maintains a list of domains(nodes), recording the owner, resolver, and TTL for each, and allows the owner of a domain to make changes to that data.

How to resolve Every name has a "resolver". A resolver is simply a contract that implements the resolver specification and can be queried for information about a name. To get the resolver responsible for a name, you can query the Registry for the resolver of a name.

Resolvers are a core part of the ENS protocol. They give each name, represented as a "node", the power to control the resolution process for itself and all of its subnames.

The default resolver for all names is the Public Resolver, written by the ENS Labs team.

How to register Top-Level Domains (TLDs), like .eth, .com, .test and .addr.reverse, are owned by smart contracts called registrars, which specify rules governing the allocation of their names. Anyone may, by following the rules imposed by these registrar contracts, obtain ownership of a domain for their own use.

Some existing registrars:

TLD Registrar Contract description
[root] The Registry Owned by ENS Root which is owned by ENS DAO Wallet, can set top level domains
.eth ETH Registry It allows for trustless on-chain name registration and is in charge of the ".eth" TLD. Essentially a mapping of a .eth name to address*
.com, .xyz, etc DNS Registrar Since 2021, it has been possible to import a DNS name and use that as an ENS name. Essentially a mapping of web2 domain name to address
.addr.reverse Reverse Registrar Mapping from address to ENS name

Goals

  1. Verifiable Text Records
    1. Email: Enable users to verifiably link their email addresses to their ENS names.
    2. Social Account Linking: Enable users to verifiably link their social media accounts to their ENS names.
      1. support at least X handle
    3. the design should not limit users to only use specific resolvers
  2. Record Verification: Provide clients with a mechanism for the lookup and verification of verifiable records
    1. should work for both off-chain and on- chain clients
  3. Email-as-ENS: Allow users to use their email addresses directly as their ENS names.
    1. [email protected]a$b.com.zk.eth
  4. Backward Compatibility maintain compatibility with currently existing resolvers
  5. Forward Compatibility: Addition of new text verifier types should not break API