# ENS Cross Chain Integration Strategy by Makoto Inoue | Devcon Bogotá

- Speakers: [Makoto Inoue](https://streameth.org/speakers/makoto-inoue)
- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2023-10-07
- Duration: 21:19
- Watch: https://streameth.org/watch/yt-mDNyxWSgFRQ
- YouTube: https://www.youtube.com/watch?v=mDNyxWSgFRQ

## Description

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/ens-cross-chain-integration-strategy/

In general, most cross chain use cases are “asset transfer” for bridges to cross tokens from one chain to another then each application deploys the exact copy from L1 to other chains. However, ENS (Ethereum Name Service) has a set of unique challenges because ENS functions as a “global address book” to resolve addresses on any chains from any wallets. We have received lots of requests from chains and dapp developers about how to integrate ENS into their chain of choice and I am going to explain

Speaker(s): Makoto Inoue
Skill level: Advanced
Track: Layer 2s
Keywords: ENS,L2,cross-chain

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] good okay so uh my name is uh well my name is Makoto by ens is my talking dog is how many people got this swag things great okay so probably support someone with you I was a man behind you know between the nice swag and you know that you so like you know just making sure you guys are cute alcohol and all that stuff but uh I'm hope hoping that now I don't really have to explain what the ens is so it's a basically Webster username whether you go to uh Co-op or Instagram or openc or easy XYZ it's all my token.is so that's my name and so today I think this this room is mostly in a theme of a L2 track so we are going to talk about kind of L2 of gen interchange strategy on what ens is doing and we are actually been doing since kind of 2020 and there was a lot of talk and work going on but people are not quite sure where we are at right now and it's actually some of the feature it's two and a halfway of the road map but it's some of them are already available so first I was going to explain what kind of the Cross chain example already available to you so this one doesn't really require any technology technical knowledge then I go a bit deeper to the underhood definitely so probably I I show a bit of code so mostly for devs and therefore what's next section is yeah what's going to happen in the probably a bit technical okay so uh for some of you may know uh coinbase I want the biggest exchange I recently announced that they decide to issue subdomain to all the users I think there's a couple from the coinbase I'm gonna raise the hands okay thank you and it's great because like whenever you go to like you know exchange that you change uh you get your fiatu coinbase then you will not move into somewhere for the D5 then like passing struggle is like oh what's how to send to you know same address in there I think it's great that it's been uh ens is available available from the kind of assurance a new user got on board with crypto and uh I got you know when makoto.cb.id because matokeo is already not available unfortunately but like if you go to your in a profile page and another thing is so coinbase has I think coinbase.ed eth but they chose uh CB dot ID firstly because it's a lot shorter and another thing is uh ens is just not just about dot eth you can actually import the order your Internet domain as a ethereum name so like origin wallet has a DOT XYZ and you can make or comment the stuff so they decide to use cb.id to import the DNS to kind of ens world then decided to issue subdomains so once it's done you can see my Q handwritten Avatar and yeah website and the email address and if you look into this our ens manager you can actually see the same thing so it's the data which is stored in I think it's in a database in coinbase it's processes route uh basically same layer one so that any doubts or like a well that can actually access the data and the great thing is uh the user hasn't paid any single gas and another exam interesting example so I think coinbase cases was in a company of chain in the database so lens is another kind of uh web3 social network which provide the user profile and how many people have lenses profile okay maybe half of it and so this lens actually have a ens Association address Associated and something you might not know is uh it's actually that's also a proxy to the uh you say I'm L1 after ens and on layer one so if you actually look into it you can actually see that on our EMS manager and this is kind of recent uh release but now uh beta mask supports so that like if you try to send no one really has to send ease to study you know if you want to you know you go to stanley.lens.xyz uh that that's already available and this is another interesting things like so optimism uh there's some Community user just posted on their our Forum that hey we created a name service and they actually just spoke the uh what we are doing and they create a kind of nft and they decided to issue some domain on their nft and it's actually available on optimism which I didn't even know until he posted which was kind of crazy and I do explain there's some Nuance on the difference on how you do she's doing and that what we could do in uh next chapter and this is a really really crazy thing is like so we I'm saying like off chain which can be anything so I showed like database example I showed you the lens is basically the polygon other ebm example this is literally the Google Doc and someone put that kind of integration so that if you type the data into the Google spreadsheet it actually updates which is kind of crazy and yeah some I only got to know because someone tweeted it so this is kind yeah it's called sheets though is apparently okay so and so current state is so these things we've been doing it's not something you can uh you can do it without any integration so we actually talked to many partners and the integration Partners to integrate this thing first so if you adapt developer if you want to have these like a coinbase sub domain or land sub domain or uh sheets subdomain as long as your app has He suggests uh later than 560 or web3 Pi B6 or web3 JS b493 uh you already have the uh feature integrated and also I think nowadays people use framework kind of tool like wag me or used up they because they use esl.js underneath that's already supported yeah right away and for the wallet side there's a wallets like I'll follow it uh urgent metamask Umbra coinbase trust wallet wallet connect and it's a scan they all uh integrate so if you're using this you can actually uh send money to basically study or like any coinbase user who has CBI d sub domains if you want to and so yeah what's common across oh yeah I just realized I can just read that sorry uh okay so what's coming across this example is basically storage like no stick it can be the best polygon optimistic optimism or Google spreadsheet and depends on the storage uh yeah if it's in like a L2 or side chain you might pay a little bit of gas if it's enough chain complete uh gasless and the interesting thing is like I think most of stuff I'm lucky if you use different chain first things you have to do exactly you go to metamask and you know change the network ID and the stuff you don't have to do it because you don't want to know which chain these users data are and they're like I don't want to know like you know where data is for the coinbase users or lens users so that for the read-only purpose data is all available through L1 and this one I will explain later but we call it kind of trust not minimized you'll find out a bit more detail okay so under the hood uh so if there's any pretty much all the things I'm going to say is in this docs ens.domains and there's a QR code so if you you are interested you can just you know take a shot and sorry yeah okay four or five years and the basic model is we have three well basically two big components one is called registry where it's a big gigantic dictionary key Value Store and instead of registry hence the value we return so for example in this example uh you ask uh what's the user says what's the uh food or is has in example it returns x1234 which is some another smart contract called resolver and the resolver is a one if you ask that resolver what's the address of food.edh that Returns the actual ECM address so that kind of two ways right and the reason we did is is the flexibility that uh once you kind of change it's very difficult to change smart contract once you deployed to ask everybody to change point to the new one so but if you have a resolver each user or each name owner this is important to understand is a can swap the resolver and have their own custom uh logic or if we release a new feature you can upgrade to the new feature or by uh by each user by each domain okay so this is a basic and with this in mind uh what we do with this new interchange of across chain uh thing is something called ccip read also known as eip3668 uh secure of chain data retrievable and what I'm going to explain is it's going to the instead of the two-step model of the existing resolver it's a three-step model and request and a verify okay so what it does for the first time is like for example if you go ask for the uh data on the resolver uh instead of returning the data it actually throw the exception called off chain lookup and so like this error message came from I think solidity eight point something and this interesting thing is like a basically it returns a different kind of a data type by calling the same function so that like you don't have to client doesn't have to know whether the function call is towards L1 or L2 other place it's just like you uh e reverts and it catches and then once you revert you catch the revert message it has the information about uh this address which is a resolver then it has something called URL which is we call a Gateway server and plus the core data which you know you send for the function call and of gem is over Reservoir so this is I think the function type of the uh function which you're gonna call once again once the Gateway returns up results and what the code is a bit old so there might be some consistency that so step one revert and that's solidity code and the once that's done uh so this is a web service that URL you know you just catch in a revert you call this uh web services and the uh things it does is uh fast line is the Salvador art is just like a function uh ccipv server Library offers like any or any of the web services you have you can kind of chuckle in this uh capability easily then what you do is you basically query the data from somewhere it could be database it could be of a side chain it could be Google spreadsheet then after that we basically ask the gateway to sign the data and it returns uh back to the client and once it's returned uh again this is in L1 that uh it basically calls this function to and you decode this signature and you check like if we verified and if you it's verified by the Gateway it was specified in revert we say okay we trust this Gateway service so like hence we return the data so bye by using smart contract to be kind of proxy yeah user can retrieve the off-chain data without switching metamask or not knowing any other information but all these things are kind of encapsulated especially using esos.js so most data use you don't actually even see it but if we want to do directly with the interactive smart contract you kind of have to know yeah and so once the basic logic of the of generated redrubal is explained next thing you also have to know is another EIP called ensip10 so wild card resolution for issue sub domain is like one thing you need to know in the case of we are talking about biggest use case as a issue in sub-domains and when it goes to uh for example cbe.id cbd.id does have a resolver contract on the L1 which basically acts as a Gateway too of chain but use the subdomain actually doesn't have any data on L1 and what it does is this isn't just another rule we Define in a client level that if I I have a let's say my token in this example it says eth and the IFA dot matokeo.eth it doesn't exist no one doesn't have a resolver at the client library on asked to the parent in that case matokundo is to say do you know anything about your child then that child goes to LT or of chain and get data so that's how uh China allows you to issue subdomains which is gas free because it doesn't exist on L1 and so the consequence of this approach is fast so no unchain event for issuing subdomain or records so quite often when you build adapts nowadays you kind of rely heavily on like something like subgraph to retrieve data with information uh in current specification which don't have that so in our case we kind of hard coding like you know especially if you have done any coding on the ens for example text record a key value store which key has been uh said we actually are or which coin type has been said we actually retrieve from the subgraph the graph sub graphs and because it the graph information doesn't exist we actually basically hardcore and if you look into the ens manager and if you look into the subdomain of the cbd.id or lens or XYZ you actually see like it doesn't exist because that whole thing doesn't exist on L1 and another so this is specific to the uh the ccip protocol itself but another thing what we are doing right now is it's actually kind of halfway through going to our what we really want to do and currently because we are rely on this kind of centralized Gateway model to sign the keys so if you find a key which Gateway is has is compromised the Mauritius actor could potentially basically we point all the sub domain address to my address so they all the money so protecting the Gateway it has some security concern and for that reason if you have a gate where you you have to deploy Gateway by yourself you can't let other people to deploy it Gateway and use their own so that's kind of limitation current approach however it it's here and it's working so another uh photo time is that if you want to try out this approach into uad app this is a QR code to take a photo with me smiling thank you and so what's next and so we are kind of yeah as I said it's kind of halfway and so we did the off-chain data retrieval ticked and basic library and wallets integrated checked and so there's three other things we kind of have to solve to to go to where we really want to achieve go and the first thing is I call CC sorry a ccwdp AKA eip559 is called cross chain right deferral protocol but I think it's the joint uh EIP with I think coinbase and then Nick Johnson I think is basically so far you saw that uh all the data can be retrieved on L1 so that you don't need to switch Network to read the data but once the next step is actually you want to let users to update the data and currently I think uh in case of lens lens have its own interpersonal L2 so like you have to know that you have to update on lens in case of a coinbase you have to know that you have to do in a coinbase uh basically extension but this one kind of uses similar approach to ccip reads to return the like where uh you need to kind of be points to your end point or like a URL to update the data so this is kind of fresh oh no it's June so it's been there but I only get to know like cycle that this existed so uh it's fresh but like there's already draft so you can take a look and uh next so yeah trust minimize resolver Eco uh Roll-Ups so that so far I was talking about quite kind of centralized approach like you have to trust the Gateway well we uh have design is going uh so yeah one of the stuff of the Roll Up is the fact that like you most of the roll up whether it's a kind of uh optimistic or DK that their basic principle is to batch right uh L2 data to periodically in a battery data into L1 that means you can actually uh verify the state or belt too on L1 using L1 Contra uh so yeah optimistic uh roll up uses Cloud proof and a DK user validity proof and once and my understanding is that uh optimism or like stock where all these companies listed they do have a basic function so once we have that function what we're gonna do I explain how do I here so here it's uh just like retrieving the data and signing the uh message but what you can do on the L2 rollup is like you can get basically get the proof data with the proof and uh yeah you construct the Marco R3 and on this uh verify station on a smart contract you can basically call uh I forgot the name of the optimism code do you remember verify was State commitment something called a function to verify and by doing the uh even if a Gateway returns just data oh my time is already up okay uh you can uh you don't have to trust so that's are you gonna it's a complete app of another five minutes okay so uh I think I already mentioned and there's a demo which we did two years ago for the optimism so optimism we know like how it works and we are right in the middle of updating to the latest version and yeah I'll skip that order and all the end you know this now YouTube my old photo so sorry so the QR code so you should refer to and the more important things is yeah we have a set of ens by Nick Johnson for salty uh so yeah that's it
