State of the ENS by Nick Johnson | Devcon Bogotá
Devcon·Sat, Oct 7, 2023, 12:00 AM
Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more. https://archive.devcon.org/archive/watch/6/state-of-the-ens/ An overview of ENS's innovations and progress in the last couple of years. Learn about how the ENS DAO is developing new approaches to decentralised governance, and how the development of ENS's offchain infrastructure makes trustless access to data held outside L1 easier for everyone - enabling both ENS's expansion to L2s and much broader applications. Speaker(s): Nick Johnson Skill level: Intermediate Track: Governance & Coordination Keywords: ENS,Governance,L2 Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 6 was held in Bogotá, Colombia on Oct 11 - 14, 2022. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/
Transcript
foreign [Music] I'm Nick Johnson founder of ens and lead developer and I'm here to give you an update on what's happened with enes in the last three years which is give or take 300 years in crypto before I actually start can anyone who's got an ens card hold it up above their head wonderful probably about half of you I'm so delighted with how everyone's been doing with this if the person next to you held a card up have a word with them say hi tap your phone to their card and you'll get a poab that proves that you visit uh that you met them at Defcon uh we still have a few of these cards left at our booth on level three uh so after the event come down we'll print one for you with your ens name and your ens avatar on it we expect we'll run out sometime this evening so I'm sorry if we don't get to everyone um but this is a great opportunity to meet the person next to you and have cryptographic proof of that afterwards so uh first off the agenda uh I'm going to recap everything we've done in the last three years and then go on to talk about what we're working on now and what we're working on next uh first of all in the next category uh Thorin which is ens's New Look and design system and new app second of all talking about scaling ens with off-chain reads and writes next the name wrapper which you may have heard about is a way to improve the functionality of igneous names and the ability to issue trustless subdomains finally zero gas DNS integration how we can use these other components we've built to make ens integration possible for DNS names without any guest fees and then the conclusion so first of all the recap it's been a long long time since I've been at a conference since I've talked on a stage in front of a lot of people uh since I've given anyone an update on ens last time I spoke was at last Devcon October 2019 uh we're just transitioned from the interim uh auction registrar to the permanent registrar featuring its current renewal model and that was a mere five months ago and while it was doing well at the time we had very little idea of the phenomenon ens was going to be coming in the next few years we had about 50 Integrations with various wallets including metamask applications such as etherscan and so forth that's changed a bit in the last three years our set of Integrations now looks more like this laughs so as you can see we've come a long way from under 50 Integrations to over 500 we had about 300 000 registrations back in the day that's now over two and a half million uh we had about 96 000 ethereum addresses that had interacted with ens in some way that's now over a million addresses um 66 700 years of registration had been purchased that's now over six and a half million uh if you strung them all into in figuratively uh and the nascent EMS treasury had a stunning 382 ethernet at the time that's now 38 000 teeth and I'll talk soon about the Dow and how it's able to put that to use of course it's not all about the numbers ens has accomplished a lot on both Technical and governance fronts in the past three years uh some of it will seem like old news but it's been a long time uh at divcon 5 we had limited DNS integration with only the dot XYZ TLD supported uh you could take a neonessner sorry.e XYZ name you could import it into ens and use it just like you would any dot ethname since then this has been expanded to nearly every top level domain uh that supports DNS Tech so that's nearly 90 of all top level domains nearly any name can now be imported into enes and used as a native name uh just ask our developer Advocate Loop dot computer it's printed on his badge I believe there are transaction fees associated with importing any of these names and at times when gas prices have been very high and The Ether price has been very high it's been quite pricey but we've got a plan to improve that massively which I'll talk about shortly another major Improvement has been ens's transition away from being just a way to name wallets and decentralized content to being a web 3 native identity platform with the introduction of Avatar records and text fields that provide information about your profiles such as your Twitter handle your email address your ens name now represents you as your web3 identity it's a universal portable identity and one project that's been bringing that to more users is sign in with ethereum it started out as an RFP issued by ens and it was funded by a joint Grant from ens and the ethereum foundation Spruce won the bid for that and has done an outstanding job of growing it into the primary way that people authenticate with ethereum replacing a plethora of incompatible and and different standards for citing messages to assert your identity with a symbol system that can be thank you uh that can be um easily plugged into existing systems including web 2 Legacy systems but of course when I talk about the last three years and particularly the last year top of most people's minds will be the launch of the ens Dow which is now one of the largest and most active dowels in web3 which I am absolutely both Blown Away about ens has always aimed for gradual decentralization starting with the minimum set of emissions held by the widest number of people we could which was the original uh four of seven multi-sig unlike most multi-seekers it included participants from around the ecosystem not team members and they had limited powers to upgrade enes to replace components our goal was always to move from that to a system where ens was governed by a decentralized organization since we launched all the way back in 2017 the only example we had to go on was vdao which needless to say was not a stunning success that inspired us to immediately decentralize but things changed a lot and the Dow space is now a lot more mature than it was in the past and we decided that you know the time had come that things were mature enough that we could let the ens Community govern ens uh and the Dow is the major Milestone along that path of gradual decentralization uh the Dow was now responsible for almost all governance leaders and controls available to ens including approving contract upgrades changes to core parameters such as pricing and how expired names are used it's also responsible for treasury grants and projects using the funding gathered from the protocol in the years since the Dow's launch the yiniest hour has shown that it can maintain a high level of civilized discussion uh made useful progress forward and improving the protocol besides budgeting and day-to-day bookkeeping it's made meaningful changes to the protocol including changing how expired names are handled in order to safeguard the stability and fairness of the system the Dow has also started to build out public goods and grants programs of its own one example of this is the small grants rounds that we now run inspired by nouns props room this is a regular system where anyone can submit a proposal for work they want to do or work they have done anyone with ens tokens from the Dow can vote on them and the top five in each category we have a public goods category and an ecosystem category then receive one e feature and funding to pursue it the public goods is focused on anything in the wider ens ecosystem and the Eco ecosystem category is focused more on things that relate directly to ens and we hope this can work to better incubate and start up new projects both for enes and for the wider public goods on ethereum and web3 ecosystem working groups have also funded initiatives on scales small to large ranging from a 200 000 k Sorry 200k ens token Grant to the protocol Guild who are formed to help fund core developers throughout the platform 169k Bitcoin matching pool and we continue to fund and support Bitcoin and smaller projects such as this plugin for discourse forums which provides you with insight into the roles of delegates and their participation on the Forum which is something that any dowel that uses discourse can take and plug into their own system uh this was built by Karma and integrates with all their stuff you can also just use it to provide insight into how your delegates are voted how active they are how many tokens they have and so forth the Dow has also resulted in more Community participation in the core protocol uh one major success story is rafi's work on improving ans's normalization functions normalization is how we handle names like uppercase neck being different from lowercase neck and ambiguous emojis hidden characters and so forth to start we used a well-tested system called uts-46 which is what the domain World uses but it's become clear over time that ens has some unique requirements and we wanted to enable things such as emoji and other characters that are popular in the community but not supported directly by DNS uh so refi has been working on harmonizing all of this we're very close to rolling out their new standard for Dow approval and it will enable a much wider array of characters while also providing more protections against deceptive names the last three years has also seen an explosion in community-led ens initiatives uh independent projects that build on top of the ens ecosystem one popular example you may have seen is the ens leaderboard which shows people with Twitter handles that contain Dot eth and their ranking relative to followers we've had some pretty popular ones including Paris Hilton for instance right up the top of the leaderboard I myself am now ranked I don't know number 400 or something um we've uh had the launch of ens Vision which is a third-party ens trading Market allows people to now register names from scratch and also trade existing names and projects such as nimi which is a web 3 profile um site it lets you generate a customized profile and in fact the eth.limo Gateway folks have integrated with nimi so if you have an ens name that doesn't have content set up it will automatically show your profile with your pipes and so forth then you can customize it as you wish uh before we start talking about what's new one small announcement true names limited is the name of the development company that builds enes the company I founded that gets paid by the Dow employees about dozen of us to build our ens when we formed it we didn't really think of it as a name that would be visible to people that was purely an internal thing but in the intervening time it's become more and more visible and every time we have to say we're from True names limited the company that develops ens and it gets a bit tiresome so we're renaming to ens Labs limited to better reflect what we do and Who We Are uh so what's next uh first we're going to talk about Thorin Thorin is ens's new design system and it's built from the ground up with usability and web3 in mind we've used it to completely rewrite the ens app from the ground up coupled with improvements to the smart contracts behind DNS this enables a huge Improvement in usability for ens users the ensui faces kind of a unique Challenge from amongst web3 apps and in fact kind of apps in general in that it needs to provide an interface that is both easy and user-friendly for new users but has the advanced levers and and sophisticated interaction required by Advanced users we don't want to create a situation where the app is sufficiently flexible to do anything with ens but deters existing users which is a little bit the case in the current APP or is so straightforward and wizard-based that you need to go somewhere else if you do have more than basic needs by surfacing the important details and flows while still making Advanced functionality available under the covers the front-end team have done an outstanding job of writing an app that is all for all users aside from the functional improvements we've hugely improved the loading times and made the new app 100 mobile friendly the new app is at feature parity and live now on the girly test net would be live on robston but that's already been deprecated and you can try it out now at alpha.eds domains just to emphasize it's only on girly it is a little bit you know sharp edges still the team really raced to get it out in time and did an amazing job please send us your bug reports but we aim to have this launch on Main net shortly after Devcon once the name wrapper and other contracts are approved by the Dow as I'll discuss shortly so keep your eyes peeled Thorin isn't just for ens either we've made it available as a standard react library that anyone can use for their web 3 apps you can check it out on sauron.ens domains and you may have noticed it powering a number of our other sites such as the swag microsite and so forth one of our major ongoing projects is scaling ens for many projects this is accomplished by going multi-chain deploying to just multiple chains if you're uniswap for instance you fragment your liquidity a bit but you can work in parallel across multiple chains ens is in kind of a unique position here we need to maintain a single cohesive registry of names and it's far too early in the L2 and the roll-up ecosystem to pick a single Service as the winner that we're going to migrate to instead we've been pursuing options that make it possible for people to host their ens names anywhere without the resolving having to know or care where that is earlier this year we launched ccip read as a collaboration between ens and chain link while previous systems such as bridging often introduced new trust assumptions and require L1 transactions to execute ccip read uses a lower level primitive proofs which means that in many cases such as with l2s this can be done with no additional trust assumptions over those the L2 itself requires meaning you could host your ens name on optimism have users resolve it from any client that doesn't know what optimism is without introducing any additional trust that relies on the Gateway operator for instance now further the solutions far more flexible than bridging allowing data to be stored not just on l2s or side chains but on arbitrary systems including centralized databases at its core enes is a way for any contracts to fetch data from off-chain resources because contracts can't directly talk HTTP requests this ends up being a little bit like having one of those conversations with a couple who have had a fight and refusing to talk to each other well you tell the Gateway that I think that they should give you this data I need so the conversation tends to go like that unfortunately just ask them yourself isn't an option so the client has no choice but to play middleman the end result is good with the resolver and the Gateway agreeing on a protocol it's possible for the client to facilitate a lookup of off-chain data without any knowledge of what their shared languages or what the off-chain system in uses uh the necessary proofs to make with trustless are encapsulated in the response sent by the Gateway and verified by the resolver before returning the result from the name resolution this means that implementing the base protocol is enough to enable all current and future l2s and off-chain storage systems to be used in the ens name resolution for instance ethers already supports this which means that you can resolve any ens name that uses it even if it uses an L2 that didn't exist when the ether's implementation was written and ccip readers already in use in production both ethers and Webster ejs support it and so if you use either of those libraries or in fact as of I believe today web3.
pi upgrading to the latest version will mean you automatically support ens of chain resolution some of the largest apps and wallets have already upgraded to support it too including metabase metamask coinbase wallet as well as ethereum etherscan there's a long way to go in terms of making this latest change Universal so please reach out to your favorite wallets and apps if you see that they don't support these new names and ask them to let them know how important it is uh like our Thorin ccip reader also isn't just for ens it can be used to add off-chain resolution support to any project coinbase has gone a step further than just integrating ctip read for name resolution they're using ccip read ens wildcard support and ens's DNS integration together to allow their wallet their wallet users to create ens names under the dot CB dot ID domain for free these names will instantly work in any wallet or dap that supports ens's new resolution improvements and they have no transaction fees to set up for either users or coinbase likewise lens is using ccip read to integrate their own dot lens naming system with ens any.lens name you can add dot X sorry dot XYZ to the end and it will resolve in metamask or any other wallet that supports this so off chain read support is great but how do we enable writes the default option for every platform is to provide its own interface for users to update their records meaning if you use coinbase wallets you have to use coinbase to update your records if you use metamask you'd have to update with metamask but this leads to fragmentation and makes general purpose apps like our own manager much less useful fixing this is still a work in progress but Eep 5559 lays out a way forward by enabling a discovery mechanism that allows clients such as our manager to discover how they can send a transaction or an HTTP request to update data that's stored off chain um it's currently supports writing to evm-based l2s or side chains or sending signed messages to an HTTP API but this is extensible with new methods as they crop up adding support for this to the NS manager and further standardizing the best practices and making it as as flexible and accessible as possible is an active active area of research and development for the team so next up the name wrapper which you've probably heard about of griping about on Twitter because uh it's been underway for a while ens predates all of the nft standards and while the dot eth registrar was written after Eep 721 came out that functionality only applies to dot e second level domains so nick.heath but not wallet.beck.eth or nick.
xyz or whatnot as a result not Alliance names can be transferred exchanged Etc using standard nft interfaces uh further one of the main advantages of tradability is trustless ownership if somebody sells you a name or a subdomain or gives it to you you want to make sure that they can't take it back next week and set it to a different address you're kind of reliant on their Goodwill there are solutions to work around this you can give net ownership of the name to a contract and we've had a system for that called now.ens.domains for some time but it has significant shortcomings in that you're committing your name to a specific contract where it has to live for the rest of time which limits what you can do with it the name ramper solves both these problems it allows any EMS name at any level whether it's a dodeath or a subdomain or a DNS name to be wrapped as an ERC 1155 nft it also allows owners of wrapped names to revoke permissions such as the ability to replace or delete subdomains by mechanism we call fuses fuses allow the owner of a name to revoke their own control and that of any subsequent owners over certain functionality on a name such as the ability to unwrap it again to create or to replace subdomains to transfer it to another user and so forth once a fuse is burned that fuse can't be reset until the name expires giving a user's a guarantee as to what can be done to or with their names until the name expiration is reached the name ramp attracts these permissions and provides a very easy API for fetching the set of restrictions currently applied to a name and when they'll expire alongside the name wrapper we've also implemented a suite of other contract improvements including to the dot Heath registrar controller the reverse registrar and the public resolver all together these will prevent a much smoother registration process for end users and cut down on the number of transactions and gas required as well as other quality of life improvements like allowing contract donors to set primary names for their contracts the long and short of us is that with the new DOT ease registrar you will be able to register a name wrap it in order to set permissions burn fuses and set your primary name all in a single transaction and using less gas than doing those operations would cost today uh all of these updates are live now on the Gurley test net and we're planning to submit them to the Dow for approval on mainnet very shortly after divcom uh thank you finally I'm going to talk about something else I'm excited we'll be able to release soon gasless DNS integration presently claiming a DNS name in ens cost a substantial amount of gas it's about 100K to a million gas per signature it has to verify depending on the ether and gas price that can range anywhere from 20 bucks to at the extremes of the bull market a thousand dollars obviously this isn't a particularly scalable solution and so this can be a substantial barrier to DNS integration fortunately we have a plan for reducing this all the way to zero uh so first a quick overview of how DNS works it uses a chain of trust just like SSL the root zone is signed by a well-known certificate Authority and they sign keys for each of the subdomains such as.com dot link Etc uh each of those zones uses its keys to sign this subdomains and so on and so forth our current DNS integration uses this to allow users to claim DNS names inside DNS our front end collects up all the complete set of proofs necessary and submits them to a Smart contract which verifies the signatures and if they match it lets them claim the name uh if you've been paying attention to the talk so far this may sound quite familiar to you similar to something else we've discussed ccip read if we treat the whole of ens as a massive off-chain distributed database we can have a Gateway that fetches DNS data collects all the proofs necessary and submits it to the chain just like when you're resolving a name so then we can write a resolver for DNS names that uses that gateway to resolve names in ens entirely using data stored in DNS users can set DNS records to configure their name and they will resolve any from their ens is supported with xero on-chain transactions necessary claiming on chain may still be useful in some cases for example if you need granular control over the subdomains but for most users it'll be possible to claim your DNS name just by setting some text records we're working on this right now the DNA SEC Oracle changes are done and we're working on implementing fixes from an audit before we roll it out we hope you have it ready to go before the end of the year there's been a lot more going on and with ens but compressing four years down into 25 minutes naturally means I have to leave some things out just one more thing the Dow was nearly a year old but still in its infancy we have a lot of a lot to learn and a lot to do and we need your expertise please take a look at our governance page reach out to ens domains on Twitter see how you can get involved and help us build a truly decentralized public good naming for web 3. and that's all I have for you thank you very much [Applause] awesome do we have any questions for Nick please raise your hand we'll get you a mic there's a lot of things that we talked about yeah we see a hand over there keep your hands raised so we can find you and get the mighty hi Nick thanks a lot for the talk um one thing I was thinking about uh you should probably be able to use ens to uh the problem is when you use UI to to communicate with a page the metamask will generate you it will provide a transaction for you and basically you have no idea like if actually the UI is the right UI and you if you are calling it a contract you want to be calling and I guess you could UNS you could you you you could UNS for this for linking both the the domain and the smart contracts with the same ens and have metamask check it basically to provide a lot of attacks connected with the UI yes spoofing yeah definitely uh better user insights into transactions is I think probably the major adoption barrier and and fishing and so forth fourth issue in web 3 today naming contracts of the units names is one big step towards making that a bit better and in fact the latest contract out dates we're pushing out uh make it easier for contracts to get ens primary names um I am also the author of a proposal with Richard Moore on how to better provide insight into transactions which is also very relevant there yeah and could you make uh basically the the calls from the other side meaning um metamask could somehow check with DNS like what what this contract uh is what ens is this contract associated with yes and further you could put authorized frontings and your ens records so that will warn you if you're making a transaction to say uniswap from a scammy site is an excellent idea yeah perfect perfect thanks cool thank you very much awesome we have one last question here just at the front row and uh it won't be a time oh hi I was wondering if you could kind of give us a state of the union on efforts to resolve Pages via browsers and at the OS level sure uh so at the OS level is depending on you look at it tricky or easy you can run your own DNS resolver in which case you personally get to resolve all units names getting it rolled out to everybody is a very Steep Hill to climb um I think we're going to have more success getting this integration to browsers such as Brave and Opera which already support it rather than integrated directly with os's on the other hand there are efforts around talking to Ethiopia about whether they would be willing to relinquish that this is all very nascent however so there's there's nothing uh concrete for that right now the shorter term solution is as I said browsers I think awesome that's all the time we have please give Nick a big round of applause [Applause]
Automatic transcript — names and jargon may be misspelled.