Ethereum Name Service

The Ethereum Name Service (ENS) is an open source decentralized Internet naming protocol that runs as a set of smart contracts on the Ethereum blockchain. Similar to the Domain Name System (DNS), ENS translates computer identifiers into human-readable names with a dot-separated right-to-left hierarchical naming structure. ENS is a working solution to Zooko's triangle.
ENS was proposed by Nick Johnson on April 4, 2016 and launched on May 4, 2017 with the native top-level domain (TLD) .eth. Since then, DNS TLDs such as .luxe, .kred, and .xyz have been integrated for use on ENS.
Standardized record support includes cryptocurrency addresses, content hashes, and contact information.
The development of ENS is managed by the non-profit organization True Names LTD.
== Design ==
=== Structure ===
ENS has three major components: the registry, registrars, and resolvers.
==== Registry ====
The registry is a smart contract that stores all names and subdomains, who owns them, their resolvers, and a caching time-to-live (TTL).
==== Registrars ====
A registrar is a smart contract that owns a name and automatically issues subdomains to users who meet the criteria defined in the smart contract (e.g. paying a certain price).
==== Resolvers ====
A resolver is a smart contract that stores and serves records upon request. Users may create their own resolvers and record types. True Names LTD maintains a general purpose resolver called the Public Resolver, which is the most widely used resolver.
=== Root Key Holders ===
The ENS root zone is managed by a four of seven Ethereum multisig. Key holders rotate on a regular basis.
=== Namespace ===
Like DNS, ENS uses a dot-separated right-to-left hierarchical naming structure. ENS launched in May 2017 with the native TLD .eth, which is not in the DNS root zone. The ENS project has since pledged to not create additional TLDs outside of the normal ICANN process, to seek to get .eth reserved in the DNS root zone, and to support ICP-3.
Since 2018, ENS has integrated the DNS TLDs .luxe, .art, .club, and .kred for use on ENS. The TLD .xyz has been integrated in a way that owners of second-level domains can claim their corresponding names on ENS directly using DNSSEC without working with the TLD owner.
=== Records ===
ENS can store any arbitrary data, and users can create custom record sets.
A resolver contract which implements the most common record types, called the "Public Resolver", is provided by True Names LTD. The following are its standard record types and what they store:
* Address: Ethereum address
* Other Addresses: Arbitrary cryptocurrency address with a key to identify the cryptocurrency
* Content: IPFS hash, Swarm hash, or Tor .onion address
* Text Records: Arbitrary information with a key to identify the information. Standard text record keys include "email, "URL," "avatar," "vnd.twitter," "vnd.github", "description," "notice," and "keywords." Users can also create their own arbitrary text record keys.
* DNS Records: Though not supported by the ENS Manager App user-interface, the Public Resolver supports all DNS record types
== Uses ==
=== Cryptocurrency wallets ===
The most common use of ENS is storing and resolving cryptocurrency addresses. ENS supports the addresses of any arbitrary cryptocurrency or blockchain. This makes it easier for users to send and receive cryptocurrency.
=== Decentralized web ===
ENS-IPFS websites have native support in Brave, Opera, MetaMask, Status, and others. In browsers without native support for ENS-IPFS websites, users may append ".link" to their .eth website name to visit it via a system called EthDNS. Almonit and Blockscan are search engines for ENS-IPFS websites.
As of April 2020, the ENS Manager App added a tool that allows users to upload to IPFS using Temporal Cloud and saves the IPFS hash to their name's Content record.
=== Identity ===
ENS text records allow users to attach personal information, such as an email address and avatar, to one's ENS name. Other users can use this information to contact them, or dapps can use the information to automatically construct user profiles. Dapps can also use ENS's reverse resolution feature to display a user's ENS name as their username.
== History ==
=== Early History (2013 - 2018) ===
In 2013, Vitalik Buterin listed a decentralized naming system akin to Namecoin among possible applications that could be built on Ethereum in his "Ethereum White Paper."
In April 2016, Nick Johnson proposed a specification for the Ethereum Name Service in EIP 137. Rather than having its own blockchain or token like Namecoin, it would run as a set of smart-contracts on Ethereum and use the native Ethereum currency ETH for payments.
Johnson, Alex Van de Sande, and others developed the first version of ENS, with a successful launch on May 4, 2017. The date was chosen for its association with Star Wars Day. Only .eth names that were seven characters or longer were made available for registration to limit the cost of a system failure. Names were released via vickrey auctions run on Ethereum, with the winning bid being locked in a smart contract as a deposit that could be returned if the owner released the name. The primary use case for .eth names at this time was replacing Ethereum addresses. The auctions attracted attention, with VICE Motherboard calling it a "gold rush." The ENS name exchange.eth was won for 6,660 ETH, worth around $609,000 at the time.
In May 2018, Johnson received a $1 million grant from the Ethereum Foundation to form an organization to continue ENS development. Johnson left the Ethereum Foundation and established the non-profit organization True Names LTD in Singapore to manage the project.
=== 2019 ===
In January 2019, ENS added support for decentralized websites based on the distributed file storage networks IPFS and Swarm.
In May 2019, ENS was upgraded to what was called the Permanent Registrar. This replaced the deposit-and-return model for .eth names with an annual spent fee model, auctions with instant registrations, and made .eth names ERC 721-compliant NFTs, among other things.
In June 2019, the ICANN-accredited registrar EnCirca started offering registrations of .eth names.
In August 2019, ENS added support for Tor .onion addresses.
In September 2019, ENS released three to six character .eth names for registration, holding a two month auction for the initial distribution with the NFT marketplace OpenSea.
In October 2019, ENS added multi-coin support, allowing users to store any arbitrary cryptocurrency address in their name's records. The same month, ENS added support for text records with an initial set of predefined text record keys.
In December 2019, True Names LTD representing ENS joined DNS-OARC as a Blue Member.
=== 2020 ===
In March 2020, ENS added support for users to make their own text record keys, allowing projects to create their own records.
In April 2020, the ENS name "brantly.eth" was used as collateral for a cryptocurrency loan issued by Rocket LP DAO, a DAO specializing in NFT-backed loans, the first time a blockchain-based name had been used in this way.
== Bugs ==
In March 2017, the first attempted launch of ENS was aborted when a bug was discovered soon after that allowed users to continue to bid during the reveal period of the vickrey auctions.
In October 2019, a bug in the auctions on OpenSea for three to six character .eth names was exploited by a hacker to claim several high value names against the rules of the auction and for very low prices. The auctions were temporarily halted while the bug was fixed. After a bounty for return of the names was offered, the hacker returned the names.
In January 2020, True Names LTD announced a bug had been discovered in the registry smart contract by Sam Sun that could allow a person to transfer a name to someone else then later take back the name under certain circumstances. A new registry smart contract was deployed and all names were transferred to the new smart contract. An analysis by True Names LTD concluded the vulnerability was never exploited.
== Criticism ==
In February 2020, the blockchain industry news outlet Decrypt published an article explaining how they were able to trace cryptocurrency wallets with large balances to particular people based on the wallets' association with a person's ENS name. "We found it was possible to identify several high-profile people, even if they weren’t using their real names. We were able to see business deals and watch people’s movements, just using the blockchain," author Tim Copeland wrote. In response, ENS lead developer Nick Johnson said ENS "doesn't attempt to address the privacy issues inherent in public ledgers."
==In the media==
<youtube width="300" height="300">y85Oa-3gvsg</youtube>  
<youtube width="300" height="300">hrEBliIp4AQ</youtube>  
<youtube width="300" height="300">blbNrHS220M</youtube>  
<youtube width="300" height="300">-GwticL5_8A</youtube>  
<youtube width="300" height="300">nN6AGG6Y6XI</youtube>  
<youtube width="300" height="300">pLDDbCZXvTE</youtube>
== References ==
== External links ==
* 
* Ethereum Name Service: Introduction
* The Ethereum Name Service – Medium
* ĐApp Tutorial: Making Ethereum Name Service Subdomains
* The Ethereum Name Service Is Turning Nearly 300,000 .ETH
* What is the Ethereum Name Service (ENS)? - Decrypt
* Ethereum Name Service · GitHub
* Ethereum Name Service (ENS) - EthHub
* Ethereum Name Service Lookup | Etherscan
* Truffle | Ethereum Name Service | Documentation | Truffle Suite
* Ethereum Name Service Adds Multicoin Support - Cointelegraph
Category:2017 software
Category:Software companies established in 2017
Category:Alternative Internet DNS services
Category:Domain name system
Category:P2P Infrastructure
Category:Unique identifiers
Category:Secure communication