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

Loading player…

"Scaling Ethereum in 2020 and Beyond" - Vitalik Buterin

ETHGlobalFri, Oct 9, 2020, 12:00 AM

Speaker

Ethereum Foundation · 24 talks

Chief Scientist at the Ethereum Foundation and creator of the Ethereum protocol, Vitalik Buterin describes his short and medium term vision for Ethereum scaling. Vitalik describes ultra-high scaling with sharding + rollups, how sharding is *not cancelled*, and how projects should focus on getting on a rollup in order to access 100x scaling even without Eth2.

Transcript

Okay, well, we'll just take it away then. Um, want to introduce Vitalik who needs no introduction. Um, his talk is about scaling Ethereum in 2020 and beyond. And I'll just let you take it from here, V. Thanks very much.

Excellent. Great. Um, just checking you can hear me, you can see the slides fine? Everything's great. Okay, great.

Um, so hello everyone. Um, good to be speaking to one uh wonderful Ethereum people again. I'm definitely sad that I can't see you in person. Um, hopefully we can fix that up um next year in August in Bogota as apparently got announced uh oh announced overnight a few hours ago. Uh, so yay.

Uh, but today I'm going to be uh speaking about some Ethereum scaling. Uh, so I'm basically taking a look at where we are in terms of uh the our ability to scale, where are we are in terms of the need to scale, and just what the realistic paths are that we can take to get there. Right? Uh, so major piece of good news uh is that rollups are here, right? Uh, so um, I'm sure many of you have tried uh doing uh Gitcoin grants uh using ZK sync as a payment option, and it actually works like surprisingly conveniently, right?

Like when you go through the Gitcoin kind of checkout thing to do what to do a quadratic funding donations, uh you just select checkout with ZK sync, and you have a couple of sign-ins. And if you've never used ZK sync before, you need to send one transaction uh basically just to uh kind of top up your uh ZK sync account as part of the process, but if you've already done that, then you don't need to send any transactions, you just sign these three um cryptographically signed messages. So, basically MetaMask signs some data that's on the transaction, and then that gets uh included as part of the uh ZK roll-up. Uh so, uh the transaction fees are really low. It's like basic for like the 10 cents over here.

It's somewhere between 100 and 200 bytes on chain. It costs much less than even a single transaction. You know, really nice and really fast. Um Loopring, a ZK roll-up based uh decentralized exchange, it's existed for a while. It also has a built-in payment system.

So, if you don't care about um you know, trading one random crypto token for some other random crypto token, you can just use Loopring to pay people. And I've actually used Loopring to well, to receive money myself. I uh paid I paid for a lunch for a group of people, and one of them was uh kind enough to um unsolicitedly pay uh pay me back for his share um just uh directly inside Loopring, which was uh really cool. And the uh the transaction fees were pretty negligible, as expected. Um Diversify, StarkWare-based uh based uh Stark-based decentralized exchange using um STARKs.

Uh so, this is uh trusted setup-free, quantum-proof, and all of those things, or at least potentially quantum uh quantum-proof. I don't think they used the internal signature algorithm as quantum-proof yet. Um But, this has also uh been seeing a lot uh quite a bit of usage. Um OMG, uh so, who here has heard of Plasma? Um who here has kind of um quietly forgotten about Plasma?

Well, Plasma's back from the grave, and it's going strong. Uh so, uh if you go to omg.network, they have a wallet over here, and it's not a roll-up, it's a Plasma, but it's still a scaling solution, you know, it's still cryptoeconomically secure and all that, and you can use it. And finally, um Optimism, the uh optimistic roll-up project, uh launched a a testnet and Synthetix is uh running a test on it, so you can go and use it. Uh so, rollups are here, um, but they're not completely here, right?

Uh so, most activity that's being done on Ethereum is still being done on the Ethereum layer one. Um, EVM and certain these um three or rollups are just payments and DEXs. ZK Sync is literally just payments, um, but um, Optimism is supporting full EVM uh smart contract, so you can just uh kind of click a button and redeploy your contracts to it. And uh it is a testnet now, but they have plans to uh kind of move over to being a mainnet soon. Uh StarkWare, I should mention, they have this project called Cairo, and they've been starting to compile Solidity contracts into a Stark, which is just really um amazing.

Uh so, a lot of progress even on that front. Phase zero is almost here. Uh so, Eth 2, yay. The first phase of Eth 2 is very close to being here. The Medalla testnet has been running for a while.

Um and uh we've had Spadina as a kind of a live test of the launch process. We're going to have uh forget the name of it, Zinken, um as another um live test of the launch uh next week. Uh so, uh clients are doing really well. A lot of efficiencies coming in. A lot of uh a lot of uh bugs are getting are getting fixed, and the bugs getting smaller and smaller each time.

Uh so, phase zero is almost here. Um so, a lot of progress happening, right? And at the same time, you know, there's a big need for this stuff, right? And the reason why there's a big need is because, well, demand for using Ethereum is really high. Um a lot of people want use the Ethereum blockchain.

And there's just not enough space in the Ethereum blockchain for everyone. So, how is that getting resolved? Well, right now it's getting resolved by gas prices going really high, right? And uh before you know, at the start of the year gas prices of like maybe two to five gwei were pretty common, but today I if you go to gasnow.org right now, I think and I'm not going to check now, but last time I checked it yesterday it was somewhere between 50 and 100 and a couple of weeks ago it it got all the way up to about 700 or so, right?

So, um, you know, gas fees are crazy. Um, I yeah, tried out uh making a trade on the Augur prediction market. Um, um, a couple of days ago and the transaction fees were uh to make that one trade were a total of uh $17.76. Um, so, you know, it would be nice if um trade sending transactions was cheaper.

The only way sending transactions can be cheaper is if we have more scalability. Um, so, how do we get more scalability, right? So, this is a kind of the path over the next one to two years that I realistically see. Um, basically right now we have the Ethereum layer one um and it has somewhere between like 15 and 45 transactions per second. Uh, so, the 15 number is um, if you just look at current usage.

The 45 number is if everyone stopped caring about smart contracts and just sends, you know, 21,000 gwei and a simple transactions. 1,000 to 4,000 TPS is if you um go to rollups on top of ETH 1, right? So, if everyone moves onto rollups, whether it's ZK rollups or optimistic rollups, um, then you get up to about 1,000 to 4,000 transactions per second. Each transaction only requires somewhere between like 300 to 1,000 on-chain gas. Uh so, the 4,000 number is for either simple sends or simple trades or anything that can be fit into about 15 bytes, which is a lot of things.

And the 1,000 number is if you go up to about 64 bytes, which you which is where you need to go to um to do a ZK ZK roll-up. Uh so, you can even get 1,000 TPS with privacy potentially if you do a ZK ZK roll-up. And then this is So, this is using technology that's basically either out there or almost ready today. And then this number, crazy number, 100,000 TPS for relatively simple transactions and 25,000 TPS for a privacy-preserving transactions. Um and this is uh roll-ups on top of ETH 2, right?

So, when you have ETH 2 and then we have phase one that adds sharding of data on top of ETH 2, then roll-ups uh on top of that have a much larger amount of data to work with uh some something like 2 megabytes per second, and that's at the beginning. I expect it'll go up even beyond the 2 megabytes per second over time. And so, on top of that data, you'll be able to do a huge amount of transactions and basically just combine the scalability mechanism of sharding with the scalability mechanism of roll-ups. And you know, you basically have like enough capacity on Ethereum to get pretty close to you know, being able to run to run the entirety of WeChat on the thing if you really wanted to or something like that. Uh so, the question is, right?

Like what can we do to adapt to this reality? I think my first major point is that this is a reality, right? I think if we want to have an acceptable user experience for users, like there isn't really a choice per se, right? Like roll-ups are basically the only technology that's there ready to scale Ethereum applications from the their current level of scalability to something 100 times greater without compromising on security, right? Like you know, you can have your side chains with your two-way bridges, but for any of those systems, like obviously you have to trust whatever committee actually runs the side chain.

With rollups, you don't have that problem. So, rollups are basically the only path that as far as I can tell is just there to allow for this scalability improvement that we really really need and we really need today. And so, the only question basically is like what can we do to adapt to it? And the biggest part of the answer basically is that we need some kind of comprehensive ecosystem level push to improve user experience. And in user experience, I'm including security, right?

It's It's never user experience versus security. It's user experience of security. So, improving user experience of security for layer two protocols. There's a few pieces to that puzzle. So, first of all, wallets.

So, you know, if you go back to this ZK sync inside of Gitcoin, like it's it's not the best, right? And the reason it's not the best is because the ZK sync thing is being kind of instantiated inside of the Gitcoin webpage. And so, if Gitcoin was evil, then Gitcoin could just make a fake ZK sync sign up page and like basically ask you to sign into ZK sync and you would sign in and they would be able to just steal all the assets that you have inside of ZK sync. Um which is not very nice. The correct approach to solve this problem is that the support for optimistic rollup and ZK rollup and plasma needs to be pushed up to the wall wallet level, right?

So, MetaMask needs to include native support for ZK rollups, optimistic rollups, and plasmas. Um Status needs to do the same thing, and I am token needs to do the same thing. Like, you know, the wallets need to all do the same thing. Um and I know this requires quite a bit of work. I think we can mitigate the amount of work that this requires if the uh lay layer two providers write some some kind of plugin and standardize on some kind of plugin solution.

Um but um you know, these are discussions that uh need to be had. Um ENS is another major one. Uh so, ENS is amazing, right? Um lots of us use ENS. Um I hear and I even used ENS to pay someone um a few weeks ago.

Uh so, this is So, we need ENS to work not just on layer one, but also on layer two and and uh smart contract languages. Uh so, zooming in on some of these, right? Wallets, we have already talked about this. Um ENS, um you need to be able to register, administer, transfer, and renew domains entirely inside of layer twos, right? We're talking about an ecosystem where uh users are in generally going to be living inside of layer twos, right?

If we talk about using Ethereum to go up to uh I don't know, 4,000 TPS on a layer two is, then what that means is that average users are not even going to have a quote account on layer one, right? Average users are just going to be living on a layer two. And so, ENS name resolution needs to work even for names that are registered, transferred, renewed, administered, everything happening to them entirely inside of rollups. And I have a proposal for this. Um there's the link if you And if you don't want to manually copy the link, you have this this fun little QR code thing that you can scan.

Um, I don't know, hopefully people are familiar with QR codes by now. Um, there's uh it basically it's a kind of general purpose proposal that um allows um resolution of ENS names and more generally static calls inside of arbitrary layer twos. So, this would allow both ENS and a lot of other applications to uh kind of live inside different uh layer twos and not even have to standardize on a single one uh pretty seamlessly. And smart contract languages, right? So, we have a kind of three different tiers of languages in the Ethereum ecosystem.

The first tier is low-level languages. So, the Ethereum L1 has the Ethereum Virtual Machine, EVM. Um, Optimism's optimistic roll up has the OVM, which is uh basically a subset of the EVM that restricts uh operations that break out of their sandbox. Um, StarkWare's Cairo uh they have their own, you know, arithmetic intermediate representation. Um, so and like fancy blah blah blah math finite field Stark.

Um, you know, if you want to learn more, go go read the blog posts. Um, and so we have a lot of these different compilation targets. And at the same time, we also have high-level languages, right? We have Solidity, we have Viper, we have um Serpent, we have Mutan, we have LLL, um we have Bamboo. Like um and there's this big long tail of other ones that people haven't heard of.

Uh so, we have the a lot of high-level languages, we have a lot of low-level languages, and it'd be really nice if we could have a common intermediate compilation target that's easy to compile to and that's easy to compile from. And so, Yul is um is is a thing that Solidity They can pile the real and it's one option and maybe there's other options, right? So this is another thing that probably needs to be kind of talked about and and uh standardized through the ecosystem. Um economic benefits. So this is a uh interesting and fun uh kind of corollary of a uh layer two centered roadmap, right?

So so far I've been talking about needing to make this coordinated ecosystem push for people to move to um layer twos um basically for technical reasons, right? Right now we have uh 15 to 45 transactions per second. People wants to do a hell of a lot more than 15 to 45 transactions per second. The technology that lets people do that with Ethereum level security guarantees is rollups and so you know, we need to move people into rollups um and in order for that to happen and all all of the infrastructure that currently exists to make life easier for people on layer one needs to also work for people who live inside of the various different uh layer twos that are starting to come into existence and are going to keep coming into existence over the next year or so. But there's also this interesting a kind of economic benefit, right?

So Ethereum in general has a bit a public goods funding problem and it and arguably has a problem uh kind of attracting kind of creative researchers and uh and developers to kind of help with the scaling process and there definitely is a strong team and Justin is great and Danny is great and Dankrad is is a great and Chialin is great and a whole list of people that I'm going to offend by not mentioning their name are all great uh but you know, there's I there's also this very large set of researchers and developers who I think first of all just feel more comfortable and kind of want to be a kind of have the freedom to build their own islands and not just be a small piece in a in a big ecosystem and have to debate with everyone else over every protocol change. And also um from a funding point of view, like core development is currently funded just by the Ethereum Foundation. The Ethereum Foundation has a kind of one-time limited pool of funding, which is totally fine for the next few years or so, but you know, what's the long long-term sustainable solution? And layer-two projects have much more leeway than Ethereum in both of these dimensions, right? If you create a layer-two, then you know, you as a researcher, developer, founder have the ability to kind of build your own island, so to speak, and experiment with a lot of different options, and a kind of come up um come up with your own path of various different improvements.

Uh and at the same time, layer-two projects have the ability to monetize, right? So, um a layer-two projects have the ability to um to fund themselves by making MEV auctions, so for example, this is something I've talked about. There's a lot of They can charge transaction fees for state rents, and there's a lot of things that they can do. And layer-two projects um let's it could either charge for these things directly, and they could you know, potentially do the token thing, and create one of these kind of decentralized community tokens um that gets backed by future transaction fees collected by the system. There's a lot of things that they can do.

And so, basically, if the Ethereum roadmap has a kind of big space in it for layer-two projects, then the Ethereum ecosystem and a lot of these other projects can kind of align instead of competing, right? It's not, you know, are you part of Ethereum or do you build your own thing? It's no, you can be part of Ethereum and uh build your own thing. And so, as a layer two, you have a huge degree of uh kind of economic and technical autonomy and then have lots of opportunity to do things. So, this is the short term, right?

And I think the short term is at least my impression is that we don't really have much choice except to do this. Um basically, just because you know, we need scaling and rollups are the technology that's here. And we have done our kind of due diligence and we've done this huge exploration of the entire scaling space. You know, I've looked at plasmas, I've looked at channels. And plasmas are going to continue to be used and plasmas are great.

And and channels are going to be continue to be used in uh they are particular contexts. Some channels could even be used for things like moving between different rollups and plasmas quickly. Um you know, and but still out of the kind of design space that we've explored, rollups make up this kind of really big part of it, especially for applications more complicated than payments. And even for payments, like kind of layer twos of some kind are the thing that we need to be making this uh coordinated effort to start moving toward. But this is the long term, right?

And this is the kind of more controversial part of my proposal. Um so, first of all, Eth 2 phase one, right? So, not controversial yet. Controversial was next slide. Um use Eth 2 shard data for rollups, right?

So, if instead of the rollups uh pushing their data onto the um Eth 1 chain, uh rollups can push their data um so, the uh 10 to 16 to 50, depending on your application, bytes of data per transaction that have to go up go on chain in in a roll up because that's how roll ups work. So if that data goes on the ETH 2 shards and the ETH 2 ETH 2 shards have 2 megabytes per second all collectively, then you can get up to you know, 100K transactions or 25 for more much more complicated ones. But we need a bridge so that the ETH 1 chain can verify which ETH 2 block roots and therefore which ETH 2 blocks are legitimate. And then after phase 1 and phase 1.5, ETH 2 shard data can be proven to the ETH 1 shard within one slot because ETH 1 shard will be part of ETH 2.

Now, this is the the challenging part, right? So, I claim that we have a bit of an awkward inconsistency in the ETH 2 and scaling roadmap. Here is the awkward inconsistency, right? That that I think hasn't really properly been addressed yet. Today, we have no layer 2 Well, we have some use of layer 2, right?

But like Okay, let's say we're here in the charts 6 months ago we were here. 6 months ago when you know, 2020 and and the world burning and and so forth had only just begun and we were still living a relatively um uh happy existence in in the great stagnation. Um the scalability of Ethereum was about 15 to 45 TPS because we had no layer 2 and we had no sharding. Um in Well, very soon, we're going to have a thousand to four thousand TPS because we have no sharding, but we do have roll ups. In one or two years, we're going to go up to 25 to 100,000 TPS because we are going to have sharding of data, right?

So, the shards are just going to be kind of data blog blobs, but for a roll up data blobs are all you need plus roll ups. So, here no sharding, no rollups. Here sharding no sharding, yes rollups. Here yes sharding, yes rollup. And then what comes after this?

Well, Eth 2 phase 2, right? Eth 2 phase 2 basically says, well, we're going to allow shards to have not just data, but also execution. And this was always marketed as, you know, this is the place where applications can come over and actually properly properly live inside of Eth 2. But here's the problem. This phase offers uh 25,000 to 100,000 TPS because it has sharding and rollup, so it has scalability squared.

But over here, if we're going to say, well, we want applications to move to Eth 2's layer 1, well, being on Eth 2 layer 1 means you only have one level of scalability, right? You're you're have sharding, but you don't have the rollup. And so, the question is, well, if the ecosystem is already accustomed to rollups, and because the ecosystem has to be accustomed to rollups because they will have spent 1 to 2 years over here living in a basically rollup centric ecosystem, then why would people even want to migrate back to the main chain when the main chain has inferior scalability, and when they're already accustomed to rollups having juicy features like, for example, I don't know, sequencer preconfirmations and uh you know, sequencers uh being able to um do crazy transaction verification, so you have full account abstraction without all without the complexity of account abstraction, the EIP, and all of these other goodies. Like, why would applications want to move back to the main chain? And this is the challenge, right?

So, like, basically, the question is, like, what if the scaling roadmap is really done here at the 25,000 to 100,000 TPS step, and we shouldn't even be uh kind of adding more complexity to Ethereum by allowing more computation on every single shard. Now, there's actually risks to allowing computation on every shard, right? And the risk basically is that if you want to what kind of fully verify correctness of a sharded blockchain, then if you want to verify data availability, you it's data availability verification, if you do it with either polynomial commitments or zero knowledge proofs, is actually not that bad. The reason is that it does not have any network synchrony assumptions, right? It does not rely on fraud proofs.

It's just a matter of like send a bunch of requests and wait until all those requests get answered. So, no matter how slow the network is, no matter what happens to the network, you you know, you're fine. But, if you want to verify computation in a scalable way and in a robust way and so on. For example, the network, you know, like half the nodes temporarily going offline and the attacker kind of taking over a large portion of the of the remainder and then and then have being able to take over a few committees. Like, if you want to verify scalable execution without hitting those kinds of issues, then you need fraud proofs.

And the problem with fraud proofs is they depend on this hard latency assumption. And so, fraud um if someone manages to kind of sneak past an invalid block because the network is doing really terribly for 12 minutes, then you would pretty much have to roll back the entire ETH 2 chain. So, I would claim that potentially leaving scalable execution up entirely to layer two could even kind of improve the stability of the Ethereum 2 blockchain and make it a more a kind of limited and retrenched tool that does one thing and does one thing well. Now, there is an opportunity for a compromise here, right? So, and the compromise basically is, well, I talked about having just one execution shard.

And the current Well, the the status quo kind of proposal is to have kind of 64 execution shards. Like every shard is an execution shard. Well, the Copper Bytes proposal is, what if we go in the middle? What do we have like four execution shards or eight execution shards? And this would allow somewhat more base layer applications to exist if people really want them to.

It would allow somewhat more room for error if things inside of a particular roll-up screw up and people have to use the base chain to migrate to another one. It would allow It would really relieve pressure on a lot of those things. But if there's only four to eight execution shards, then in extreme circumstances, it's still within the power of a lot of individual users running nodes to personally verify all all of the computation that's happening in the network. Right, whereas if there were 64 execution shards, then personally verifying all the computation would be impossible. So, that's the kind of area of possible compromise approach.

And so, challenges, right? So, there's a lot of challenges that are, I think, inevitable in the Eth 2 migration. And as I mentioned in the migration to roll-ups, there's a lot of challenges that are pretty inevitable as well. But, um probably the biggest one is the user experience. Right, basically making sure users only do secure things by default and don't accidentally do insecure things.

So, one example of an insecure thing would be as if every application required you to sign in for ZK sync inside of that application, and then users ended up by kind of giving away their ZK sync secrets, and the application stole all their money, that would be really bad, right? So, we want secure things to happen by default, and so we want um you know, MetaMask or Status or you know, like I am token or these wallets to try to support layer twos directly instead of having again of less secure application interfaces for them. Um ecosystem coordination. Um And and that includes the wallet stuff, that includes making ENS work on layer two. It includes kind of high-level language uh things.

It in uh includes also having efficient infrastructure for jumping between different rollups, so we got a cross rollup exchange um is going to be a really important topic. Um so there's a lot of these uh challenges that do we got to have to be solved regardless. Um one interesting thing about uh kind of cross rollup exchange actually is that I think a lot of the challenges are very similar to the challenges around cross shard exchange. Um basically rollups and shards are both a kind of what I call synchronous domains. They're both these areas where you can have synchronous communication between objects within one of them, but you can't really have synchronous communication between objects that are in different rollups or in different shards.

And so the challenge of making a DEX between them is a basically very very similar regardless of uh whether they're rollups or or whether they're shards, which I think is interesting, right? It basically means that we don't even need to have all that much certainty of uh kind of which uh scaling path Ethereum is going to take in order for work on uh cross domain exchange to actually start. And so, cross domain exchange is something that people should actively start looking into, you know, go uh if you want to build some hackathon project at some point, then you know, make a DEX that works between uh say a ZK sync and uh the optimism test that for example or just try or even between loop ring and and ZK sync or between loop ring and the optimism test that or or diversify whichever one of these systems, right? Just see if you can spec it out, see if you can make that make that work because this is a enough category of thing that we're going to end up needing. So that's the So that's the presentation really and I know there's a lot of ideas in there.

It's ideas that I think we're all kind of familiar with. I mean independently, right? We're all familiar with ETH hopefully you know ETH 2 as a concept that we still the basics of it and then the fact that there exist these layer 2 protocols as a concept, but actually you kind of concretely thinking about well, what would a world where we migrate to layer 2s and then what would world where we migrate to layer 2s on top of ETH 2 and how will ETH 2 and layer 2s interact and all that. These things are in a fairly new one I think it's time that we do start to kind of much more seriously and proactively thinking about how we kind of push the ecosystem to actually be able to take advantage of the scalability. Great.

Thanks Vitalik. Thank you for the presentation. We do have some questions that have been submitted so as long as we have time for it we'll we'll shoot through some. All right, so first question layer 2 is always about to solve all of blockchains problems. Something that you know, we've been writing and talking about for years, but at least for now has you know failed to really materialize and there have been you know notable disappointments in the layer 2 space.

How confident are you that rollups are you know for real and what makes this time different? Mhm. So I think I talked about this a bit in one of my blog posts about a year ago. This was, um, I think the one that's uh, talks about base layers and functionality escape velocity. Um, and the argument that I made was basically that like rollups are a somewhat different class of uh, scaling solution than um, channels and uh, plasma, right?

And channels and plasma were kind of the two major families that like the Bitcoin and Ethereum ecosystems. In the Bitcoin ecosystem case, it's just channels that we've tried so far. And the difference is basically that like when you scale, you have like there's two things that you're scaling, right? You have to scale computation and you have to scale data availability. And my argument was that channels and plasma both like don't solve solve data availability.

They use a very application-specific tricks to try to get around the the the problem of not having data availability. Right? So, if you search up on my blog post of Vitalik.ca base layers functionality escape velocity, like I make this argument in a lot more detail there. Um, and so, what's in the case of rollups on the other hand, like the way rollups work is that they're a kind of more compromised layer two, right?

They say that instead of doing like everything off-chain for every transaction, we're not going to do the computation on-chain, but we are going to publish like about 10 16 50 bytes of data that go on-chain. And so, this is why the scalability of a yeah, rollup is limited. Um, but what this gives you is it gives you the ability to basically run arbitrary state machines inside of a rollup, right? And this is something the thing that we initially thought we'd be able to do and then eventually realized we can't do in plasma. Um, is basically run arbitrary state machines inside of them, but for rollups we already know how to do it.

Right? And once you can do an arbitrary state machine, then it's kind of like Turing completeness, that's proof that you can do basically anything. So, we do have a kind of tech mathematical and technical sort of proof that rollups are capable of doing the things that we're claiming they're capable of doing. Um and then in terms of just in practice, right? Like rollups are just so far along, you know, you can there's already like three decentralized exchanges running on on there's you know, you can use it to like check do like checkouts of your Gitcoin donations.

And then there's a synthetic synthetics is participating in a testnet of a rollup that can support the EVM. So, like it's basically the problems that we never even got close to solving in channel and plasma land. I think in rollup land we actually have managed to solve. Yes, I know the cracks of it. Kind of.

Okay. Um so um you know, one of the one of the virtues of the Ethereum ecosystem that exists now is you know, we have this kind of interoperable composable layer one, which means that everything gets to talk to everything else. Um can that vision still exist in a world of many rollups? Um or do you expect there to be a winner take all here where, you know, one or very few rollups end up having the most economic activity on them? Sorry, I didn't hear the last sentence.

Do you want me to say it again? Oh, uh you know, do you expect to be a world of many rollups or do you expect a winner take all dynamic? Mm. Um good question. I definitely expect to see a a couple of rollups end up dominating.

Um I do think that rollups have both network effects and anti-network effects. The main anti-network effect that a rollup has basically is that the more transactions per second happening inside of a single rollup, the more the harder it becomes to run a full node of that rollup. Um and so that basically kind of degrades its usability to some extent. So, that like that's one pressure to have multiple of them. And then the other pressure is that there's just different families of technology that are being explored, right?

You have the optimistic EVM family, then you have the uh zero-knowledge proof using elliptic curves family, then you have the zero-knowledge proof using STARKs family. And and so, I definitely expect that kind of all of these technical families and some kind of different internal internal features to get tested in the short and medium term. Um in the long term, it's possible that one of them will win. Um I don't know yet. And do you think I mean are there Right.

Are there fundamental problems that happen like if there is a winner-take-all dynamic, like what are the the downsides of of that happening? Right. I mean, I guess the main downside would be that if the winner that takes all ends up being a project that just tries starts being really extractive in really in in nasty ways, and you know, it has like severely centralized control by a small group of stakeholders, and those stakeholders try to basically maximize their benefit instead of you know, doing a good thing for the ecosystem. Uh I think if that happens, the Ethereum ecosystem's response may end up being to kind of quote nationalize it. Uh so, what I mean by that is basically just like take that code the code of that particular roll up and just like enshrine it into the main chain and make that be phase two um of uh of Ethereum scaling.

And so, when that happens, basically people that are like it will just be the default behavior of Ethereum users to be living inside of that roll up, but then that roll up will just be you know, using ETH as its base asset, managing that um that roll up will be part of uh part of managing the Ethereum protocol and so forth. Uh so like if you are a winner that takes all and uh and you're too mean like you know there's always the possibility that that'll end up happening. So your uh kind of position at the center of things will end up uh just being sort of removed overnight as a result. Okay. Uh another question that was submitted.

So uh I this the the assumption of this question is that you know when you've been talking so far about transactions happening on rollups, uh those are still you know public transactions um that you know anyone that's kind of watching the the rollup chain can see. Um what would like a a a private rollup uh world look like or you know how would like having private transactions in the rollups uh maybe impact the scalability properties that you talked about so far? Mhm. Right. Uh so this is where we get into the family of uh you know ZK ZK rollups.

Um the first ZK stands for knowledge for zero knowledge and the second ZK stands for um as I now claim a zipped by cryptography. Um so you know it has uh ZK for for both the privacy and the scalability. Um and basically um so this is a family that's already being explored. So the Aztec protocol is um working on a ZK ZK rollup. I believe Matter Labs might be I'm not sure I I forget the details and I'm sure they can angrily correct me on Twitter if they want to.

Um which would be great. The um basically um the idea would be that like if you imagine it would like something like Tornado Cash, then imagine you extend Tornado Cash so that it doesn't just do moving coins around, it also does I basically supports an internal smart contract language. And then you imagine that living inside of a rollup. Um then you get some pretty powerful privacy and scalability at the the time. I think the main challenge though is that there's inherent trade-offs between like privacy and composability and between privacy and like just having applications that everyone can use um and the trade-off is basically that if you want to have private smart contracts, then like for that to work, you need to have this a kind of encrypted state object where only some people have the key, right?

And the idea is that if you have the key, then you can make transactions that involve that state object, but if you have the key, then you can also see what's going on. Um and so like basically there's this kind of inherent trade-off with zero knowledge proofs where you know, you can like basically either you can see what's going on or you with a particular object or you can't you can't use it. And that's totally fine with coins, right? Because if the coins are yours, you can see them and you can use them. If they're not yours, you can't see them and you can't use them, which is why you know, Zcash and Tornado Cash and so forth work fine.

But with smart contracts, you get into multi-user objects and so this sort of stuff gets more difficult, right? So going from perfect privacy of um uh kind of simple payment transactions to perfect privacy of more complex things. And I think perfect privacy of more complex things is not possible, but kind of pushing the frontier up, I think, is something that's going to happen over time. And and yeah, and wonderful people like the Aztec team are working on it. Um okay, so changing topics a little bit.

Uh another question that was submitted. Um so in this vision, you know, which is one possible vision you described in this post, uh when would you expect that you know, the base layer of Ethereum to stabilize? Um is there a period where you know, um becomes stabilized and very few changes are made or or would you expect iterative improvements uh in perpetuity. In In my road and proposed the roadmap here, I expect the basic structure of the roadmap of the of Eth 2.0 basically stabilize potentially forever in phase of 1.

5. Um so like in the in the magician's bows, that's why I say phase 1.5 and done. Uh but there there would be continued to be a kind of iterative technical improvements, but this would be things like for example just adding more zero knowledge proofs in a few places to improve security, improving efficiency, changing the consensus from FFG to CBC, uh eventually migrating to post quantum. So kind of improvements that are not uh sort of economically substantive or that are not kind of substantive in terms of changing basic security properties.

And then like I definitely expect some degree of ongoing technical change to keep happening for a fair for a fairly long time, but no it would be a a low level. Like definitely much closer to just being maintenance mode. Okay. Um so the last question which which I just got for you is um what do you want to see hackers build at Eth Online over the next three weeks? If you if you maybe you've got something already in mind, maybe you have long-standing things that no one's built yet, but if you can name a couple of things, what would those be for the hackers who are watching looking for inspiration?

Mhm. I mean one option is to definitely just the things that I talked about. Uh so kind of readying the Ethereum ecosystem for layer twos. Uh so this could include like I mean the ideal of something would be like make a MetaMask fork that just supports, you know, Loopring and ZK Sync and Optimism, which would just be awesome if someone does it. Um Another example would be uh a decentralized exchange, whether it uses like channels or whatever other technology uh going between multiple roll ups, um, an ENS resolver for that works inside of all layers twos.

Um, other interesting things would be like layer twos offer the ability to do things that you can't as easily do today. Uh, one example of this is smart contract wallets, right? Like I've always been like in this big advocate of smart contract wallets and multi-sig and social recovery and all of these things. Um, but I've uh this stuff is still underrated, by the way. Like even a few weeks ago I just, um, the um, had a friend kind of come close to losing $200,000 just from like kind of misusing their own misplacing their wallet seed.

It was, uh, eventually, uh, I had to go digging quite a bit and uh, figure out that it was, uh, the, um, it like basically was, uh, the the BIP 32 derivation path was wrong or something like um, or something like this, but like it was a big scare for a while. And people I think people don't talk about this because like there's this mentality that like oh, if you admit to losing $200,000 because you lose your um, your seed then you're stupid. Um, and so, you know, nobody wants to admit it, but it's a it's so it's this serious problem nobody talks about, right? But basically, I I think if we want us to scale Ethereum to 5 billion people, you can't have this design where you have one private key and if your private key gets stolen, you lose your money and if your private key gets lost, you lose your money. Um, so, you know, you want to have multi-sig, you want to have like the self-cancelable transaction vaults, you want to have like social recovery and all of these things.

And ideally try to solve it with a minimum amount of centralization as things like social recovery do. But these things are all fairly hard to achieve in the current context because, you know, unfortunately, these one blockchains isn't really that well designed for verification schemes other than single elliptic kind of elliptic curve via signature verification, but inside of like the optimism roll up for example, you totally can do it. And and you know, sequencers can just support account trade out abstraction manually. So, that's another example of like this sort of thing that you could try to start doing on layer two is that you can't easily do on layer one and hopefully and if you use the layer two switch as an opportunity to simultaneously encourage people to move to better things. Um so, yeah, and I guess another possibility would just be making a kind of migrating applications to layer two.

So, for example, like something like imagine making a bot that where if a market gets opens on Augur, then you can you would just immediately you know, go to foundry, create like a a huge amount of yes tokens and no tokens and then push those tokens into the layer twos and then just like open up a market for both of those tokens inside of the layer twos so people can go do their predictions market trading inside of the layer two. But so, there's a lot of applica- simple application specific things you can do like that and then you know, I'll be able to do my prediction trading with paying less than $17 of transaction fees. So, a lot of options. Awesome. Thanks Vitalik.

I hope that I hope that super listeners I hope that someone works on those problems. Um okay, well, I think that is the end of the day's stream. Thank you so much Vitalik for coming on with us and talking about this. Um we look forward to having you back on the final day of EthOnline on the 30th. Um and until then, talk later.

Sounds good. And enjoy your lunch.

Automatic transcript — names and jargon may be misspelled.