New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Cross-Chain Communication: Arbitrum's Role in a Multi-Blockchain World l KBW2024

Korea Blockchain WeekTue, Oct 21, 2025, 12:00 AM

Transcript

careful hey everybody I'm Ed from offchain Labs uh and I want to talk to you about arbitrum stylus and I'd like you to remember two things when I'm done first that arbitrum Stylus is a big step forward for web 3 development and second that arbitrum stylus went live on the arbitrum one main net today about 13 hours ago okay now if until today if you're a web 3 developer you have to make a bunch of decisions but one of the key decisions is to use the evm ethereum virtual machine or not evm has a lot of advantages I'll talk about some of them one of those advantages is that it has the largest base of users and liquidity and a large developer base in the web 3 world but by the standards of the whole world this is a relatively small developer community and a relative small uh software environment for every evm developer on the planet there are about 100 rust developers and about 400 cc++ developers so if we want to expand to our technology to the next billion users we have to start by bringing on board the next million developers um and the evm ecosystem is far from that so the evm of course has a lot of Virtues as I said it's meant to be small it's meant to be easy to price meaning that it's relatively easy and safe to do things like gas tracking and Resource Management in evm uh and that's no small feat it's one of the reasons why evm has been very successful the code written by devs translates into evm bite code and it runs that way but most developers of course um although evm in principle could be used with different programming language most developers use SOL some use Viper but evm has not been hooked up to uh to traditional programming languages um now uh one of the issues that we've seen with solidity and with evm languages generally is that they don't do as much as many of us would like to try to make uh to prevent bugs in in our programs in the early days especially of this ecosystem when the tooling was relatively young we'd see def bugs almost every day and there's no end of headlines I could have put on the right hand side of this slide uh that was a very common thing the tooling has improved but it still has not gotten to the point in terms of security Tooling in terms of development environments for Reliable and high Assurance code has not gotten to the point that uh some other systems outside of the web 3 world have now solidity was designed to be easy easy to write easy to price and so on but but easy is um has many dimensions and in other respects the evm was not as strong as some of the alternatives for example the evm is relatively slow as virtual machines go um and um and as I said before it has fewer guard rails it doesn't have the the strong type checking and the strong sort of compiler tools and testing and fuzz testing and so on of the same strength that you see with other kinds of programming systems that are more common outside the web 3 world now of course uh other projects in web 3 have tried to avoid the evm entirely to go with other kinds of systems with some success um but ethereum already has this really vibrant ecosystem it already has a large developer base users uh and so on and the evm brings things to the table such as reliable and safe gas pricing and resource management um that other that don't come built in with other languages and those Network effects uh and the uh and the web 3 specificity of evm and solidity are not going to go away so again to evm or not to evm if you're launching an app if you're launching an app chain uh until today you had to choose but why not do both why not do them both on the same chain why not make them interoperate perfectly if it's time to give ethereum developers superpowers so you can use evm you can use non- evm you can use it on the same chain everything fits together and interoperates and you get the benefit of standard tools without giving up the evm That's What arbitrum stylist does it's the Next Generation programming environment for arbitrum chains available only on arbitrum because of the design the research and the engineering from our team it lets you write smart contracts in Rust cc++ as well as some uh smaller languages like Zig and it's fully evm interoperable to give you an example of what that looks like as a programmer over here on the right uh I have a a little piece of rust code um and this computes the catak hash of a by string um and it does it by calling one of the standard libraries in uh in Rust because of course uh existing crates and libraries are supported um now all you have to do to make this thing get compiled into run on arbitrum is put that decorator the hash arbitrum on the top then you use the standard rust compiler and thanks to the magic of the arbitrum SDK what you will get is a smart contract that you can deploy and run directly on an arbitrum chain and again this works today on arbitrum one now one of the big advantages of this is that it offers a lot more performance so just to give one example in the time and with the gas that it takes uh evm to do seven simple ad instructions you can compute one round of a simple hash function like Zip has uh with stylus gas is no longer uh uh measured in units of single gas it's measured in millas that's part of the power is you have the ability to do so much more um with with the same uh on the same chain now one of the reasons this is possible is that the arbitrum technology proves computation over wum web assembly arbitrum State already gets settled to ethereum using fraud proofs arbitrum has had fraud proofs since day one uh since it first deployed in 2021 and because those fraud proofs are present and because uh arbitrum proves fraud over wum already uh to implement stylus what our team had to do is simply extend that capability so that the fraud proofs could be used to prove correct uh execution um of User submitted web assembly wasum code in addition to the wasm code of the system itself and wasum of course is designed as a way to take code from different sources and run it together safely um it was designed and built for the purpose of doing that in a web browser but the security requirements are very similar in our case um just to give an example of sort of the power of wasum web assembly as a as a format and as as a design uh here's a quote from a founder of Docker saying if wasm had existed back when we built Docker uh we wouldn't have had to build Docker because it would have solved the problem of how to bring together disperate code run it together safely and run it in an environment that doesn't fully trust it um and with performance uh that's that's what wasm does and stylus brings that onto uh an evm blockchain so welcome to the multiv VM that means one chain multiple programming languages multiple virtual machines and critically this is fully composable um and that means that if you want to call rust a a rust contract from an evm contract or an evm contract from a rust contract or a zig contract from a c contract all of that will just work it works right out of the box this is not a new L2 it's not a new chain it's an upgrade to the arbitr technology so it's been deployed as an upgrade to arbitrum 1 and arbitrum Nova and arbitrum orbit chains the app chain system ecosystem of arbitrum all of those chains as well have this upgrade available how is this Built Well the engineering if you go inside the engineering what uh what the team has done is taken an implementation of the ethereum virtual machine the evm implementation that has been used on arbitrum all along and take a state-of-the-art wasm virtual machine from the wmer package it's an open- Source package which has um uh contributions from a a bunch of the biggest web 2 uh companies and is used in browsers take those two VMS and integrate them together so that each piece of code each contract can be dispatched for execution to its VM whether that's evm or wasum but underneath there's a single state there's a single update function State transition function for the chain and everything lives in one database that's how you get the compatibility there's really nothing quite like this uh anywhere in the web 3 world that we know of where you're able to run natively on different evm or W or non-m um virtual machines in a single unified environment with full composability so uh this un this unlocks a whole bunch of things one of the things that it unlocks is much faster performance so why it why do WM programs run faster than evbm programs it's basically for two reasons one is or three reasons one is that the evm as a uh as a format for uh for expressing programs is less efficient than wum wum was designed by very large team very carefully uh and went through a lot of performance profiling during its design second because the Wasa virtual machines have so many more users there's so much more engineering effort put into making them secure and bullet proof and fast um and that's part of where the large developer base of these wasm systems comes into play and then third if you're using stylists if you're writing let's say a rust program you get to use the rust compiler which is a more mature more performant compiler than the than the web 3 comp compers you might be used to in evm land so at every layer of that stack the wasm path is faster and that and those factors multiply compound together to give a big performance improvement from using stylus so to give one example for that katak hashing example before if you were to compare the wasm code I showed you before running on the same chain with the same functionality implemented in solidity the wasm code is 73 reacts faster and that means you can do 73 times as much work or if you do the work once you'll pay 173rd as much gas now of course that is I uh I chose that example because it shows off the benefit of of of stylus your your mileage will vary based on your workload but the point is that computation pure computation is much faster on stylus at least in order of magnitude if you're doing a compute intens really compute intensive task also because of the way that uh that the wasm VM manages its its its memory uh the memory that you use inside a transaction is also much cheaper 100 to 500x cheaper in stylus and that means you can do Ram intensive computations as well much more cheaply and it's not just that these things are cheaper some of the things that you would like to do are not possible today on the evm because they go beyond the gas limit or because you can do them but the gas is just too expensive so this unlocks a whole set of new use cases one great example here is Advanced cryptography applications that take advantage of things like secure multi-party computation uh a good example here is Renegade Finance which may well be the first dap to be uh developed and deployed uh completely on stylus uh this is a uh this is a defi application which takes advantage of MPC type of uh multi multiparty computation type of functionality in order to provide better privacy for users and their trading activity that's only possible because of stylus this application was not able to deploy until stylus came along another good example is evaluation of modest size today modest size AI or machine learning models on chain uh that becomes possible with the Ram uh with the ram you have available and with the compute you have available uh the this is really useful for things like prototyping doing prototyping research to prototype new L1 or L2 features you want to have a feature that might be implemented in a pre-compile you don't need to launch your own chain you don't need to modify the the core code of the chain you can deploy this as as a stylus uh contract and take advantage of the big speed Improvement that comes from running in a wasm VM anything with heavy computation you can also use Dev tools that you're comfortable with you're not using a weird domain specific language you're not using something that's kind of sort of like rust or C or C++ you're not using some modified compiler when you write a stylus program let's say in Rust you're using the standard rust compiler um and you get all of the benefits of doing that and that means that if you're doing things like writing and running tests you're fuzz testing you're doing static uh you're doing static property checking on your code uh all the tools that know how to work with rust code should work on your code and so you have the advantage of that huge set of tooling that exists in these uh uh for uh for rust or for cc++ whatever language you're using um so you can write the you can write this in a pure way and stylus makes available to you as a programmer a a straightforward system call like API that you can call to do the things that are specific to evm like um uh like checking account balances or making a payment or uh or calling some other contract most importantly here is evm compatibility stylus programs are fully evm interoperable as I said before styl a stylus program a rust program can call evm evm can call rust the user doesn't have to change anything the user can use their existing wallet to interact with the contract without worrying about what language It Was Written in or how it was deployed so um that means that you get full interoperation you can even if you use the standard uh uh proxy upgrade pattern to make your your app upgradeable you can even upgrade uh one part of your app from evm to rust to stylus uh without breaking anything there's support for all of this such as migration in the stylus SDK so uh here's an example this here's a solidity contract which is calling some other contract um you just write this in a straightforward way you don't need to worry about uh whether that's a wasm contract whether that's an evm contract it just works uh Stylus is one of those my experience in programming with Stylus is it's one of those tools where things just always seem to work as you hope that's a very rare thing so this is the multi-m evm compatibility is the floor in web 3 development not the cealing and it launched on arbitrum one today now I have a couple minutes left and I want to dig down a little bit more into kind of the nuts and bolts of how this works and what the uh programming experience is like first uh there are sdks available with first class support for rust and C so you see here over um over on the right for example uh you see a uh a piece of code that you write this is a rust program um but you can write this um Sol you can write this data structure definition in solidity format and declare it like this wrap it in a macro and what happens here is that this generates automatically a rust data structure that you can access natively and naturally in Rust but it's put into the storage of the uh of the blockchain in the format that solidity would use uh and so you get the ability to uh to take this same data and and access it in the same way and in the same formats and this is really useful for a bunch of reasons it means that uh for example that a lot of tooling will work more naturally if you do this uh standard tooling for say inspecting the state of um of of of contract storage will work out of the box if you use tricks like this the SDK is very nice it provides a lot of these same functionalities um the uh uh we have there's a bunch of examples that come with stylus U for example um there's an erc20 token example available which you can use or which you can use as as a as a sort of example of how to do it uh there is direct support in the SDK for implementing the etherium ABI that is the data format that is used when calling a contract uh all of that formatting and un formatting and deform matting of data that is needed to call contracts back and forth that's also happened uh also works automatically it's autogenerated by the SDK so you really can in Rust call a rust function which will automat Ally thanks to the help from the SDK cause a cross contract call to some solidity Co code what about other programming languages you want to add a new programming language uh support to uh stylus that's pretty easy one of our developers one day decided that he wanted to add support for zigg his favorite emerging systems programming language and uh it took him a part of a day and he ended up adding 16 lines of code to the uh uh uh to the repo to do this so um adding new programming languages bringing them in is really easy almost any language which doesn't have a large runtime and which compi can compile to wasum which really in practice means can compile at all um you can uh uh you can use with stylus you need something lowlevel you don't want to go with all the formatting and un formatting because you want to do something tricky like say compressing your call data um that's available too uh there's a very very simple bites in bites out interface you can use if you want if you don't want the automatic compatibility stuff because you don't want to pay for that that's also available U we've had a lot of feedback on this um as solidity is as stylus has been on testet there were over a thousand contracts deployed on the main test net and of course it's now live on Main net so people not on our team people on our team have had experiences have built interesting and exciting things but of course the sky the limit because unlocks developer productivity in a way that hasn't been possible on web 3 before if you want to know more here's the URL it's live now you can build you can deploy on mainnet on testet if you have an if you have an arbitrum app chain you can deploy stylus there today so I'd urge you all invite you all to use stylus uh do more with stylus thank you [Applause]

Automatic transcript — names and jargon may be misspelled.