The Ethereum Name Service (ENS) is a utility that allows names to be associated with Ethereum Addresses. An Ethereum address is a 40 character hex number (0x1d8a08c8c3ce0a852cb4da902754991759f7f625). It is far too long to type or dictate practically without errors. ENS allows you to shorten this to a simple name (such as rexhygate.eth). I would recommend all Ethereum users get at least one name, if only for the convenience they offer. The deed for a name must be won in an auction, managed by a set of Ethereum Smart Contracts. The Ethereum Name process is managed by a team using a consensus process that is like the process to run Ethereum, only smaller and simpler. As such, understanding ENS gives you a good base at understanding much about Ethereum.
An Ethereum Name is merely a text shortcut to an address, but it is incredibly useful. It is similar to domain names where EthereumUseCases.com replaces 18.104.22.168. Already MyEtherWallet and EtherScan recognize the Ethereum Name as the equivalent of an Ethereum address. It is immensely easier to type your address than to copy paste it into the field. For individuals I would strongly recommend getting an Ethereum name for their address. It could be your name (as I did with RexHygate.eth) or your chosen handle. Either way, get them soon while the options are good. Please note Ethereum Names are not case sensitive.
Ethereum Addresses can refer to more than just a wallet. An Ethereum Address can also refer to a contract or a swarm site. SellPrismNow.eth would be a good name for the relay smart contract discussed here. SwarmSite.eth would be the web3 address for a distributed website.
Sub Domain Names
The owner of the primary domain can create and issue sub domain names. So the owner of plumbing.eth could issue JoesDetroit.plumbing.eth to a different organization. Or a business owner could create Invoices.MyCompany.eth, POs.MyCompany.eth and PartNumbers.MyCompany.eth, each with their own functionality. While these functionalities don’t exist yet, now is the time for organizations to reserve their Ethereum Name while names are available. Once a name is taken, it is difficult to get ownership.
This is an existing and stable existing service. An update is expected in about two years (May 2019). The new functionality was described by the team in October 2017. A description of the coming changes is listed at the bottom of this article.
How does it work
To get an Ethereum Name there is a very clear procedure. It is done via a public auction run by a series of Ethereum Smart Contracts. This assumes you have an Ethereum wallet with about 0.02 ETH in it. Please don’t consider these official comprehensive instructions. For that please read this. MyEtherWallet also has excellent instructions, but you have to actually do the transaction in order to view the instructions.
- Check to see if the name is available. You can use https://etherscan.io/enslookup. Names must be 7 or more characters long. For the moment special foreign characters are not allowed. It is not case sensitive.
- Start an auction for the name you want. You have to pick the maximum bid you wish to do for this name, but be careful. If you miss your reveal (see below) you lose this amount and get nothing. Copy the pass phrase. You also enter a public bid amount. This is an amount that others see publicly on the blockchain.
- Wait 3 days. During this period others can bid on this auction and outbid your name. People could write programs that could scan and inform them of all ongoing auctions. Etherscan has a view of ongoing auctions. The fact that your address has started an auction for your name is public info on the blockchain. Before the reveal people only see the “public bid” amount. They must bid without knowing the highest bid.
- Reveal your bid. There is a two day period when all bidders can reveal their bids. At this point all bidders see the highest bid. However, no one of the bidders can change their bids. They can just reveal and watch. The highest revealed bid at the end of the two days wins the deed to that name If you forget to reveal your bid during this period, you lose the amount of your bid. It is burned.
- The amount of the highest bid (0.01Eth or greater) is reserved for the deed. It is held by an Ethereum Contract. If you relinquish ownership, the deed amount is refunded.
- Finally you can add a “resolver” to your address. This associates your address to the name. You can send money to youaddress.eth and it goes to your Ethereum wallet address!
An example will make this clearer;
1) Lets say AcmePlumbing.eth is available;
2) John Smith starts an auction with a maximum bid of 0.01Eth. The public bid is 0.3Eth
3) Alan Klein notices this auction and bids 0.03Eth. His public bid is 0.03.
4) Phil Jones sees the auction and wants the name badly. He bids 0.09Eth with a public bid of 0.01.
5) A bystander can see that the auction is underway with three bids 0.3, 0.03 and 0.01.
6) After three days John Smith reveals his bid and he is highest bidder with 0.01Eth
7) Then Alan Klein reveals his bid and he becomes highest bidder with 0.02Eth. Note his maximum bid was 0.03, but he only needed 0.02Eth to become highest bidder.
8) After 5 days (from the start of the auction) Alan Klein becomes the winner. 0.02 Eth is reserved as collateral for the deed for AcmePlumbing.eth. 0.01 Eth is returned to John Smith’s wallet because he didn’t win. Phil Jones loses 0.09Eth because he forgot to reveal his bid.
ENS is implemented by a series of Smart Contracts. When the team that developed the ENS system, they had to think about an implementation that was fair, balanced and that could be written into the Solidity language.
Now that it is implemented, the software runs independently. There is no middleman. There is no 1-800 number to complain about or get a refund from. The code implements its requirements with consistent ruthless efficiency. The user pays gas for each transaction in the auction and the winner pays the deed but there is no middleman, no notaries who mediate. It is also an example of how the Ethereum eco system works with a machines ruthless impersonal edge.
If you fail to reveal your bid, for any reason, your money is lost. I had a case where I performed a reveal on time but the transaction failed for an undefined reason. I never checked that it had worked and as a result I lost my money (just 0.02Eth) but I have read of others who have lost much more.
The ENS requirement came from discussions within the Ethereum foundation. They picked a team of seven developers. This team developed the initial set of rules we are working with today in discussion with the greater Ethereum organization. ENS is not part of the “core” Ethereum functionality. It is an independent application so its development could be done separate from the “core” development on Metropolis.
This team set the rules for ENS Name auctions and then coded them in Ethereum Smart Contracts. The resulting code is locked in a Multi-Sig wallet which requires 4 of the 7 to open. This drives consensus development and inhibits reactive fixes.
The development principles are public and inclusive. They have a gitter channel on which discussion among the group takes place. Anyone can join and contribute. They recently held a public workshop to discuss the next steps. While they limited the number or participants for practical reasons, the contents to the meetings and presentations were made available on youtube.
ENS Development Plan
ENS also has a vision, a goal and a timeline. It launched in May 2017, We are presently in the initial implementation. Its main website is here. Names are limited to seven characters or more to reserve the more valuable names until the system is tested and accepted. The initial implementation is expected to last about 2 years. In this time the community can test and define the right way forward. The first ENS public workshop was held Aug 11 to 13, 2017 in London England. The results of this workshop are here. At some point, perhaps before the permanent registrar launch, the names for six and less characters will be released.
As you would expect, plenty of neat names like lawyers.eth, mycasino.eth, Montreal.eth and Microsoft.eth were taken by enterprising people early after they were made available. If Microsoft.eth was not one by Microsoft Corporation, then at this point no amount of lawyers can get access to that deed as it is held by a smart contract that does not care about trademark rights. I have found some websites that allow for sale of ENS names. The deed owner can transfer ownership.
The present implementation is the interim registrar. A permanent registrar is expected to be released in about two years (around May 2019). This registrar will expect annual payments. The rent will be automatically determined by a formula that is not yet released. If you bid a minimum amount, you may have to add some eth to some address (which is still TBD) in the future. If you paid a high price for your domain, then the rent will be deducted from the deed deposit until the account is at 0.
Names reserved under the interim register must be transferred to the permanent registrar by the deed holder (no one else has permission). The exact process will be determined once the rules for the permanent registrar are fixed It is interesting to note that only the address of the deed holder is recorded. This does not give an email, a real name or any way to contact the deed holder. this means that ENS name holders must keep informed on ENS developments. Usual sources are reddit, the Ethereum Name Service website or Medium Articles by Nick Johnson.
Sometime in early 2018 the ability to connect www domain names to Ethereum Address’ will be implemented. You will be able to say send Eth to mydomain.com just as you can now with mydomain.eth. Both mydomain.eth and mydomain.com can point to the same address. Of course you must be on the Ethereum blockchain for this to work. The process is quite awkward to date. I will include instructions at a later date.
Updated Auction Process
The auction process will be updated and improved. The auctions will take 3 days, not 2. If you forget to reveal your bid, the money will be refunded to you, no more losing money for forgetfulness (Yeah!). It will be more difficult for name hoarders to see what auctions are going on, reducing the risk someone will snipe your auction just to steal the name.
An Ethereum Name Service foundation hasbe formed to arbitrate ENS operation as True Names Limited. This is a not for profit independent organization that will advocate for good ENS operation and act as a sounding board for ENS users in the future. Its mandate is discussed here.
Another good article on ENS is here.
Ideal Use Case for Blockchain?
According to Vitalik’s 5 Points how well does this use case suit a blockchain application? Score 20/25, 80%. Great!