The Ethereum Name Service (ENS) is essentially a distributed, open as well as and extensible naming system that is based on the Ethereum blockchain, with the main goal of mapping human-readable names to machine-readable identifiers in the form of Ethereum addresses, other cryptocurrency addresses, content hashes, or metadata.
ENS is a decentralized application that offers a new naming system, in which cryptocurrency users can convert any long alphanumeric wallet address into something anyone can read.
ENS was initially started in 2017 at the Ethereum Foundation; however, in 2018, the project managed to spin off into its own separate organization. The platform is managed by the Singaporean non-profit True Names LTD.
The concept of ENS domains Is very similar, in fact, to the Domain Name System (DNS), which is intended to simplify most IP addresses on the web through creating human-readable names and URLs that are easy to remember. ENS essentially utilizes the same operating process on domains. However, it does so through the implementation of decentralized finance (DeFi).
The main objective ENS tackles is to map a human-readable name, such as ABC.eth, to machine-readable identifiers, such as Ethereum addresses, hashes, or metadata.
This means that ENS can be unique to each user who is pretraining to their Ethereum address. ENS can be set up in a way through which it allows users to receive multiple cryptocurrencies through the utilization of a single address, and all they have to do is add the token address within the ENS record section. For ENS to work, it utilizes two core components, including the ENS Registry and the Resolvers. To resolve an ENS address, if there is a user who has a specific domain name, let’s use QWE.eth as an example here; it first queries the registry smart contracts to find the correct resolvers. The resolver then references and responds with the underlying Ethereum address.
For an ENS domain to be created, it uses an ERC (Ethereum Request for Comment) token, which is a standard used for creating and issuing smart contracts. ENS uses ERC-721 tokens. This is a token standard that is fully required due to the fact that it provides a unique wallet address, which is deployed on an ERC-721 token to each user individually.
There are two smart contracts that run on the Ethereum blockchain, where a registrar owns a domain. If someone wants to set up a domain, they will have to interact with the registrar. Different domain names feature different registrars, and if a user wants to have a .eth domain, in that case, they are required to interact with a .eth registrar. That said, the main function behind the ENS registry is to essentially map the domain name to the correct resolver. The mapping of ENS within an Ethereum address starts with querying the registry. In this case, the registry maintains a list of domains and subdomains, as well as the records of the owner, resolves, and caching time-to-live (TTL) for each, which in turn gives the owner of a specific domain access to make changes to the data in question. In this scenario, the ENS registry is responsible for storing three pieces of information, including the owner of the domain, the resolver for the domain, and the caching time-to-live for all records under the domain.
In other words, in traditional DNS names, the top-level domain (TLD) refers to the last segment. For example, the .com portion in ENS would be the .eth portion.
The owner of the domain can be an external account or a smart contract, and the owners of domains within the ENS registry can set specific properties, including the resolver and TTL for the domain, transfer ownership of the domain to another address and change the ownership of any subdomains.
The resolvers are responsible for resolving the query in regards to converting an ENS domain name into an address or a hash. As such, the resolver needs to implement the correct method, which is directly dependent on the type of record to get the correct output. This type can be a cryptocurrency address, or even an IPFS content hash, or just about any other valid data. Any new record type can be defined through the EIP standardization process at any point in time without an impact on the ENS registry or existing supported resolvers. This is a two-step process, where the registry will first need to check for the resolver responsible for the name, and then the resolver will need to provide the answer to the query.
The domain names that are human-readable are not interpreted directly by back-end applications, and the ENS smart contract does not understand any human-readable domain names either. This is an issue that is resolved through the introduction of a fixed-length 256-bit cryptographic hash which is generated from the human-readable name through the utilization of a process known as Namehash.
Namehash is a recursive process that essentially derives a unique hash from a domain name. Namehash is hierarchical, and what this means is that ENS is able to derive the hash of any subdomain if its parent domain is known.
For example, the namehash of 'alice.eth' is 0x787192fc5378cc32aa956ddfdedbf26b24e8d78e40109add0eea2c1a012c3dec, and this is the representation of names that is used exclusively inside ENS. With the goal of getting a consistent view of the ENS, the domain names are normalized before the hash is found within a domain name through the utilization of a process known as UTS-46 normalization, which is responsible for checking and prohibiting any invalid character and treats all upper and lower case names equivalently.
The ENS system consists of what is known as a dot-separated hierarchical name called domains.
The mainnet consist of multiple types of registrars:
- .eth which is the permanent registrar
- .test (testnets only), which is the test registrar
- .addr.reverse, which is the reverse registrar
- .xyz which is gained through DNS integration
- .luxe which is gained through a custom integration that allows any owner of the DNS name to use ENS
- .kred is gained through a custom integration that synchronizes and changes to a .kred end token to DNS automatically
- .art which is gained through custom integration
When we go over all of these, .eth and .test are the top-level domains and are owned specifically by smart contracts, which are called registrars. These registrars are responsible for the process of setting up and maintaining rules for the associated subdomains.
Due to the fact that ENS follows a hierarchical structure, this means that if a user holds a domain, they can configure the subdomains if required with full control over all of the associated subdomains.
Ethereum Name Service (ENS) has specific features which make it appealing, such as decentralization, immutability, censorship-resistance, user-owned and controlled presence, a large ecosystem that has support by a multitude of wallets, decentralized applications, and browsers, and support for a multitude of different languages.
As a means of preventing other users from claiming a domain, users are required to renew it. A domain can be renewed at any time before it expires through the process of paying the required renewal fee, which is fully paid in Ether (ETH).
The minimum renewal period is twenty-eight days, and there is no limit in regards to the maximum renewal periods. ENS additionally provides a grace period of ninety days after the domain expires, and users can renew their domain name during this time period in order to retain full ownership.
ENS is the native cryptocurrency token used within the system. Users that hold onto the ENS Token can also gain voting rights through the network’s decentralized autonomous organization (DAO) and decide how ENS evolves going forward.
Additionally, users can use ENS tokens to pay for fees within the network and send value and can even receive airdrop rewards. Holders of these tokens can also assign delegates. In other words, they can select a community member to represent them, which can be changed at any time.
The ENS DAO is governed by the ENS token, and ENS by itself is an ERC-20 token.
Before the launch of the ENS token, which occurred on November 9, 2021, 100 million tokens were, in fact, airdropped to the ENS community. Twenty-five percent of these tokens were given to registered domain users, and another 25% were given to significant domain contributors. The remaining 50% are within the DAO Community.
The team behind ENS consists of the following people:
- Nick Johnson—Creator & Lead Developer
- Jeff Lau—Frontend & Solidity Developer
- Makoto Inoue—JS & Solidity Developer
- Kevin | validator.eth—Support Lead
- Leon Talbert—Frontend Developer
- Richard Moore—Solidity Developer
- Muhammed Tanrıkulu—Full Stack Developer
- Alisha.eth—Community Manager
Brantly.eth On Digital Identity | Director of The Ethereum Name Service ($ENS) | Moon or Bust🚀
February 4, 2022
Build A Web3 Domain Name Service With Vue.js, Solidity and Hardhat!
April 18, 2022
Buy your ENS domain before it's too late! (What is Ethereum Name Service?)
August 22, 2021
Can The Ethereum Name Services ($ENS) Be The Revolutionary Way By Which Crypto Adoption Is Achieved?
November 11, 2021
Core Unit Tools #07 Ethereum Name Service (ENS) | Sept 10, 2021
September 14, 2021