Epicenter - Learn about Crypto, Blockchain, Ethereum, Bitcoin and Distributed Technologies - Nick Johnson: ENS - Multichain ENS Domains and Decentralised Identities

Episode Date: November 4, 2023

The very nature of Ethereum addresses, expressed as random hexadecimal character strings, represents a big hurdle for mass adoption, as they are not human-readable. ENS domains were envisioned to not ...only solve this and provide a seamless UX, but to also be the cornerstone of on-chain identities. However, in the current multichain landscape, a plethora of decentralised naming services arose, which led to a heterogeneous domain name pool. As a result, ENS aims to expand to L2s and non-EVM chains, attempting to provide consistency, in order to further reduce user friction and limit conflicting domain names.We were joined by Nick Johnson, founder of ENS, to discuss the current state of decentralised naming services from a multichain and L2 perspective, and how these ultimately tie into decentralised identities.Topics covered in this episode:Nick’s background and ENS historyThe plethora of decentralised naming servicesENS use casesInteracting with Web2 DNSL2 compatibility for ENS via CCIP ReadENS wrapper and subdomainsCCIP ReadBridging ENS to non-EVM L2sCoinbase’s cb.idENS and on-chain privacy OPSECAccount abstractionThe future of ENSGovernance Episode links:Nick Johnson on TwitterENS on TwitterThis episode is hosted by Sebastien Couture. Show notes and listening options: epicenter.tv/520

Transcript
Discussion (0)
Starting point is 00:00:03 Welcome to Epicenter, the show which talks about the technologies, projects, and people driving decentralization and the blockchain revolution. I'm Sebastank with you. And today, my guest is Nick Johnson. He's the founder of ENS. EnS is the Ethereum name service. It is the most used, most widely used, decentralized naming service, and the biggest Dow on Ethereum. And we had Nick on a year ago. And so we're having him back on today to give us a brief. bit of an update on ENS and talk about some of the interesting technical things that are happening with the protocol in terms of expanding to L2s. We'll also talk about governance. We'll talk about some of the growth that ENS has seen in the last of the while and also looking to the future and where the project is going. Nix, thanks for coming on.
Starting point is 00:01:01 Pleasure to be here again. So for those who missed the last episode who maybe had never heard of you or never heard of you and asked which I'm sure as very few people, Yeah, why did we start with a bit of background and how you became interested in decentralized naming services? Sure, yeah. So I've been a software engineer for about, God, about 20 years now. And I've always had interest in sort of internet infrastructure and so forth.
Starting point is 00:01:34 And, you know, when I first heard about Bitcoin way back, I sort of looked into it and I was like, oh, that's kind of interesting. but oh it's just money you know like there's what I really want is a programmable platform and so I sort of ignored it for a while and then sometime later came across Ethereum and went suddenly wow this is exactly what I was thinking about this is really very cool
Starting point is 00:01:56 started playing around with it almost immediately and inside of you know three months got a call from the Ethereum Foundation saying hey would you like to come work with us on on go Ethereum or on Swarm or, you know, something we're working on. It was a bit of a plunge for me because it was going from the comfort of like full employment to a contractor position, you know, big pay cut, you know, unknown future, etc. But I was really quite hooked on, you know, Ethereum and what we could build was it. And so I quit my job. I joined the Ethereum
Starting point is 00:02:33 Foundation and pretty much one of my first jobs was to start working on, well, I started working on Swarm and my first sort of side project was, you know, what can I build in the way of a naming service? Because one of the very first things that I noticed was how bad the user experiences with, you know, 42 character long hexadecimal addresses and so forth. And I was like, why is this not already here. You know, this seems like a really basic bit of infrastructure to allow people to, you know, not just transact with each other, but interact with contracts and so forth without having to know, you know, these identifiers. You know, we sold this on the internet in like 1985. So I started working on what eventually became the Ethereum name service, started off
Starting point is 00:03:23 as a sort of a side project from within the EF, gradually grew to take more of my time until it was my full-time job there. And then at some point, B.E.F. Well, you know, it's clear that this is more than one person's work. You know, what about we spin you out into your own organization, give you a generous grant to get started, and you can build this as a full-time project with, you know, with funding. So it basically went from that. Cool. Yeah. So, I mean, one of the things that I think is interesting about the decentralized namespace or the, you know, the use case of decentralized names in crypto is that because it's so easy to build, it's so easy to build applications on on on on on on on blockchains whether that's Ethereum or cosmos or solonar or whatever
Starting point is 00:04:15 L1 right or L2 there's been a multitude of decentralized name spaces that have emerged that have popped up over the years of course like ENS I think was one of the first ones. We also have protocols like unstoppable domains. We have handshake also. And then, you know, Cosmos has their own. And like each blockchain on Cosmos pretty much has their own. Solana has one, I think. And, you know, Polygon.
Starting point is 00:04:45 It's very, you mentioned this like early days of the internet and how we solve this problem. But the thing about how the internet solved this problem is because all the infrastructure wasn't there, it was, you know, they, I can. can. And so the domain name service was able to generate like tremendous network effect around like a single naming system. And that's the domain name system. Now, it's very different in crypto, right, because it's so easy to sort of like bring these up. How do you think about the future of name services and, you know, how we will reason about these different name spaces in the future? Will everything sort of coalesce to ENS or sort of resolve back to ENS and, and have this one
Starting point is 00:05:30 main naming service or do you think there can be, you know, many different name services that sort of compete with each other or that are complementary? And how do you see that playing out? I mean, you know, naturally I'm biased here, but I would like to see EMS and more generally the global namespace wins. So, you know, when I say the global namespace, EnS has dot EF, but we also integrate with DNS transparently. So any DNS name is an EMS name as well. And I think that sort of approach is a better one than 10,000 competing name services. There's, you know, there's a few problems of that, but the biggest of them is collisions. And, you know, inevitably more than one naming service springs up that issues names that collide with each other, in which case you have
Starting point is 00:06:16 situations where different people might get different resolutions for the same name. That's a recipe for disaster, both in terms of, you know, accidental losses of funds and so forth. And also, So it's just, it's a dream for fishing and scamming and so forth. So what I would love to see is, you know, it doesn't have to be ENS and DNS and that's it, but I would love to see more naming services and more chains integrate with ENS via the mechanisms we've exposed that make it possible to have a single unified namespace, even if parts of it are administered differently or specifically to a given chain, they can all be in a single namespace and resolvable by a single client. I think it's also, you know, worth pointing out just
Starting point is 00:07:00 the huge overhead the symposes on wallets and apps and so on to implement all of these and to independently decide how they're going to handle, you know, each of the services and their potential collisions and so forth. It can create a mess. And so, yeah, what I'd love to see is E&S dominant naturally, but in a collaborative way. Yeah, I mean, of course, I think that makes sense, it makes sense for everybody to be using the same namespace, right? I mean, at least from a practical perspective and from the perspective of avoiding collisions. Yeah, I see you're very hopeful, but I don't know how, like, if we have, you know, if we continue to have like L-1s with their own communities and sort of their own application space,
Starting point is 00:07:52 and I think it will be difficult to, for everyone to align on one namespace, although we we can we can we can rein hopeful i guess um yeah what is some of the what are some of the coolest use cases that you you've seen people implement using ens you know beyond just having a a name attached to the earth theorem address like what are some unique things that people are doing with the ns these days uh i think some of the the sort of programmatic integrations like there are various efforts where you can uh you know you send some eath to uh you know die dot swap dot-eath or whatnot. Please don't use that or that note if it actually works.
Starting point is 00:08:31 But, you know, along those lines, and it swaps it for die, just transparently. So you can remove the need for a UI entirely and just automate this sort of thing. And that sort of thing's possible as well for, you know, automatically naming contract accounts, for automatically naming, you know, accounts on exchanges, deposit addresses, and so on and so forth. I've seen some cool efforts around automatically issuing people, or sorry, easily issuing people subdomains and so on for themselves, you know, associated with some affiliation of theirs, you know, so we've seen like Decentraland use it quite heavily. And I guess, you know, some of the DNS integrations that we're seeing showing up now, like dot art and dot box and so on. You know, dot box through their registrar are now making it possible to register.
Starting point is 00:09:21 box names natively on chain, so you can do it entirely through your Ethereum client, and then have the name owned as an NFT. So if you want to transfer the dot box domain, you transfer the NFT, and that's the authoritative record of ownership. How does that work exactly? Effectively what happens is that dot box has like a holding company that holds all the rap names, and they have a contract that basically says, you know, if you can prove you only NFT, then we'll follow your instructions on what to do with it. And so, you know, that way it's adherent to all the ICAN regulations around who is data and so on and so forth. But you still have direct control over the name.
Starting point is 00:10:08 And if you want to transfer it out, you can. They simply transfer ownership to you at some other registrar. Okay. And so then when you want to sort of manage your DNS, the DNS for the domain, you'll do that using sort of like a Web 3 authentication. Is that? Yes, exactly. Maybe you sign in with Ethereum to sign into their interface and manage it just like any MNA. Oh, that's super cool.
Starting point is 00:10:36 I really like that. All right, I'm going to get a box domain. Neat. Is this an integration that you guys help put together? because I mean, I didn't even know about this dot box domain extension. Yeah, it was one of the 2012, you know, extensions that were the extensions that were optioned in 2012, but some of these have launched earlier than others and dot box is one of the later ones, but that's allowed them to take advantage of this when it might have been difficult to do so
Starting point is 00:11:04 if they'd already launched and had a lot of, you know, unwrapped registrations. Yeah, no, we work quite closely with them on setting this up and so forth, and I've been really pleased to see them embracing YNES for it. That's cool. Are you guys, do you guys interact with or have you interacted with, you know, ICAN or any of the folks, you know, working in the more traditional domain name registration space and what's been your experience there and how, like, have them been receptive to the idea of YNS? Yep.
Starting point is 00:11:39 So, so we've attended and presented at DNSR. which is an industry organization for DNS. We're active members of that. In addition, we've attended ICAN meetings and so forth. We've found a lot of people in the DNS world are quite receptive once you make it clear that this isn't a cash grab, basically, that we're actually seriously trying to build real useful infrastructure, not just a platform for speculation, which, you know, given crypto's sometimes reputation in the wider world, you know,
Starting point is 00:12:13 is people's initial assumption. ICANN itself tends to be very conservative. And understandably, they're protecting a core piece of internet infrastructure. We're still working on convincing them that, you know, working with us is better than trying to pretend we don't exist. And I'm confident we'll get there, but they're understandably cautious. And the competitors we've talked about previously, you know, some of them is sure. hundreds or thousands of top-level domains that inevitably collide with the DNS route,
Starting point is 00:12:50 and that causes a lot of discord there. And so when we approach ICANN and other Web2 organizations, we're sort of careful to emphasize that our goal is to build with these pieces of infrastructure, not override them, basically. Yeah, I remember speaking with the handshake folks, like a couple years ago on the podcast, and their view was that, you know, they did have overlapping extensions, but that they wanted to, they wanted them to be compatible with ICAN in a way that wouldn't create collisions.
Starting point is 00:13:29 And, you know, from the perspective of, of, of, of ENS, like, ENS works nicely with ICAN domains from the perspective that you can, you can connect in a way your, your, your, your, your, your name to an ICAN domain. Can you just like remind us how that works and what's the technical sort of the technical bits that allow this to be possible? Yeah, so all of that works through DNSSEC, which is a security layer on top of the base DNS layer. The way DNSSEC works is you sign your zone, so your DNS records with a key you own and then the parent zone. So say you've got your ETH.link, then the dot link zone signs your keys, and then the root zone signs the dot link keys, and then there's a root key that everybody knows. And so you have this chain of trust that establishes that, you know, this name was authorized by all the relevant authorities along the way down to your domain.
Starting point is 00:14:31 And so the way we do DNS integration is you enable DNS set for your zone, for your name, you sign it, and then you set a text record. saying, you know, I want the owner of this name on ENS to be 0X whatever address. And we're able to prove all of that on chain because it's all cryptographically signed. It uses, you know, either RSA or ECDSA, and we could verify the signatures on chain to then transfer ownership to you of the record. The one wrinkle here is an increasing number of DNSSEC implementations use ECDSA, and they use a curve that isn't the one Ethereum uses. and so verifying it can be quite costly,
Starting point is 00:15:14 you know, up to a million gas per link, basically. There's a few approaches we're taking to reduce that. One is there are now more efficient libraries that cost less gas. Another is there's an EIPR at the moment to add the SECP-26R1 curve to Ethereum, which would enable not just efficient DNSSEC, but a whole lot of other crypto primitives from sort of the real world because it's a very commonly used curve. And the final one is our effort on what we call gasless DNSSEC, which is basically instead of verifying on-chain in a transaction that you own the name at the time you update it, we move that to
Starting point is 00:15:58 when you try and resolve the name, you go and verify the DNS proofs at time. And we do that transparently to the client using our, what's actually our L2 strategy. called CCIP read, which makes it possible for a client like ethers to resolve the name and behind the scenes do a DNS verification without actually the client having to know anything about that. So, yeah, that's a good transition, I guess, into the L2 strategy. So for now, if I'm not mistaken, I mean, or up until recently, because I think ENS works now with L2s, but ENS was only compatible with L3-1 Ethereum natively.
Starting point is 00:16:38 Now, there's a push to have ENS be compatible on EthereumL2s, like optimism, arbitram, etc. Can you talk about what are the technical challenges there? Why has that been difficult? And, you know, what's the technical implementation to enable this? I think the ultimate challenge is that ENES is quite unlike a lot of other projects. Like if you have a token or, you know, you want to bridge it to multiple networks, that's fine. you have a few here, a few there. If you have an exchange or some sort of defy primitive,
Starting point is 00:17:13 you can deploy it independently on each chain and that sort of problem. You sort of have liquidity fragmentation, but that's tolerable. ENS is a little different because we have this global name space. And so any deployment on other chains needs to have some sort of connections so that we know we won't issue the same name to different people in different places and so forth. And so what that ultimately means is that ENS will always be rooted on Ethereum L1, but that doesn't preclude moving arbitrarily large parts of the tree off into different L2s and so forth. And that's the approach we've taken with our solution, which is called CCIP read,
Starting point is 00:17:54 and basically allows you to delegate entire parts of the ENS hierarchy to an L2 or even to a private database or anything you can verify. on chain basically. And so if you, for example, own wallet.eath and you want to issue subdomains to people, you can delegate wallet.eath to the L2 of your choice, issue them on the L2, and people can resolve them transparently without having to know which L2 it's on and without any additional trust assumptions, which seems outrageous, but it is possible. So could you describe this CCIP read functionality? I've heard about it, but I'm like not super in tune with how that works.
Starting point is 00:18:36 So the basic process of resolving an ENS name is that you call a smart contract, grossly simplified, you call a smart contract, you say, what does Nick.Eath resolve to, and it returns a resolve. And that's a 1L1. The extension of CCIP read is you call the contract, you ask what it resolves to, and it returns a revert, an error, basically saying, I need more information to complete this request. And then more information is,
Starting point is 00:19:05 please go make an HTTP request to this end point with this data and then return it to me. And the client then goes off and transparently does that, as part of the contract call, returns the data to the contract, which then has an opportunity to verify that the data is actually correct. So how that works in practice is,
Starting point is 00:19:24 say your data stored on optimism, you try and resolve nip.eath echoes, please consult the optimism gateway and give me back what it returns. The Optimism Gateway gives you then the resolution in Nick.Eath, along with all the Merkel proofs required to prove that that's part of the optimism state route. And then when you pass it back to the contract, it verifies that the proofs are correct and therefore that the result is correct and returns it to you. And so what it looks like from the point of view of the clients, you know, the app using ethers,
Starting point is 00:19:56 is you just did a regular contract call and you got the data back. And then we're building generic gateways and we're building libraries and so on that mean when you're writing the L1 contract, it can be quite straightforward as well. It just says, you know, I depend on the storage slot from this chain. And then all the verification happens in libraries and so forth. So essentially the contract is able to reverse, say if it doesn't have the data, it tells the client, I don't have the data,
Starting point is 00:20:26 but here is an HTTP request that the client can independently make in order to get the data essentially from a centralized or like an off-chain source. That source returns the data with proofs that the data is in fact correct and then sends it back to the client. So there's a liveliness risk here, but there isn't necessarily like a, there's no trust risk, right? Okay, interesting.
Starting point is 00:20:54 Yeah, exactly. And that's the thing, because ultimately every roll-up in order to be a roll-up has to be able to prove things on L1. It means that the strategy works for any roll-up. So, you know, it's easiest for us with EVM-based roll-ups because we can just deploy the existing contracts we have, you know, with very few changes. We need a bit of library code to deal with how that particular roll-up proves its state on the L-1. But it could, in principle, it can be used with any sort of L2, you know, ZK-proof ones as
Starting point is 00:21:26 as long as you just have some way to prove that a response from the roll-up is correct. This particular, like, EIP, would it also allow reading from, like, IPFS or some decentralized storage source, or would it only be off-chain resources? It absolutely does. And, of course, the trust model depends on the trust model of the thing you're reading from. So, for instance, you could store a Merkel route in your, you know, your contract on L1, and then your gateway could read data out of IPFS and return it. And the trust model there would be that you have to trust the route that was committed on L1.
Starting point is 00:22:09 Equally, it could return things from just a centralized database where all the records are signed, and the contract verifies the signature. And then your trust model is, of course, that the signer is honest. Okay, got it. And so with regards to how L2s are using this now, practically speaking, if you're, if you've registered an ENS name on on Ethereum, on Mainnet Ethereum, I mean, typically with, I think there are some exceptions, but the, your address is the same on Ethereum as it is on L2s. Why, why does that correspondence simply not work? Why do you need like an extra layer in order to, I mean, couldn't you just like check with Ethereum what the address is, like with some kind of message passing rather than having the L2 needing to have its own namespace?
Starting point is 00:23:05 So, yeah, so I guess there's a few issues here. One is, of course, that although EOAs tend to share the same address across all chains, contract accounts don't. And so we need to be able to handle that separately. but the broader thing is that the emphasis here is on providing the same level of security as L1 while reducing the transaction fees. So the reason the L2 is it enables you to not just update your own ENS name, but also potentially to issue subdomains and to do that trustlessly to third parties and so forth without having to engage in any
Starting point is 00:23:43 transactions on L1, which, you know, if your user is signing up to a wallet for the first time and it's it's five to $50 depending on gas fees to set up their name, they're going to be quite discouraged. Yeah, okay, now that makes sense. And so then L2s, I mean, practically speaking, L2s have,
Starting point is 00:24:03 would have sort of a, like an equivalent subdomain or are we talking about like a, like if I'm, if I'm 7.0.org eth on Ethereum, would I also be set 3.0.8 on optimism or whichever L2, using. It's really up to you. We've got two orthogonal things here. One is how your name resolves and so you can have your name resolved to the same address for every chain ID or it can resolve
Starting point is 00:24:30 to a different address for each chain ID and then there's where the records are actually stored. So you could store all your records on our one but still encode addresses for half a dozen different chains or you could store your records all on Arbitram but you know all you ever return is an Ethereum L1 address. You know, we've sort of separated the two, so you can choose how that's divided up. Okay. And what are the complexities in terms of,
Starting point is 00:24:59 you know, wallets integrating this and having to resolve across, like, multiple L2s in order to avoid collisions? Yeah, this is one of the nice things about CCIP read approach is the wallets and the apps and so forth. They don't have to be aware of all these different L2s. we don't have to update the resolution processes, you know, for each L2 we support. Because the CCIP read gateways, as you observe, they pose an availability risk,
Starting point is 00:25:27 but there's no trust there. And they take the job of translating the contracts requests into, you know, actual, you know, eith get proof calls or whatnot on the L2 in question. And so clients and wallets simply need to implement a single unified DNS resolution process. And anyone can then permissionlessly add. new data storage mechanisms for ENEs. Okay. Now, I was reading about the ENS wrapper,
Starting point is 00:25:56 which is like a fairly new implementation that also is involved in the process of, well, from what I understand it, you know, the challenge was that ENS names were themselves NFTs, but the subdomains were not, right? The ENS wrapper now enables subdomains to also be NFTs and inherit properties from the, say, not the top level, but the main domain, right? How does that work?
Starting point is 00:26:24 And what is the role of the ENS wrapper with regards to L2s? Yeah, so as you observe, like sub-domains aren't ERC-721 or 1155 NFTs, because ENS actually launched before either of those standards existed. So while you can transfer around sub-domains just like any other NFT, they use their own interface for that. One of the things the name wrapper was created to do was to improve that and give a single unified interface to all names. But the essential thing that it's there for is that it makes it much easier to trustlessly issue subdomains. So it's always been possible to trustlessly issue subdomains,
Starting point is 00:27:11 but it's required a bit of smart contract engineering on the part of the owner of the name. because ultimately in ENS every name has control over all its subdomains. So if I own wallet.eath, I could issue you, you know, your name.wollet.eath, but then I could take a bagg as any time. And if you want subdomains to actually be useful to people, then you need to have some way to credibly say, I've revoked my permission to do that. Once I give you the name, you can feel assured that it will continue to be your name.
Starting point is 00:27:42 And so that's what the wrapper provides. you can wrap a name and then we have what we call fuses which are a way of revoking your own permissions over a name. So you can wrap it and then you can burn the fuses to say that you can't unwrap it and to say that when you issue a subdomain, you can't control it any further, only the subdomain or odocab. And so those permissions make it possible to issue trustless subdomains and also to do that in a way that allows allows you to change how subdomains are issued and move to newer technology and so forth and upgrade your contracts without imposing any risk on the user
Starting point is 00:28:23 that you'll use that opportunity to reissue names and so forth. The way this combines with L2 is a bit further down the roadmap but basically would allow you to say well if you migrate a name to L1 then it gets all these same guarantees as the name wrapper and well on L2 you can, there are are other permissions you can burn to say, you know, I, the subdomains will always resolve using this CCIP read gateway or using this verifier for the gateway. So I can update the URL,
Starting point is 00:28:54 but I can't change how it verifies and therefore it will always use optimism or what. Okay. What are some other applications of this CCIP read gateway other than the NS? I mean, you know, there are broader implications in ENS itself, like the guest. DNS sex stuff I implemented. You know, we're effectively treating DNS like the L-tube. There are definitely uses outside that. One of the, the neater ones I've seen is around tokens. So, for instance, your data URI could, you know, your data function to get metadata for a token,
Starting point is 00:29:31 could use CCIP read and therefore return sort of on-chain data that's verified by the smart contract that is actually hosted externally to save on gas fees, for instance. or in fact the very existence of the token could be sort of virtual and realized via these callbacks until such point as you claim it. So you could eardrop a bunch of entities to people with zero on-chain gas cost because they're only, they only exist in a database until the person claims them. Right, right. And then I guess the limitation is like how long do you want to keep the database up for people to be able to claim them? Right. I mean, just thinking about this, I mean, are there, could these off-chain reads be,
Starting point is 00:30:11 used in lieu of leveraging an on-chain oracle in some cases where the trust model allows it and are some contracts using that? And CCIP read calls can actually be used in transaction contexts as well. So you can use that data you get back from a callback to actually make a transaction,
Starting point is 00:30:33 which effectively makes it into a sort of a push oracle rather than a pull oracle. Or perhaps I'm getting the two terms wrong way around. But in any case, you can fetch the data from the Oracle or from the external system and submit it at the time it's actually needed, rather than needing to, you know, have some system that regularly updates Ethereum state. Right. And would this also extend, I mean, could you also use this with, in complement with verifiable lofting computations, where like a server is performing a computation?
Starting point is 00:31:10 right, maybe like with a ZKVM or like a Wasam ZKVM or something like that, right? And it's returning back, it's returning back of some data with a proof. Is that also possible? Absolutely. As long as the proof can be verified inside the EVM, you can use it for it. So, you know, we talk about it as an L2 solution, but really it is a generic, you know, verifiable, sort of potentially trustless off-chain data-fetching system. Okay, well, that's really interesting.
Starting point is 00:31:46 This brings up like so many questions. What's the implication here? What's the broader implication of this, of this CCIP read on just the necessity for, yeah, on-chain oracles, off-chain computation services, and so this whole part of the stack that has built this business model on the ability to provide verifiable data to chains? I think it's more a new technology and a new interface for doing that rather than it is removing the need for that.
Starting point is 00:32:27 You know, we ultimately, we still need that data from off-chain. We still have the questions of, like, what degree of verifiability you can provide. And what this does is it provides an API where it's much more transparent and easier to integrate for apps. And it, you know, it provides a situation where you can write apps that are actually using the soft chain data on demand without your app even having to know or care about that. So, you know, your, you know, claim of the eardrop tokens could just look like a simple ERC20 transfer function to the app. you could claim your airdrop just by transferring it, you know, into an account. But behind the scenes, it's all using all of this infrastructure. So what it really does is just improve the developer experience and improve the ease of use of use of all this.
Starting point is 00:33:17 Very cool. Yeah, I'll have to spend a little bit more time researching this. Yeah, coming back to the L2s, you know, of course, I think, you know, when thinking, about integrating ENS with Ethereum L2s. We're thinking about EVML2s. But I think in the future, we do expect to have non-EVML2s. I think with the growth of eigenlayer also we can expect Ethereum security to be rented by non-EVM platforms. What's the what are the implications here for ENS and making ENS compatible. And it sort of comes back to the first topic we were talking about earlier with this collision.
Starting point is 00:34:05 And so the multiple namespaces. What are some of the plans to make that possible? Let's say, like someone wants to build a Cozumwasum VM secured by Ethereum Security and bring ENS to that app. How would that be possible? Yes. So in terms of the namespace, of course, all of this, you know, all of our efforts around CCIP
Starting point is 00:34:33 reader are pretty much they exist in order to ensure we have that one unified name space. And so I've talked before about the importance of avoiding collisions or multiple registrations, but it's also equally about making sure that you can resolve names anywhere. You know, we shouldn't have a system where, you know, an optimism law can only resolve optimism-based names and an Ethereum molecule can only resolve Ethereum-based names. And so, you know, with CTIP-Reed, we're able to provide that bridge.
Starting point is 00:35:03 And that bridge can be to non-EVML2s. You know, again, as long as you can verify the responses, you can do it. What that looks like is a little more varied because, of course, non-EVML2s have a much larger design space. So it's a matter of finding a way to build that out, and that will likely require, you know,
Starting point is 00:35:22 L2-specific engineering to build appropriate registries on the L2s and so forth. When it comes to resolution, ultimately it starts at Ethereum. So even if you're resolving a, you know, a ZK Sync-based name or a name that resolves to a ZKSync identifier, you still start by the lookup process by querying Ethereum. Okay, yeah, it makes sense.
Starting point is 00:35:52 And, yeah, what's been the adoption of ENS on L2s, like which L2s are currently using it, or do you expect we'll start using ENS? So, you know, because it's open and permissionless, it's been a little bit, you know, we don't have a central database in that sense. So, for instance, Coinbase started off on their own internal private database when they issued dotcb.ad names, which will use CCIP read. and they have since moved on to base. We've got a generic gateway that we've been building very recently,
Starting point is 00:36:31 which allows for very trivially building gateways to just about any L2, and we've stood up official gateways for optimism for that so far. But we're planning to expand that to Arbitrome into any other, you know, OPM-based L2s that pop up, and, you know, from there to others, because it's quite easy to add new verification mechanisms. for them. Thus far, adoption outside large integrations like Coinbase has been a little slow because most people don't have the resources to build their own link, their own gateway. And so that's what our generic gateways are intended for, is to make it much easier. So give us,
Starting point is 00:37:14 you know, a quarter or so, and you'll see people moving their names and they're hosting to L2s, easily through a UI, zero code, which is what we've been working on unlocking at the moment. Cool, yeah. Well, let's talk about Coinbase a little bit. So, I mean, they recently announced the CB.ID, ENS name that works across the Coinbase platform. Yeah, what's the, how does that work?
Starting point is 00:37:46 And how many new users have, has ENS recently? see from that integration? It's hard to say because it's all off-chain, but we know it's in the millions, you know, simply because they're onboarding their entire user base. CB.id is a great example of both our DNS integration and our off-chain integration working together. You know, CB.D.ID is an ENS name, even though it's also a DNS name, and Coinbase simply imported it one time into ENS and then can treat it just the same as a
Starting point is 00:38:18 dot-eath name. and the way they've used it then is to actually set it up CCIP read initially as I said it sort of you consulted their internal database for resolution but they've since moved it to using data stored on base understandably which means that they can provide they can prove to you that you know you're the one in ultimate control of how your name results yeah I haven't tried it yet but I'll have to have to create my CB. ID ID name.
Starting point is 00:38:54 Yeah, one of the ways that I've been using ENS that, I mean, so, you know, I've got a couple of like, ENS domains for like my own, my own personal use, but one of the ways that I've been using it that's been really, really helpful. And it's, I mean, it's very basic
Starting point is 00:39:09 use case, I guess, but it's just naming all of, all of the wallets that I use with, like, you know, I've got this, I've got this kind of like namespace, like my own namespace that I've created. And, you know, the same way, I guess that you would like name servers in your, in your land or, you know, your gateway. And so, you know, as a fund manager, like, we have several,
Starting point is 00:39:34 we have several noses safes and different addresses that we use. And we've just like named every one of them. And we know that like this is the address that we use for this. And this is the address we use for that. And that's made it very easy for for us to do capital calls with our LPs, for example. We just like give them an N.S name and just verify that ENS name with them instead of like an address. And just, you know, when you're looking at your wallet, you just know, okay, like these are the names that I use. And they're sort of like unique to me and I know what they are.
Starting point is 00:40:03 But but that's been a really cool use case. And, you know, couple that with the ability to like really easily buy ETH with a credit card. on like any of these sort of like credit card, um, the service where you can buy ETH and you can basically like set up brand new addresses that have never sort of touched the outside that have never been touched by your own personal addresses are sort of like quarantined, right? And, um, and, um, and to some extent, uh, shielded from your, from your other identities.
Starting point is 00:40:37 Because you can sort of put gas fees there. So we've, we've been using that quite extensively to like set up, you know, an array of addresses that we, that we use that we don't want. to be connected with our own personal identity. So I found that really like a great, great use case and something that we've been implementing at the fund. Yeah, I think that's absolutely the right way to handle it and to treat on-chain privacy.
Starting point is 00:41:02 Like the connection between on-chain privacy and naming comes up a lot. And the thing I always emphasize is that, you know, not naming your accounts is security or obscurity. it seems harder to track, but in reality, a determined person can certainly, you know, figure out which accounts are yours and so forth. The ENS doesn't solve the problem that not does it cause it? You know, it sort of makes it more obvious both to you and to others, you know, what the account is for, and nine times out of ten, that's a benefit. And when it's not, you need to follow processes like you describe and make sure that the accounts you want to be separate are actually, you know, held separately and set up separately. Yeah, yeah, it was a bit of a, like, we had to implement sort of a process to do it because like, I messed up a few, right?
Starting point is 00:41:51 Where it's like, okay, I'm going to send some eth over here. Oh, no, like, I wasn't supposed to do that. So it is also about having like good offset processes internally to make sure that like those things don't, don't touch. But yeah, I was chatting with a guy in, in Istanbul a couple of weeks ago. We were there for Cosmoverse and he was building this, this, this, this, uh, he, he, uh, the site called zero X PPL, right? Zero X people. I don't know if you've heard of it.
Starting point is 00:42:20 And it's sort of one of these like debank type services, but with really in-depth sort of data on interactions between addresses. So you sort of like go to one address and then you have this hub and spoke thing that shows you all the other addresses that it's interacted with. And, you know, I think I'm fairly good with my security and my outside. sec, but then, you know, in a couple of clicks, he showed me that I had not, you know, properly implemented this process and like these two addresses that I thought were not linked together, had been linked together somehow, uh, including like payments to, to other folks.
Starting point is 00:43:00 And so, you know, talking about privacy, like, you know, one of the other things about this, the services that now, you know, they're integrating and I'm sure all the big sort of like chain analysis and sort of competitors to chain analysis are doing the same thing is implementing large language models to decipher connections between addresses. And this is what they were doing, right, where you can just say, okay, what are the addresses that this particular address have been, have interacted with or, you know, which address, which Ethereum addresses were participated in the, in the cosmos token sale, for instance, you know, like, you could sort of push it to that extent. What, like, have you thought about large language models and how they conflict with the
Starting point is 00:43:43 idea of on-chain privacy and what are some of the best practices that we can implement now as users of Ethereum where Ethereum doesn't have effective privacy on-chain? And what is your hope that will, you know, at some point get to full on-chain privacy? Yeah, I think, you know, large language models, much like any sort of expose the assumptions that we make, you know, they democratize access to this sort of functionality, but ultimately aren't providing you anything that wasn't already, you know, there on chain. The solution, I think, is better base layer privacy primitives. The unfortunate thing is that, you know, politically, these things are contentious at the moment. I don't think it's an unreasonable ask that not everybody can read my entire
Starting point is 00:44:30 transaction history and see, you know, everything I do. And I think if you went to most people in the real world and said, hey, can I see your bank statement? They would react with alarm. But somehow when it happens on chain, it's seen as illegitimate. And so I think a lot of it is we have to sort of fight that perception that a desire for financial privacy is somehow, you know, scurrilous before we can see widespread deployment of some of these primitives. It's a good connection, though, to like a history of like using encryption in that when it becomes the norm, it also becomes less of a target.
Starting point is 00:45:11 So, you know, nobody blinks that you use SSL for every single website now, but if you only use them to watch porn or launder money, then it would be a sign of suspicion. Likewise, you know, chains like Zcash, you know, seem to be treated with less intrinsic suspicion than mixes like Tornado cash simply because privacy is the default. So I think we need better primitives and we also need to sort of enshrine them and make them the thing that's, used as much of the time as is practical rather than just in exceptional circumstances. Yeah, I mean, I agree with you that, like, politically this, this is very contentious. But, I mean, ultimately, my view on privacy is that it is an essential component of just the idea of, you know, just the idea of capitalism, right? Like, capitalism is able to, I can't remember who said this, but, like, capitalism exists
Starting point is 00:46:08 or is able to function because we had a... asymmetry of information, right? And so there's this like information arbitrage between market players and having like full transparency over everyone's, everyone's transaction history, everyone's business dealings, etc. With with whom everyone interacts economically, effectively sort of like breaks down that asymmetry and we end up in something closer to what I guess like communism, right? What's the hope do you think that? that within the next 10 years we have, you know, better on-chain privacy or absolute on-chain privacy would be, I guess, like, the desirable outcome? Or do you think that this is a pipe dream
Starting point is 00:46:58 that will never happen? I think it's difficult and it's particularly difficult inside, like, an EVM-based L2 or an EVM-based network, because the system simply isn't built with it in mind. So I think if we see it, it will be through L2s that use, you know, systems similar to ZKSha or ZK Sync, you know, becoming widespread and becoming the default transaction thing. And I don't think that's necessarily a bad thing, you know, Ethereum becomes a sort of a clearing network, and I don't think it's a problem that, you know, clearing network transactions are public, you know, in the same way that I would love to see more transparency into the operation of, like, you know, central banks and so forth. There's financial.
Starting point is 00:47:41 privacy most benefits individuals and companies, not, you know, banks and governments. I don't know how practical this is. It's, you know, aside from the political thing, it's a large technical challenge. And having both financial privacy, you know, and shielded transactions and also being able to engage in like arbitrary, you know, smart contracts is a really tough problem to solve. So I guess I would say I don't think we'll have it. years from now, but I think we might have moved a needle more of the direction of making privacy than all and making it easier to shield your assets and your transactions. Yeah. Yeah, I mean, in the context of, you know, if we think about account abstraction
Starting point is 00:48:30 and, you know, thinking more broadly about like decentralized identities and how identities are formed through these, you know, links to other forms of identity, right? So, like, you know, currently, if you want to add some weight to your ENS identity, you can attach your Twitter identity to your ENS or, you know, Keybase has this model also where you'll attest to your ownership of other pieces of identity in order to bring more weight to, you know, your Keybase identity. It's a shame that Keybase. is no longer really a viable product to use.
Starting point is 00:49:09 But how do you think about the role of account abstraction in forming a real decentralized identity in the form of ENS and perhaps also adding some layers of privacy there since we can rotate keys and that can be used in a way to abstract away the ultimate beneficiary of an identity? I think account abstraction in some form is going to be fairly essential to more widespread adoption of Ethereum and of crypto in general because of the usability benefits it brings. And one of the pleasant side effects of that is that it's easier to then implement things
Starting point is 00:49:55 like better financial privacy and so forth. Yeah. Maybe give an overview of what are the advancements in account of and the use of account obstruction with the NS on Ethereum. I think, I mean, you know, I don't follow the area of research in as much detail as I may be should, but, you know, to my awareness, the sort of two general approaches. One is that we can enshrine account abstraction in the base layer and the EVM with things like Orthcall and so on, which basically allow you to treat a special contract account
Starting point is 00:50:36 like an EOA and transact from it. And that provides, you know, sort of a more direct way to do things. And it also sidesteps, you know, a bunch of difficulties around, you know, gas and transaction fees and so forth. Things like that are promising, but large changes to the EVM tend to take a while. And it's all too easy to have unintended side effects, you know, and hence the understandable caution in implementing them. you know the second way is through you know authorizations through you know metatransactions and so forth
Starting point is 00:51:11 where all of this happens in the abstract you know in the in the user layer that's much more practical and it's happening now but also the user experience tends to be a bit worse and it's a bit there's a lot more infrastructure to set up you know so your user there has to sign a message in server transaction that then has to be sent to some sort of relayer the relayer has to handle how to pay gas fees and how to be reimbursed, and then either the user or the platform has to somehow, you know, translate, you know, the right amount of funds and to pay the gas fees, and it all gets very complicated.
Starting point is 00:51:47 But we can implement it, you know, as we wish, without waiting for everyone to be in agreement. In either case, you know, E&S sort of continues to function the same way. You know, we can name contract accounts just the same as naming externally owned accounts. you can transact from them just fine. You know, there's nothing sort of intrinsically linked to the NS to external accounts. So fortunately, we work with account abstraction really well. And, you know, being able to name those accounts can also improve the UX a lot
Starting point is 00:52:18 and you end up with more of them to keep track of than you might otherwise. Yeah, I saw the Cometh team has a really nice implementation of account abstraction in their game. and yeah, it's like it's great how just how well it works. You just, you open the app. It creates a wallet. You connect that wallet to say like a past key. And then further on, as you sort of add assets to that wallet, it might ask you if it like connected to different forms of identity
Starting point is 00:52:49 or different signing mechanisms. And yeah, the onboarding experience is pretty incredible. And in terms of enshrinement, maybe an interesting examples to look towards is osmosis on cosmos. So they're building a kind of abstraction into the protocol. Now, of course, for osmosis, it's different, right? Because they're an app chain. They can sort of like control the entire stack.
Starting point is 00:53:15 But like a month ago, they demoed this really sort of nice way to build account abstraction where existing addresses, existing EOA addresses could be turned into abstracted accounts and then you can effectively like connect different pass keys, Twitter accounts or like any Oath in order to sign. And then also have different signing mechanisms based on the types of transactions that you're participating, that you're issuing. So if it's like a swap transaction or like a send token transaction, you may need like a certain amount of keys to do that.
Starting point is 00:53:55 However, if you're just like voting on a government's proposal, or performing some other action that doesn't involve transferring funds, you might be able to just do that with like, you know, your Twitter login or your Google login or something like that. So like having also permissions built in the protocol is really nice. I mean, that's one of the benefits of having an app chain, I guess, is that you can sort of, you know,
Starting point is 00:54:15 you can have total controller with that, but I understand that like for something like Ethereum, it's much more difficult to enshrine that into the protocol where there's so many applications and sort of L2s depending on that base layer. So it's an interesting challenge to have to deal of course. It's interesting you bring that up because you just reminded me that so a couple of years ago I proposed in the IP that would implement something very similar.
Starting point is 00:54:38 Never got much traction, unfortunately, but the basic insight is what if you could, what if an EOA could delegate call? So you would have a special transaction type that instead of just calling a contract, delegate calls it and therefore it executes as the EOA. And in principle, this would require a fairly minimal set of changes to be, because all of that infrastructure, all of that mechanism is already in place. Unfortunately, you didn't get a lot of traction. There are a couple of odd-age cases around it, but I think it would be tractable
Starting point is 00:55:08 and potentially provide a much simpler mechanism than some of the other ones that have been proposed. Yeah. Yeah, I'm really looking forward to seeing a countertraction come to Ethereum in more tangible ways. And, yeah, I think we'll get there eventually, right? there's already some some implementations of it. Yeah, maybe looking to looking to the future of ENS and reflecting in the last six years. So I think it's safe to say that ENS is one of the largest or if not the largest Dow in Ethereum. Also generating revenue, right?
Starting point is 00:55:52 There was this one day earlier this year where ENS generated like upwards of of $235,000 in domain fees in a day, you know, millions, I think it's 2.4 million addresses, active ENS names. Yeah, what do you think of all this? And, you know, how do you reflect on, like, the last six years and where ENS has gotten to today? It's certainly been a journey. We always intended to decentralize the ENS over time. When we launched was, we We launched not long after the DAO. And so we weren't exactly keen to be like, hey, let's launch and straightaway launch a Dow, and it'll be fine.
Starting point is 00:56:37 You know, we wanted to actually see governance, primitives, mature and demonstrate their effectiveness first. But that absolutely happened. And, you know, two years ago, we launched the Dow and the ENS Dow. And you're right. It's been, it's one of the largest, you know, by participation, it's got ongoing revenue. It's, you know, ongoing participation as well. And I think it's been very effective at administering the protocol.
Starting point is 00:57:02 I think the revenue is an essential part of it. The fees were, for ENS, names are set to regulate the system rather than directly to bring in income. You know, the idea is if names are free to register, then they'd all be registered. And the only way to get them would be to try and, you know, pay enough to the person who jumped on it first. And so we want to set that balance where it's possible to find a name. that, you know, represents what we wanted to, you know, directly and easily in a sort of a liquid fashion rather than having the entire system squatted on immediately. You know, I've seen that sort of behaviour left uncontrolled has, you know, strangled ecosystems like Nankoin and other
Starting point is 00:57:45 early attempts. But a very pleasant side effect of that is, of course, it generates funding, which can help, you know, continue to pay for ENS development and so forth. And I think the fact that ENS has revenue that it can actually use to continue to pay for development. It's meant that we haven't had to look for venture capital funding, which has now allowed us to stay truer to our open source and public good routes. It enabled us to help fund other projects in the ecosystem and relating to EMS as well. And it really provides us with like a stable future. So, you know, we've put a 50 million odd of the amount that's been raised into an endowment, and its sole goal is to grow stably and safely over time, so that ENS will remain a stable operating system for the next hundred
Starting point is 00:58:39 years or more, you know, independent of what happens to revenue, because we also don't want to have to make decisions of, well, it would be better for the ecosystem if this fee went away, because it don't longer serves its purpose, but we need it in order to fund operations so it has to stay. So our ultimate goal is to be able to make those decisions independently of each other, and things like the endowment, you know, work to make that possible. So I guess the thing I like the most about it is it's enabled us to maintain that independence and that attitude that what we are building is infrastructure, not a money spinner, not an investment opportunity.
Starting point is 00:59:18 Yeah. How much is in the endowment? Well, it varies day to day. It is a little under 50 million at the moment, I think. Okay. It's divided up between ETH exposure and USDAC exposure. The basic intuition is that if somebody pays for 10 years of registration, we, after a year, one-tenth of that is effectively being used up.
Starting point is 00:59:43 You know, they've had their year of registration. And so that's money that the Dow can spend or invest. as it sees fit, and that's held as USDC for stability. The remaining nine years are still money that was paid for a service that hasn't been rendered yet, and because it was paid an ETH, we keep it in ETH, so we still have a large ETH exposure. And the Dow, therefore, sorry, the endowment therefore is divided up into those two sections. And because of the ETH exposure, you know, see some fairly large variation over time. Our endowment manager, Karpak, is very good and publishes weekly reports and monthly reports,
Starting point is 01:00:19 but provide a lot of detail into the goings-on. Yeah. I mean, one of the interesting things about ENS is, I think the governance, how active it is, you know, the implementation of the delegate system. You know, I was sort of surprised, I mean, plus simply surprised to see that Coinbase is a large delegate and fairly active in governance.
Starting point is 01:00:45 You know, looking to the future of, of, of ENS and particularly the governance, you know, how do you think that will scale as ENS grows and, you know, will we someday see like ICANN sitting on the governance board of ENS, you know, and other large organizations that use the protocol? Yeah, I would love to see participation from, you know, from other large organizations and stakeholders. You know, I want ENS to be built with those people in mind and I want them to have a say in governance. I think ultimately enabling that sort of thing means doing what we can to make it as
Starting point is 01:01:24 easy as possible for people to shift their delegated votes. We've done that using things like free re-delegation where we use metat transactions and we pay the gas fees for re-delegating your tokens. But as with any project with a token, keeping people's attention and keeping them focused on governance and active in it can be a problem. So we see this gradual decline and delegated token counts over time. And so combating that and increasing governance participation
Starting point is 01:01:57 and also making it very easy for delegates to step up and step down and we want someone who comes along late to have a good opportunity to encourage a lot of people to delegate to them. Equally, we want someone who is moving on to be able to make sure
Starting point is 01:02:12 that the votes delegated to them don't go to waste. because they're no longer active. Solon challenges like that is going to be a big thing going forward for the NSDAO to make sure it continues to be representative in how it governs. Yeah, I mean, I think like governance delegation is, you know, it's certainly like an issue that we see in the Cosmos side of things as well, right, where, you know, I think Cosmos has a, Cosmos chains have a different model
Starting point is 01:02:42 where validators are sort of the de facto delegate, right, if you don't vote. if you don't vote from your own sort of token, your own tokens that your validator votes for you. But that has created, I think, a situation where I think a lot of people are dissatisfied with the way governance is conducted, right, where it would be better for, in some cases, maybe for things like spending, like community pool spending and things of that nature, treasury spending, treasury allocations to be governed by like a group of folks, right?
Starting point is 01:03:21 So for that that responsibility to be delegated to like a group of folks that are voted in by governance that can be vetoed, etc. But we found that I think the community is moving more towards this model where governance responsibilities are delegated or should be delegated
Starting point is 01:03:37 to like sort of sub-dows, right? This is a sub-dow idea. So, you know, it's an interesting problem to solve. Yeah. And any of this project, that little differently with our working groups, you know, that working, the whole hour next working group stewards are a regular basis, and they have delegated authority to deal with day-to-day decisions. I think there is a common misconception in, you know, the
Starting point is 01:04:02 decentralized community that, you know, everything has to be decided by everybody. But in reality, that's just not how any large organization works. There has to be some delegation of authority, and what makes it decentralized is whether there's transparency and checks and balances over that, whether, you know, somebody who isn't representing their community can be removed and replaced, rather than that every single decision, you know, gets voted on by everybody, which is exhausting and requires everybody to be an expert on everything. Great. Well, Nick, thanks so much for coming back on and sharing an update on ENS. Yeah, really, really excited that we could have this conversation again.
Starting point is 01:04:44 And I also excited to see ENS growing and continue to grow and be a pillar for the way we should conduct governance in the space and also an important component to bringing in more adoption into Ethereum. So, yeah, a number go up in terms of ENS names created, I think is a good metric to be looking at. Excellent. Thanks, Nick. Yeah, thank you. It was a pleasure. Thank you for joining us on this week's episode. We release new episodes every week. You can find and subscribe to the show on iTunes, Spotify, YouTube, SoundCloud,
Starting point is 01:05:26 or wherever you listen to podcasts. And if you have a Google Home or Alexa device, you can tell it to listen to the latest episode of the Epicenter podcast. Go to epicenter.tv slash subscribe for a full list of places where you can watch and listen. And while you're there, be sure to sign up for the newsletter, so you get new episodes in your inbox as they're released. If you want to interact with us, guests or other podcast listeners,
Starting point is 01:05:47 you can follow us on Twitter. And please leave us a review on iTunes. It helps people find the show, and we're always happy to read them. So thanks so much, and we look forward to being back next week.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.