Solving Zooko's Triangle: ENS and Distributed Naming
EDCON 2019 · 11 Apr 2019 · 14:16
Nick Johnson explains how ENS combines readable, secure and decentralized naming, then reviews the roles of its registry, resolvers and registrars. He discusses DNS and content integrations before detailing the planned permanent registrar, migration, renewal fees and short-name allocation as announced in 2019.
Speakers
Topics
From EDCON 2019, hosted by EDCON.
Transcript
I'm happy to be introducing our next speaker our next speaker works on ENS the etherium naming service and he Nick Johnson will be talking about solving Zuko's triangle so let's give it up for Nick hello before I get started I wonder if I can just ask for show of hands how many people here and have heard of ENS great keep your hands up if you think you know what it does and keep your hands up if you think you know how it works so the three of you can go and everyone else can stick around so I'm going to go over a quick intro to ENS go
over what we've done so far and what we're expecting to do next and then dig into a bit of detail on the permanent registrar which is going to be replacing the current interim registrar we've got and the auctioning off of short names and then how you can prepare for these changes so first of all what is earnest what are the components of the ns and what have we achieved so far so Zucco Wilcox the author of Z cash before he got involved with crypto currencies proposed this thing called Zuko's triangle and his trial Emma was that it's impossible for a naming system to be human meaningful decentralized and secure all at the same time you can have any two of those three so if you look at
something like DNS it's huming meaningful and arguably secure but it's not be centralized if you look at something like dot onion names they're decentralized and they're secure but they're not human meaningful and he was pretty much right about this up until the advent of decentralized consensus systems such as proof of work and other blockchain systems so ian is goal is pretty much solving Zuko's triangle we're trying to offer a secure and decentralized way to address resources both on and off the blockchain using simple human readable names so trying to solve a significant trilemma and make it sort of easy improve usability for aetherium and other block chains while we're doing it so ian is at its technical level has two basic components
we've got the registry which is a single smart contract and it maintains a list of every single domain inside ENS and for every single domain it stores the current owner of that domain and it stores the contract responsible for resolving the domain which is answering questions about the domain and then the second main component is resolvers resolvers translate names into addresses so looking up a resource in the NS then as a two-step process first you ask the registry which resolver is responsible for an Ingham and Toyo teeth and it returns an address and then you ask that resolver what aetherium address is associated with inigo montoya da teeth or what website or ipfs hash or whatnot and then you'll notice a third item
third bullet point which is registrar's registrar's are what allocates ownership of new names in the ENS system the reason I haven't listed is a major component is because a registrar is very simply any smart contract that owns a name anyone who owns a name can create subdomains and if that owner happens to be a smart contracts then it can follow a set of rules for doing so so Ian is timeline to date we launched back in May the fourth Star Wars day 2017 we've had a couple of workshops since we've got people together from all around the world to sort of brainstorm and work on future Enes improvements in May 2018 we got a significant grant from the a CRM
foundation they sent as a million dollars to pay for ongoing development and that's the point at which DNS went from one person part-time myself and a number of dedicated volunteers to a full-time resource project and that's when we were really able to sort of put the motor on on ongoing development July 2018 we relaunched with our new logo and everything looks much more impressive I think he'll agree and September last year we announced into launch of integration with DNS and that means that in the near future and right now for dot X Y Z you can here take any DNS domain and you can import it into aetherium and into the ENS system and use it just like
you would and in domaine so for instance if you own my name dot X Y Z you can use my name dot X Y Z inside aetherium and then finally in January we relaunched our manager we've got a really nice management tool for ENS names at manager DNS dot domains Brantley joined our team he is our developer outreach person he's been doing an amazing job of getting more people on board and if you want to help your product integrator guiness then come ask him or me afterwards and we added support for bitter integration with IPS and with swarm with a change called eat 1577 so my next the next thing I'm going to do is talk to you
about the permanent registrar the I'll go over a quick recap of the current registrar and how it works talk about like how we've decided on the changes that we're making introduce you to the permanent registrar and then also talk about the next step after that which is how we're going to allocate ownership of shorter names so first of all the current registrar which we call the option register our the interim registrar was launched on may the 4th 2017 along with ens itself and it was designed to be a straightforward and fair and a sort of reasonable first step for name allocation it uses an option based system you have a five day long option during which you first commit to
bidding on a name and then later reveal your bid and it worked pretty well for initial name allocation where you have the sort of land rush effect of people all day and trying to come in and buy the same name at the same time and its goal was to sort of provide us with the insight and experience of building a naming system operating it and seeing what would work the best in the long run and it's done a pretty good job at that and we've identified what the shortcomings of it are and where it succeeds and we're trying to integrate that into our future work so in terms of how we use that experience to inform our our future work I just wanted to go over briefly how we sort of try and involve
the community in our development and make sure that this is something that everyone buys into something that people feel included in and that they have a meaningful input too so we start off by identifying the key things that we need to solve and improve on and we debate them internally with the team and try and come up with proposals for solutions and then present those to the community we have a really active community on discuss DNS dr. Baines and so when we've got something we think is mature enough to withstand critique we'll post it there get a whole lot of feedback and then sort of iterate the loop come back with to the team talk more develop it further so for instance with the permanent registrar and the
three six character options we gathered up community feedback through a series of forum posts and we made real substantial changes to how it operators in response to that we got some excellent feedback that helped us refine how it works so the new permanent registrar it replaces the current ENS registrar and its existing names will be migrated all over from the existing registrar to the new one there's a short delay there if you've registered a name in the last 28 days before we migrate so that's pretty much from today onwards then you'll have to wait a short while before you can migrate it but otherwise if you have any name on the existing
registrar you can migrate that over to the new registrar when you do so your registration is extended until May the 4th 2020 and you get the entirety of your deposit back so if you purchased a name on the original registrar you bid for the name and the money that you bid was locked up in a deed contract and held when you migrate the name you'll get back the entirety of that deposit immediately and your name ownership will be extended until 2020 the goal is that it's going to run more or less indefinitely until we identify any issues that near that deserve a replacement and we're built it to be easily extendable and upgradable so other key characteristics are pricing the unlike the previous system this uses
a rental system it'll cost five dollars per domain per year for shorter names and I'll go over the sorry for longer names and I'll go over the details in a minute use of overflow funds you know how we intend to distribute the funds and renewal so let me just give you a side-by-side so the existing or the existing system uses an option system but the new one will be instant registration so instead of a 5-minute option it'll be a 1-minute process you have to send two transactions instead of three we'd like to get it down to one but front-running is something we're really concerned about so you send a single a single transaction to commit to buying the name it seems a second one at
least a minute later and the name is yours so instead of being five days it'll be ten minutes or actually we've recently shortened the lock-up period it's now only one minute long in order to keep the name you have to renew it so you pay five dollars a year you can pay that as far in advance as you want you can pay it here at a time if you want to keep the domain for a hundred years you can pay a hundred years worth right now and you can be pretty algorithmically guaranteed that you're going to keep the name the registration fees in the original registrar were locked up and got returned at the end but in the permanent ENS registrar they will be sent to the DNS root key holders for distribution so why do we have why are we charging a cost and that's mostly to
present prevent land grabs and squatting we've seen from other distribution name systems such as namecoin that if you make names available freely then people will come in and they will register as many as they possibly can and then resell them and the end result is that you end up with a very illiquid system one where it's extremely difficult to get a useful name so by imposing a small fixed cost we want to make it more practical to get names that are desirable and usable and make it less practical for people to engage in mass registration so character names that will be 5 plus 5 plus characters will be just 5 dollars a year and for the very scarce 3 unfortunate 4 character names registration will be significantly more
expensive fees are paid in eath and we're using makers die Oracle in order to set that as a fixed price and US dollars the intention is that the funds get sent to the ENS route multisig we've selected them because they're already part of the governance yes and it will be up to them to decide how to distribute fees our hope is that they will look favorably on requests from teams such as ourselves to help fund ongoing ENS development and should we have an excess of funds then we hope that they will be inclined to fund broader if it's in the ENS ecosystem and indeed in the etherium ecosystem as a whole so finally and I can see I'm
running out of time so I may have to race a little we're going to run a one-time option for shorter names because previously the shortest name you could register was seven characters and we now want to shorten that down to three characters we're going to run a one-off option very similar to the original ENS registrar using a Vickrey auction system to reserve names before that it will be possible to reserve names used in the community so we really think that ENS is more useful the less surprising it is and part of that is ensuring that existing teams that have built up a reputation in the community can have a name that reflects their team so we'll be starting the deployment on May the fourth and then we'll be starting the reservation process it
shortly out there after 60 days afterwards on July the 3rd so anyone who has an existing DNS domain will be able to reserve an ENS domain it must have been registered before 1st of January 2019 and you can do you'll be able to do that by submitting a claim to an open github repo with the name that you want and the name that you have and proof that you have the name in the form of a text record that you add into your DNS record if you have an exact match you can claim that if you have concatenation for instance bit dot fish you can claim that fish da teeth if you have the reverse Youth for instance s F dot F R you can claim air study if they were
very insistent on that and there's a few other teams of course that include eath as well in the case that there's multiple teams trying to claim the same name then the oldest DNS name will take precedence so how can you prepare this is gonna be really quick if you're an existing name holder you will have to migrate within a year of the Registrar launch you have a full year to do it if you don't you will lose the name someone else can register it but you can always recover your deposit there is no time limit on recovering the deposit that you put down you can do that it manager ENS domains and other partners to be launched if you are intending to register your name you can do it now on the existing registrar or as soon as the migration happens you can do it more quickly and easily on the new
registrar if you run a third-party app or are seeking to any existing name resolution remains exactly the same as it was before no change whatsoever if you offer registration services you'll need to change to use our new API and you can find the docs at dot NS dot domains so we want to help you come to our gutter which is in etherium slash go etherium slash name registry for legacy reasons we have a discourse instance on discussed or DNS domains and contact Brantly or myself and we will be more than happy to help you thank you very much [Applause]