Ethereum Protocol Upgrades: Past, Present & Future

ETHCC 6 · July 2023 · 25:14

Tim Beiko reviews how Ethereum's upgrade process has evolved. The speaker discusses changes around the Merge, protocol ossification and open questions about the future of upgrades.

Speakers

Topics

From ETHCC 6, hosted by Ethereum France.

Transcript

[Music] thank you cool okay um hi everyone my name is Tim Bako I work at the ethereum foundation and the main thing I do there is facilitate the awkward devs calls um and today I'm going to walk you through ethereum governance um yeah it's been about 25 minutes talking about that if the clicker works okay let's try it out Okay so I think when you talk about like ethereum governance the first thing that's important to Define is what even

is the thing that we are governing um and I think of it in like two layers so the first part is the set of ethereum protocol rules um and this is like all of the list of instructions that are defined in things like the yellow paper the consensus specs eips that nodes on the network must follow if they want to be part of the ethereum network um there's also some other kind of protocol rules that are you can think of as nice to have so things like networking syncing and apis um that are like good for us to all agree on um but are not like consensus critical in the same way and then additionally when we talk about like ethereum generally we refer to like the East Main net state so this is like the network uh that that instantiates those protocol rules that has like the

chain ID number one that has all the balances and accounts and apps that we care about um so high level that's roughly what we think about when we talk about ethereum governance so most of my talk will be about who actually govern ethereums and how and I think it makes sense to think of it a bit like an onion where um you have this core that's uh basically the protocol and then you have all of these different layers of stakeholders which have roles that are less and less formal as you kind of extend outward but which have a greater and greater impact on like the ultimate uh the ultimate decisions for ethereum so I'll run through each of these layers and kind of walk through what their like role is in the governance process so the first kind of group here is

cordoves um and this is a term that's kind of hard to Define almost and famously so um and it's kind of a feature and not a bug that it is hard to Define and while I Was preparing this talk um I was trying to explain like why is it like a good thing that we don't Define this and then after he posted this on another Project's GitHub explaining uh why it's a good thing because they wanted to have a super formal definition um so I'll just leave uh leave it there um because he did much better than I could have but high level um we have basically these 10 client teams um that are based in a bunch of different types of organizations spread out across the world in addition to that we have a bunch of researchers from Academia from VCS uh from companies some

are nons obviously the EF has a large number of them um and and finally we just have a bunch of people who like show up randomly on the Discord um some of them you know come for a while contribute and then leave some of them stick around um and that sort of massive people ends up being what like we think of as core Developers one thing that is important though is that a lot if not like all of like the significant work that happens and that's happening in public so most of like the calls that we have are either live streamed or recorded and uploaded so anyone can watch them and then a lot of the discussions about new features new research ideas and whatnot happens on public venues like eat magicians or eat research so the next kind of layer up from this

is EIP Champions um so EIP stands for ethereum improvement proposal and this is like the formal template you must follow if you want to submit a change to the ethereum protocol um so anyone can do this uh you know you go to eips.etherium.org there's a whole template that walks you through what you need to do and I think the way to think about this is that the larger the change to the protocol is that you want to do the more people are going to have to involve and kind of bring you along for the journey um given you know the the sort of stakes uh that that it is the change ethereum so in practice you know if you're if you're making a significant change to ethereum what you're going to want to do is like coordinate this with all of these core developers researchers and

kind of show why this is a valuable change to ethereum um you know who wants this what did they get out of it um show that it's safe which is usually like the hardest part and you know generally create momentum around it to explain like this is a change we should have now and so under this the resolution is not great but like there's a couple screenshots that I have so the first is like a little meme template that I made when someone has a new EIP idea they come on Awkward apps they present it and then you know we find a Dos Vector in it um which is a denial service attack and you can see the second screenshot is just a screenshot from ethereum magicians um searching for dos and like basically all of the like recent Eeps around account abstraction 4844 um even Beacon chain withdrawals have

like extensive discussion on this um but if you you know work on your EIP uh get get this back safe and secure um then eventually you know it might get included on chain and so this last screenshot is uh this last screenshot sorry is at 11 53 so this is an EIP that's been included in the next uh hard Fork where um the team the unit swap team sort of championed this and basically went through this entire process and uh eventually got got the Erp included okay so like The Logical question from this is like if you have these EIP Champions these core devs uh writing the specs writing the clients does this mean they control ethereum governance um and my my answer is no

um hopefully um and the rest of my talk will sort of focus on why that's not the case and the role that these other participants in the system have so now we're going into like a bit of the fuzzier Zone but um it's still worth kind of trying to Define it as well as we can I'm sort of next layer up is what I've called consensus participants so these are either miners in a proof of work Network or validators on proof of stake ethereum today um and the simple way to think about this is if you have a network upgrade like a change to the consensus rule you need at least one of them to run the software um otherwise you know the upgrade never gets activated and on ethereum you know there's nothing like on-chain voting or anything like that for upgrades so you really need to

get these validators to like actually download a new version and like willingly upgrade their their notes um and then if you only have a subset of those people upgraded then the network would obviously split um and the way ethereum handles this is that both sides of like the the upgrade uh would just continuously leak or burn the stake of the validators on the other side until they make up less than a third of the total stage um and then both sides of of the upgrades would finalize again you know with their respective protocol rules and so if the fact is you know on ethereum like could like the cordovs you know collude together and try to like pass a malicious upgrade and you know get all these other layers upgraded um this this would be quite hard and and

the reason is that cordovs just like don't even run a significant percentage of the of the consensus node on ethereum um and just to paint like a worst case scenario here so two years ago now I think the EF announced this incentive program uh for for client teams where we gave a bunch of client teams about 144 validators each and there's about 10 client teams so that's 1400 validators now assume you know they're like colluding each other to have a bunch of secret Ethan validators there you know assume anywhere from 2 to 10x the amount of this so they'd have you know up to say 14 000 validators um when I made these slides which was probably a month ago validator count was about six hundred thousand so you know fourteen hundred to fourteen thousand

out of six hundred thousand is about point two to two and a half percent um in the worst case so it's you know not even near what it would take to like bring the majority of the chain over to a new set of rules um the EF has about 320th on chain 320 000 East on chain right now um that's not Stakes that still have to go through the whole deposit queue get activated but even if you added all that you get 24 000 which is about four percent of the current stake um which again is is quite a small minority and then say even all of that happen um on ethereum consensus participants don't get the final say in like the state of a hard Fork so I'm you move one layer up the onion you get the load

operators and this is why sort of on ethereum we keep harping about decentralization and this is really the point where it starts to matter a lot so on ethereum any full node validates every single transaction that it sees um and as an aside this is why validators like a very bad term to refer to like the staking nodes because it makes it sound like they're the only ones validating but if you run a node without 32e it's just like running a node on your own computer um you do validate that every transaction every block is valid that you see on the network so if you have a blockchain where only the validators can run nodes and that means that they can change the protocol Rules by colluding um obviously you know the malicious version of this is like they all get

together and they like passive about protocol change but there's also like a less malicious version which is just they have a coordinated bug so the smaller that violator set is the the easier it is for them to collude and if there's no other nodes on the network to watch them then that would sort of go undetected but on the other hand if you have these non-staking nodes you know you have a lot of them then every time a block is proposed the validator proposing that block knows that if their block is invalid then it'll just be rejected by everyone else so their forefoot the transaction fees and rewards they would have got in by proposing an honest block um and this is kind of the thing that you give to the network when you run your own node is you're able to tell all of the nodes that you're peering with

whether the last block you've seen is valid or not and whether you consider that part of like the ethereum canonical chain and again you do this by validating it which is kind of a weird term so from the onion um you know users of ethereum and this thing this thing usually comes up in the form of like can a single project decide the outcome of a fork on ethereum um and it's worth just like highlighting what happens exactly when ethereum forks from the perspective of users and applications so the state of the network at the fork would basically be duplicated on each on each chain and the ethereum state is effectively like the list of all the addresses all their balances all the contracts and the code

that's stored on it so you can think of it as like all the unit swap pools all the nfts and whatnot um and some and some fine like you know things can fork and just exist on both chains we've seen this in the past with like ethany's classic they can just have a different price you can imagine a bunch of nfts with data on chain and that you know just continue existing but there's a lot of projects that actually need to make a binary choice so if you think of things like real world assets like stable coins you know they're kind of a pointer from a token on chain to like an actual Dollar in a bank account they need to figure out which of the pointers you know Maps the actual dollar uh think of things like oracles and bridges which you need to

take kind of data or value from one place and sort of feed it into another place so as a whole if there is like a fork the entirety of projects coordinating together can have like a huge say in which Fork ends up being canonical um but that said like a single project can't really move this entire equilibrium alone right they need to have like all the other projects move with them otherwise it's kind of a they're kind of alone in their own world and this is where you know you sort of get on the outer layers of the onion where um it's a very fuzzy thing there's no Playbook there's no like rule set by which projects would coordinate together but if they choose to do so and like all the users of ethereum decide to move to a single Fork then it has like a huge

saying like what we actually consider to be a theorem and lastly like this is kind of my last layer of the community uh bankless people like to call this like layer zero um and at the end of the day if you think of something like ethereum or you know Bitcoin or USD it's all kind of this system to which we agree uh has like certain property and certain rules it's very easy to like Define those in the happy cases you know on ethereum we just saw we have this EIP process Network upgrades and whatnot um but then when you hit these extreme cases things like these contentious hard Forks things like potentially social slashing there's not really like a single process you can follow because the second order impacts of the decisions start mattering way more than the actual decision itself you know like

what do you do what does the decision you make do in terms of credible neutrality in terms of the platform stability um and this is something where again it's like the the most loosely defined part of the entire process but it's what shape sort of the entire kind of value set of the network I mean the community has like a huge power in them okay so hopefully this is helpful just like understanding the different layers and and sort of what each stakeholder can kind of contribute to the process um now I'll walk through some more practical examples actually before that um one thing is yeah so like I spent a lot of time on different layers and it does feel like most of the attention when you talk about governance

ends up being like around the core Dives and maybe like the Champions but it you don't really feel the outer layers as much uh it seems and I think part of the reasons for this is just that like people working on the software and developing the software can proactively listen to the community um and not push forward and upgrade that they think would be contentious because if something goes wrong then they're the one that has to like deal with the network that's in the state of chaos so they sort of had this incentive of like not pushing something that'll completely break ethereum because they'll spend six months fixing it afterwards and so now I have some actual like uh examples of things that were consensus in the past um first probably you know the most famous one so the Dao so early on in ethereum's history

um the first big project uh had about 15 of all the East locked in it and got hacked um and all that eat you know was like gonna go to a hacker um and so there was a big debate around which we should we do should we uh kind of undo this hack or you know let it be as part of the chain um and there the core devs actually took a pretty neutral stance they put a flag in the software and let users decide which side of the fork they would want to support would they want to like alter the state of the chain or just leave the hack be and so most of the ethereum community ended up um altering the state of the chain but we did have the ethereum classic Fork that resulted out of this then after that there was another large

hack um that affected the lar the most used multi-sig at the time the parity multi-sig um and at the Time parody had the second most used ethereum client so right after guess um it was led by one of the ethereum co-founders and they had a lot of their own funds in it so it's hard to think of a hack that was like more of like an insiders being affected type of situation so they proposed again an EIP that would change the state of ethereum where they only had to like undo a single transaction or revive a single contract and everything would be fixed there was huge Community pushback to this so the the client developers never actually included this change in a proposed upgrade given the community's pushback even though basically one of the ethereum co-founders and like major

client teams were severely affected after that uh there was this I'd say more minor one so Prague power or EIP 1057 uh there was this proposal to change proof of work uh how how it worked on ethereum uh the idea had been that ethereum should be Asic resistant um and then overtimes A6 started to appear um and so there was kind of this debate where we should change the proof of work mechanism to like stick to the original to the original intent of being more Asic resistant or just you know leaving pinyas is and accepting the Asics um this wasn't as like torn but like I say Cortez were generally supportive of making this change in the community was quite opposed so once again you know this is a case where it never even got proposed as an upgrade because of the community pushback

and then last but not least we had the merge uh recently so the transition from proof of work to proof of stake on ethereum this is something that was part of the the road map since you know pretty early on in ethereum's history um and this had like pretty overwhelming consent consensus across the community um obviously some of the miners were quite opposed because they would directly kind of lose out from this um but this was a case where you know the client teams felt comfortable pushed the upgrade um and the overwhelming majority of the community upgraded there was still like a minority proof of work chain it still exists um but you know I think we all agree that like ethereum is the proof of stake chain today okay and so uh I'll start to start closing this off with like I guess

roughly where my head at is at with regards to governance and what are like the can of worms that we're looking at um so one thing that's happened over the past couple years is there's more and more stakeholders involved in ethereum governance um not only are there people that are like affected by uh these decisions because you know they've built their application or infrastructure based on ethereum there's more and more people that want to contribute like L2 teams infrastructure teams major applications and whatnot and then alongside that we have what I've called like high hanging fruits so a lot of like the easy changes to ethereums have been made um a lot of the things that we're thinking through now are like pretty complex and involve you know uh trade-offs which you can reasonably like argue both sides for so if you put both those things together

like there's more people you need to get to agree on on like more complex things um you also have more at stake on the network as like there's more and more deployed on it than like does this need the ossification by default does it mean it'll just get slower and slower to change ethereum so I'm not sure um what like you know this outcome is but I think this is something that like as a community is worth thinking about um and and figuring out you know do we want ethereum to osify if so how and are there things we want to do to potentially prevent that in both the short and long term and so um I think this is my last slide but um while I don't have like an answer to those big questions there's like a couple small things we can do to like

make things marginally better uh with the process uh so these are just a couple updates with regards to like what we've been doing in governance um over the past year or two um so first of all since the merge um ethereum proof of mistake is now like fully part of the the network uh but it had a completely different specification format because it was developed differently so we started aligning how El and cl specs work together so that if you want to like make a change to ethereum it all follows the same process we're not quite there but we're making progress um they name the latest consensus specs uh Tim's Vision because they started using eips um the other thing is we've been trying to just use more async uh like ways of working so that and that are a bit more

permanent so that we can kind of track support and and involve more people and not just rely on these synchronous calls to like make all the decisions um so we've been using like each positions a bit more I'm third like to try and not even answer some of like the bigger questions around uh governance and like long-term protocol maintenance but understand the space we're operating in um the ethereum foundation has funded about 30 researchers this summer across a whole bunch of domains to just think about protocols as like a first class like study discipline and try to understand how they work what are their challenges not just in blockchain but across a whole array of domains and so that's called Summer protocols you can check it out as well and then there's still a bunch of other

like to Do's or just open question that um myself and others are thinking through so you know should we split out the way that application specify things through the ERC process from eips um we have this whole L2 roadmap for ethereum what are the points if any of like standardization that we should try to like push for so that l2s feel like ethereum but we can still have like a diverse ecosystem of l2s um and then I think the other question that comes up um with things like liquid staking restaking Mev is like when applications reach a certain scale they start to have impacts on like the actual protocol itself and how do we actually manage this um in each of these individual cases but also in like a more General way so yeah that's all I had um I think I

have five minutes left happy to take any questions um but yeah thank you very much [Applause] hey and thank you for the presentation my question is what's your personal opinion regarding l2s and their impact on the economics of ethereum because I think they might decrease the demand on each token spent on gas okay um so I think for l2s generally yeah I think they're great like I think um the original like eight two roadmap which is kind of like Central planning where we would like decide how everything works and now the fact that we've seen like ZK Roll-Ups and

optimistic Roll-Ups in production sort of shows that this was a much better approach um I think there's a block space in tokenomics the way I think about ltus is almost like Enterprise users of ethereum um where and there's not just ltus I think oracles are like another good examples of like more Enterprise users um where you know they're very price insensitive like the updates have to get on chain um so I can see a world where like you know they take up most of the block space if not all of it um and they're willing to pay more for Block space than like average users because it's like a business expense Rhythm um yeah so I it it's hard to predict the future of this stuff but I think that like thinking of it as like almost a shift to B2B um for Block space makes a lot of sense

I think a lot of the infrastructure also has a lot to play here so like all the wallets default to L1 right now so like you know I personally will use L1 sometimes just because it's like more convenient than L2 um just because I don't have to switch to network um but you can imagine like a world where everyone's onboarded on L2 by default and like all that usage happening there um and even though you know sometimes it might even be cheaper on L1 um just like the default Behavior becomes L2 um yeah I think in terms of block space like there will be a lot of demand for like highly secure block space hello uh how do you measure the

community support or pushback no single way it changes every time um and I think it's like yeah there's not a single way this is why it's hard um I think at this point as well it's almost like the like I was saying it's harder and harder to change because more and more people need to agree so um it's it's much easier to measure pushback I guess and um yeah I I think like there needs to be less and less pushback for something to go through given like the stakes are higher um and yeah people measure it in a bunch of different ways hi Tim do you think that as there's an

increase in Cadence of upgrades like over time we see the amount of time it takes to prepare for an upgrade gets shorter condition the community to just like continue to do more upgrades especially given that traditionally node operators have been Miners and because ethereum always knew they were going to transition to proof of stake their voices have always been kind of like um people don't really care about it so like Prague pow is a great example and so right now I think the staking Community is in a really good position to like perhaps introduce more ossification but I'm just curious to know how you think

about those Trends yeah um I'd say I think we're yeah we're definitely pretty fast in terms of velocity of upgrades right now like and I think that's good I don't know that I would go much much quicker uh but you know maybe we'll still get a bit quicker I think in terms of like the stakeholders um stickers definitely feel more like an overlap of the ethereum community generally whereas like miners felt very disconnected and also often very chain agnostic um you know like they would just direct their hash right towards whatever was more profitable um so it yeah I I don't know if they can like block or slow down upgrades more but it does feel like easier like the previous

question about engaging Community consensus feels easier in a world of proof of stake than proof of work because like miners were very decorated from everyone else um yeah okay well thank you very much everyone [Applause]