The main purpose of the Ethereum Name Service (ENS) is to convert machine-readable identifiers like Ethereum addresses into human-readable names.
The Web began as a decentralized DNS-based system, with anyone able to buy, own, and manage their domain name and move it from host to host as needed, with control and full ownership over all underlying data. But how does a decentralized Web3 name service work?
The community has shown a lot of interest in ENS, which is a new name service built on top of Ethereum. The Ethereum Name Service is a Web3 blockchain system that allows users to establish their own unique and memorable usernames.
Therefore, ENS intends to provide a complementary solution to DNS by using Ethereum smart contracts to govern domain name registration and resolution. By using the service, you can provide a unique name to all your wallet addresses and decentralized websites (DWebs). “alex.eth”, for example, allows you to quickly recognize and locate wallet addresses in a distributed environment.
Registry, registrars, and resolvers are three types of smart contracts in ENS, as explained in the sections below.
A single smart contract manages the ENS registry and keeps track of all domains and subdomains. The system has been deliberately kept basic, and its sole purpose is to bind a name to the resolver responsible for it. It also records the following three crucial data:
- Domain owner: An external account or smart contract can be the domain owner. The domain owner can update the domain’s resolver and TTL, transfer domain ownership to another address, and change the entitlement of subdomains.
- Domain name resolver: The process of converting names to addresses is handled by resolvers. Any contract can become a resolver if it follows specific guidelines.
- ENS Namehash: ENS saves names as hashes, which are produced using the “namehash” method. The namehash is calculated by combining the hash of the top-level part of ENS domain names (known as the “labelhash”) with the namehash of the other parts, then performing another hash on it.
A registrar is a smart contract that owns a domain name and can assign subdomain names to users based on rules (eg payment). The ENS team used auction registrar Vickrey and permanent registrar for .eth name registrations.
On May 4, 2017, the ENS team released a smart contract implementing a Vickrey auction to register names longer than six characters. The Vickrey auction is a kind of sealed auction in which buyers bid without knowing how many other bidders have bid, and the winner of the auction is the highest bidder who only has to pay the second-highest amount. raised.
On May 4, 2019, the ENS team introduced “Permanent Registrar” instead of Auction Registrar for registering names longer than six characters. Perpetual Registrar is designed to operate indefinitely until the Registrar Agreement is superseded due to a Serious Default. The way .eth names are charged has been changed to an annual rent payment model, where each name will be charged $5 per year.
Along with the permanent registrar, the idea of the registrar controller was created to allow name owners to delegate name management. Therefore, a name registered by the Registrar Controller can configure the resolver and name registrations as part of the registration transaction, simplifying the procedure.
Another auction called short name auction for the remaining short names with length 3 to 6 started in September 2019. The ENS team used OpenSea, a well-known crypto-asset marketplace, as a platform. -form of auction, with the English auction as bid. method.
Bidding in an English auction is open to the public and bidders may place multiple bids. The highest bidder will get the name and the number of deposits will match the first year listing fee, which is significantly different from the Vickrey auction period.
The name-record mapping is saved in the resolver. The “public resolvers” set up by the ENS team have predefined eight categories of records (see image below), but ENS can contain any record.
The ENS name resolution procedure is a two-step process. First, the user who wants to resolve the name must search the registry for the appropriate resolver and then get the resolution results from the resolver.