EIP-3668 Cross Chain Interoperability Protocol / Luc van Kampen (luc.computer)
EthPrague 2023 · June 2023 · 8:35
Luc van Kampen presents EIP-3668, the Ethereum standard known as CCIP Read, which lets a smart contract direct clients to fetch data from offchain sources and then verify the response onchain. The short ETHPrague 2023 talk introduces the proposal as a building block for interoperability between Ethereum contracts and data that does not live on the same chain.
Speakers
Topics
From EthPrague 2023, hosted by ETHPrague.
Transcript
am I well there we go am I Audible awesome okay so gme's frog it's been absolutely hectic that's my disclaimer for this talk it was made over the last 24 hours and I have completely revamped it because of some crazy events over the last couple days um alongside that we're here and we're doing a whole bunch of stuff we've got a whole bunch of people here so I'm Luke Luke I'm part of the NS team I'm developer relations at ens and I kind of do a little bit of everything at v3x Labs um we are an open group of people that like working on public goods and open source and we do all sorts of cool stuff in the ecosystem so before I get started I have a 10 minute speaking slot and then we have 10 minutes for questions but I'm going to
really quickly plug the super cool card that we have um we have ens swag if you have an ens name and you don't have a card already comes with the paranoli polis the second floor and then to the paper hub first on your right you'll find us steps to obtain one I only post second floor and then first to your right will be right there and we'll be able to print you a cute little card that it has a nimi page and issues pull apps so domains as well I am totally very prepared um and 24 hours ago vitalik decided to kind of drop a bomb real quick and make a blog post about all sorts of cool stuff happening in the ethereum ecosystem and kind of where the future is heading um so this is vitalik's blog and this is specifically the blog post that I'm
talking about the three transitions uh for ethereum so obviously privacy L2 scaling and smart contract wallets are very important topics that we can cover but further down in this post you'll find a whole bunch of stuff about ens and about cross-chain interoperability and literally him basically doing my talk for me which is kind of wild as well um according to vitalik um fortunately the ens team has stopped uh has stepped up and ens on L2 is actually happening erc3668 what my talk is about um otherwise known as the ccip standard ccip being for cross chain interoperability now together with ensip 10 this wild card resolution it provides a way for Enos up domains on any L2 and
other systems to be automatically verifiable and supported so vitalik made a lovely little graphic that explains it but I think I might be able to do it one better so let's give it a shot ccip the cross chain interoperability interoperability protocol just as difficult to pronounce as easy it is to implement um is a lovely little way to work on Cross chain interoperability essentially ccip eip3668 as you've heard me say 12 times now is simply a standard that works for everyone not just for ens it might have been written by some of the greatest Minds at the ens team who have built all sorts of cool stuff together but this is not an ens specific standard this is a standard for everyone
it's an open standard and it is obviously super freaking cool as you can tell these slides were very last minute so this is my second favorite um or my most favorite ethereum Improvement proposal other than the ones I have offered and it essentially describes the entire EIP spec and all of the other fun stuff but there's two ways we can go about this one you can go and read this yourself and spend a couple hours trying to figure it out too you can give it to chat GPT and have it summarize it or three you can listen to me cover it really quickly the entire spec basically summarizes this Fallout um the I respect basically summarizes this a custom error code with a couple parameters that your smart contract can throw
just so I've prefixed this this error code is supported in almost every ethereum Library out there so if you've already built a Dap if you have adapt that's out there that already works or anything of the sorts ccip will work with zero extra added effort once your smart contract throws this off-chain lookup error with the parameters I'm about to explain it'll reach out to the other chain or to a Gateway and do all sorts of fun logic so the off chain lookup function it has for starters Ascender the sender is a string super simple basically the person who executed this this could be a proxy from a contract this could be a contract this could be the user and he away wallet any of the sorts next a list of URLs these URLs go to gateways essentially because
we are unable to provide a layer of trust between reading from L1 to L2 as ens's source of Truth is on L1 at the moment we need gateways so this is a a many of One Trust relationship you can provide as many URLs as you want here and the client Library will hit each of these URLs until it finds a valid claim that it can then verify with this contract again so you write a contract on ethereum mainnet it throws the off-chain lookup error and it has a second function called verify and it will verify the signature that the Gateway returned this way you'll be able to ensure that the Gateway isn't lying to you or doing anything of the sorts and simply just forwarding the messages from your trusted contract on another
chain so it will reach out the Gateway will then reach out to the other chain and the other chain will then return all of the information as well as little signature for the payload and verification that the Gateway can then forward and then all of the information is great and good um sweet next we have call data in case you want to pass any of the specific information over which specific callback function you'd like it to call so this is the ID of the function that the smart contract or that the library in this case will call on the smart contract to re-verify the information as well as extra data in case you'd like to send something else so vitalik kind of put it this way again the lovely little schematic basically
the user interacts with a contract the contract Returns the off-chain data struct with call data URLs in the Callback function the user's client library then reaches out to the Gateway does all the fun information that reaches out to the L2 gets all the stuff comes back and does all sorts of cool things so what this means in ens context for example is that if you own vitalik.eath or in my case loop.eth I could give control to a Smart contract of my name smart contract I've written the smart contract upon resolution will um Reach Out throw the off chain lookup error reach out to uh the Gateway reaches out to an L2 and then on an L2 I can do all sorts of magic that I can do with smart contracts already issue
subdomains to people who have an nft sell them do any kinds of other kinds of cool stuff um so and then all the way it goes back and it does all the fun logic again sweet we love this don't worry we're almost at the end of the talk you can ask questions um this is probably my time so I'm luke.ief you can find me on loop.contact as well as on through the ens app and apparently my Apple watch wants to join in on swag.ns.domains let's talk any and all questions you have that was my 10 minutes it went really fast but let's go okay thank you Luke we have time for one very fast question okay
so is is this a solution limited to sub domains or it's possible to resolve um is this the the first domain on L2 layer so um currently this is specifically for subdomains of a name um however because this is an open standard and because it can be used for anything of the sorts and ens supports not just the TLD but also any dns-enabled TLD we're already seeing other tlds such as for example the official I can approve.rtld who have actually reached out to us and said hey we'd love to do some blockchain stuff can we deploy smart contracts and take control of our namespace and we said of course you can um and among with a ton of other tlds
dot art specifically is for example they have a contract on mainnet that conditionally throws the off-chain lookup error and then loads information from their regular web 2 Source where they source of Truth where they store all of the domains and all the registration so it's the second the first layer of domains so luke.art stored there as well as if it's an emoji name it'll read it off of the chain directly thank you so much sweet [Music] foreign