EIPs are the unit around which governance happens in Ethereum. Anyone is free to propose one, and then various stakeholders in the community will debate to determine if it should be adopted as a standard or included in a network upgrade.
- Ethereum.org, Why EIPs Matter
Index
Lecture
Office Hours
Guest Speaker
Supplemental Resources
Lecture
â–¼Lecture Transcript
The following transcript was auto-generated, and may content syntactical errors.
00:00:00.000 --> 00:00:02.000
All right. Welcome to today's. Course today's class we kick off week 2 I'm gonna start the recording now so if you don't wanna be recorded, please feel free to drop off.
00:00:02.000 --> 00:00:12.000
All right, thank you all for joining us. Today, we are. Yeah, I'm gonna just.
00:00:12.000 --> 00:00:26.000
Put the captions on, so everyone can see them hopefully. We're in week 2 of our of our course understanding a theorem network upgrades.
00:00:26.000 --> 00:00:31.000
I'm Tom, I'm joined by Matt. You'll also find on here.
00:00:31.000 --> 00:00:56.000
Helping us.
00:01:10.000 --> 00:01:27.000
Of the Ethereum community and how that community comes together to do upgrades, but today we're actually going into the nuts and bolts of like what How do we figure out what gets included in upgrades in that?
00:01:27.000 --> 00:01:34.000
Is done via this EIP process. So. This is the high level slide.
00:01:34.000 --> 00:01:41.000
If you take one thing away and you slides are posted within the course and they'll be posted again.
00:01:41.000 --> 00:01:57.000
Once we have the recording up. You can find all the links. Follow along but I think the big thing is that this is literally the unit the the piece of,
00:01:57.000 --> 00:02:07.000
Of information around which we kind of build. All other processes around Ethereum, I think. If you listen to our guest speaker on Monday.
00:02:07.000 --> 00:02:08.000
These are
00:02:08.000 --> 00:02:13.000
Pooja, the, the herder in chief of Ethereum cat Herders
00:02:13.000 --> 00:02:27.000
I think she did a really good job of making the point. That EIPs are So critical and where it really starts and that's a big reason why Ethereum cat herders.
00:02:27.000 --> 00:02:39.000
Emerged because that is the layer at which. Ethereum upgrades. In a sort of controlled chaotic way, right?
00:02:39.000 --> 00:02:47.000
I think we've kind of all agreed that like there's a little bit of that. The little bit of chaos is good.
00:02:47.000 --> 00:02:57.000
But you also need to. Direct that chaos a little bit to have it be productive. So, Matt, do you just wanna talk about?
00:02:57.000 --> 00:03:02.000
The fact that You have, we have a note here that. There is no blocker on who can propose an EIP.
00:03:02.000 --> 00:03:08.000
What what's up with that?
00:03:08.000 --> 00:03:22.000
Yeah, so. We'll dive into a little bit of the process of maintaining kind of a life cycle of an EIP, but I think that's the beauty of it is that it's really up to the proposinger to drive champion and kind of shepherd their proposals.
00:03:22.000 --> 00:03:28.000
Through this process. The reason that there's no blockers is because, you know, we, run an open source kind of environment, a decentralized governance process.
00:03:28.000 --> 00:03:50.000
So since these are the units around which governance happens in Ethereum we need anybody to be able to make that kind of a proposal right but you have to gain the consensus of folks across a variety of different areas so it's really on the proposal to be able to do that.
00:03:50.000 --> 00:03:55.000
But there are no blocks in need to get to get involved. So. We'll keep it moving and talk some about some of those statuses stages of a proposal.
00:03:55.000 --> 00:04:12.000
Live cycle and why it's a little bit challenging to get EAPs included. But at the same time, there, you know, these are extremely important to Ethereum because this is the, this is the way we change almost anything on the network.
00:04:12.000 --> 00:04:19.000
So we've moved over here to the actual IP process. Tom, do you wanna give it 2 s?
00:04:19.000 --> 00:04:23.000
I need to grab some water. I'm have a frog in my throat it seems.
00:04:23.000 --> 00:04:31.000
For sure. I think if we're thinking, you know, one big. Link that we called out is EIP one.
00:04:31.000 --> 00:04:42.000
A very Meta EIP if one could say it. It's an EIP that almost defines, what it is a EIP that defines what, it is an EIP that defines what EIPs are.
00:04:42.000 --> 00:04:50.000
And there's a quote here that we just wanted to read to you in order to contextualize.
00:04:50.000 --> 00:04:53.000
Everything that's about to follow and EIP should primarily provide a concise technical specification with a small amount of motivation.
00:04:53.000 --> 00:05:08.000
Keep that first sentence in mind as you start to look at EIPs, whether you think that we've adhered to that.
00:05:08.000 --> 00:05:19.000
The EIP author is responsible for reaching consensus within the community and documenting alternative options. Simple statements seems pretty straightforward.
00:05:19.000 --> 00:05:33.000
I think we've already shown reaching consensus amongst many overlapping groups. Could be a A unique.
00:05:33.000 --> 00:05:41.000
Quest to go on and I and I will term it as that a quest. It's almost like the hero's journey in a way.
00:05:41.000 --> 00:05:53.000
And being able to document alternative options. Seems very straightforward, but. The complexity and possibilities.
00:05:53.000 --> 00:06:04.000
Can actually be quite overwhelming. So with that context, let's. And I'll let Matt talk generally about how we move through.
00:06:04.000 --> 00:06:13.000
This nice little chart here of we have some nodes and edges. We love nodes if you haven't figured it out yet.
00:06:13.000 --> 00:06:25.000
And so, will, will sort of talk through how we move from idea to, some sort of status where the EIP ends up.
00:06:25.000 --> 00:06:34.000
Yeah. So. We have of course, as Tom mentioned, a concise technical specification and a small amount of motivation.
00:06:34.000 --> 00:06:52.000
I think that's what we call the idea, right? You have something that you want to change within Ethereum, whether it's an application standard, a the way that client software is run, you want to add a new opcode, you want your smart contracts to be able to have more functionality at the base layer.
00:06:52.000 --> 00:06:55.000
Those are the kind of small units of technical specification. And then you have the motivation for why you're doing that, of course.
00:06:55.000 --> 00:07:04.000
You know, I want this new gas costing because I believe that the Existing gas schedule doesn't make sense in light of XYZ.
00:07:04.000 --> 00:07:14.000
That's a great EIP, right? And you have a, you know, you draft that idea.
00:07:14.000 --> 00:07:29.000
We have multiple repositories where those ideas live for the EIP repository. We'll talk soon about ERCs and others, but you you know, you draft this, you work it with the community, as mentioned by Puja and others the other day you need to engage with the fellowship of the theorem magicians.
00:07:29.000 --> 00:07:39.000
The reason being is that we, you know, the EIP standard of quality. Is somewhat high, right?
00:07:39.000 --> 00:07:54.000
So you want to be able to vet this idea that you have with the community before you submit it for kind of a formal review where you're taking resources from the other EIPs that might need attention from the community of editors that manage these EIPs.
00:07:54.000 --> 00:08:12.000
So when you take their attention, you want to make sure that you have a validated idea. So you reach out to these folks on Ethereum magicians, you vet the idea with the community, you see if it's already been done before a lot of the times, oh, maybe I have this great idea and you find a thread from 2 years back on a theory of magicians about the same idea and then you can read the logic
00:08:12.000 --> 00:08:32.000
for why the idea was never progressed, right? So there's a lot of kind of onus of, understanding on the author to go and do a lot of that initial leg work to draft their idea to be concise to build a rough consensus and then to submit the EIP for review and feedback.
00:08:32.000 --> 00:08:36.000
So you're moving it from the draft stage. Which might be opening a PR in the GitHub repository.
00:08:36.000 --> 00:09:00.000
Providing all the relevant details and then you put it up for review. So this is when we have, you know, depending on how far along the IP is, this is when we have the actual EIP editors come in and work with this this is might be the time where folks like Pooj's team, the Ethereum cat herders would come in and actually Move forward your proposal if
00:09:00.000 --> 00:09:13.000
it needs additional help. They have that kind of EIP in progress meeting that EIP-IP meeting that was discussed the other day which sort of acts as a core devs consensus call of the EIP editors.
00:09:13.000 --> 00:09:19.000
So there's really a lot of different stages of review that are happening. And different different people that are reviewing it.
00:09:19.000 --> 00:09:27.000
You'll likely have your specifications torn apart. Your motivations torn apart. And these are all good things, right?
00:09:27.000 --> 00:09:46.000
The kind of review phase is where a lot of the work gets done. And it's kind of moving through this process or it either becomes stagnant where it will be basically left for a later date or for not at all, or it moves into some of these other phases.
00:09:46.000 --> 00:09:51.000
So at any point in the IP, you can of course be withdrawn. If you no longer feel that the protocol needs the change that you're proposing or if you found an alternative solution that would nullify your previous proposal.
00:09:51.000 --> 00:10:12.000
Or if you just don't feel like managing it or dealing with it, whatever it may be, the author can move it to withdrawn stage however the information is always out there so others can revive your EIP in different forms if they like what's being proposed.
00:10:12.000 --> 00:10:21.000
So as EIPs move to the Last call phase this is when things get kind of a little bit interesting.
00:10:21.000 --> 00:10:33.000
So they typically hang out in this kind of living bubble for the longest time. If you have any IP that has been thoroughly reviewed thoroughly vetted, but not necessarily yet ready for inclusion and a hard fork.
00:10:33.000 --> 00:10:34.000
It's a living IP. It kind of hangs up for a little while because again, we only ship a handful of hard forks.
00:10:34.000 --> 00:10:49.000
The theorem network upgrades. Within a year, 2 year period. So a lot of these EIPs basically wait around until they're considered for inclusion for a forks.
00:10:49.000 --> 00:10:57.000
So as these upgrades come, the core devs and the Cordevs calls will happen. We will have EIP authors?
00:10:57.000 --> 00:11:03.000
Add agenda items to those Cordevs calls to make impassioned arguments about why their EIP should be included in the next upgrade and why.
00:11:03.000 --> 00:11:14.000
It should be considered for inclusion by those client dev teams. And just Cordevs in general.
00:11:14.000 --> 00:11:26.000
So they The next upgrade is coming around. We say, oh, we have 10 EIPs that are candidates and we move them toward across this thing into this last call phase.
00:11:26.000 --> 00:11:36.000
If a EIP is slated to be included in a network upgrade, it moves to last call because you cannot start tweaking things with any IP after client teams have to start implementing it.
00:11:36.000 --> 00:11:37.000
So if we say, okay, in the Cancun fork, we're including EIP, 4, 4, 4.
00:11:37.000 --> 00:12:02.000
It as it moves to the inclusion phase and we've decided for sure that we were including it it moves to last call where the EIP itself is not frozen but somewhat more locked down so that there's not a lot of changes happening quickly and iteration happening quickly because folks that are building this don't want to have to redo the work.
00:12:02.000 --> 00:12:10.000
However, there is a period of iteration with the EMP authors because You know, everything looks great on paper as a specification.
00:12:10.000 --> 00:12:21.000
But when you go to actually build something in real code, oftentimes you find that the spec will have holes or it will need updates and this is a kind of iterative process.
00:12:21.000 --> 00:12:26.000
So the EIPs are hanging out in last call. We ship a hard fork. So say we ship Shanghai.
00:12:26.000 --> 00:12:31.000
We have withdrawals, for example, the EIPs. Only then, will any, be VIP become final.
00:12:31.000 --> 00:12:41.000
And the reason being is that the final EIPs are a very exclusive list and they are meant to be indicative of what is live on the network at any given point in time.
00:12:41.000 --> 00:12:46.000
Unfortunately, the reason for this is because the Ethereum yellow paper is maintained in different kind of states at any given point.
00:12:46.000 --> 00:13:05.000
So if you were to go from scratch and try to build an Ethereum client today you'd have to look at the Ethereum yellow paper you'd have to look at the whole list of finalized EIPs and then you'd have to go build something that basically starts in one place and iterates slowly to another place.
00:13:05.000 --> 00:13:19.000
But in any point, the those final APs are meant to be kind of a living purpose of what has changed on Mannet and what all clients need to have implemented in order to be able to participate meaningfully in the network.
00:13:19.000 --> 00:13:20.000
This is going away a little bit because we now have Python specs for both the execution layer and the.
00:13:20.000 --> 00:13:31.000
Layer, which is great. Which just means that at any given point instead of having to read.
00:13:31.000 --> 00:13:44.000
Hundreds of VIPs and the, the, in order to. Meaningfully engaged with the spec, you can look at the point in time snapshot of the specification, which is those execution layer specs and consensus layer specs that live in the Ethereum GitHub.
00:13:44.000 --> 00:13:54.000
We'll talk about these a little bit more in future. Items, but those specs are, again, directly influenced by the finalized EIPs as well.
00:13:54.000 --> 00:14:04.000
So it's a little bit of a push and pull. The process has actually changed slightly. From what it used to be that those specs didn't know didn't used to exist and we had to follow this exact process.
00:14:04.000 --> 00:14:17.000
But now we have a little bit more flexibility since we have a, living up to date version of the specification, written Python, which makes it a lot easier to draft the IPs and a lot easier to interact.
00:14:17.000 --> 00:14:26.000
To understand how your EIP might interact with other specifications. And to get examples. Code snippets, templates.
00:14:26.000 --> 00:14:34.000
Whatever. Cool. That was extremely long winded.
00:14:34.000 --> 00:14:35.000
Yeah.
00:14:35.000 --> 00:14:45.000
Let's pause here for questions because we are definitely we we are definitely front loaded on this one. We do have a lot of other good information and if questions come up, we we we can push.
00:14:45.000 --> 00:14:51.000
Forward to that, but I think now's a good time to stop for questions people have because I can feel all the questions.
00:14:51.000 --> 00:15:00.000
I can feel them and if there's any that were submitted. If the core project management team just wants to read those out to us.
00:15:00.000 --> 00:15:06.000
That, is helpful as well.
00:15:06.000 --> 00:15:13.000
And I want to reiterate this is just the process. We'll dive a little bit more into what the EIPs look like feel like.
00:15:13.000 --> 00:15:18.000
Smell like. But right now this is kind of just the overall process from a kernel of an idea.
00:15:18.000 --> 00:15:25.000
It's a real governance and real specifications, which I think is frankly the most interesting part, but I know there's a ton of questions.
00:15:25.000 --> 00:15:27.000
Potentially so.
00:15:27.000 --> 00:15:36.000
I have a question. Is there an average length of time that it takes to get, an EIP through or is everyone really different to the end that there is really no.
00:15:36.000 --> 00:15:48.000
Estimated time from when it's first introduced to when it is shepherded through.
00:15:48.000 --> 00:15:49.000
Yeah. It really depends on the EIP, right? Some EIPs are very small units of work.
00:15:49.000 --> 00:16:01.000
They're you know, it could be like essentially a typo in the spec or like I said, a gas cost change.
00:16:01.000 --> 00:16:08.000
Something very simple like this used to be really expensive based on old computing hardware and now maybe it's really cheap based on new competing hardware.
00:16:08.000 --> 00:16:15.000
So we changed the gas cost. That takes literally minutes for clients to implement and in minutes for people to test.
00:16:15.000 --> 00:16:21.000
So oftentimes those EIPs move very, very quickly. You can look at something also like EIP, 1559, which we'll discuss at our case study later on where it took over 3 years.
00:16:21.000 --> 00:16:31.000
From the EIP being drafted and authored to go through the process and be implemented on main net.
00:16:31.000 --> 00:16:41.000
In like 2021 so it's really briefly depends on the substance of the EIP. It also primarily I think depends on how controversial the EIP is.
00:16:41.000 --> 00:16:47.000
If you have an EMP that is universally loved, it's universally beneficial. It's universally interoperable.
00:16:47.000 --> 00:17:00.000
It'll be much quicker for it to go through this process. But if you have contention in what you're doing or maybe one of the improvements that you have benefits one set of users and developers, but it might detriment one set one other set of users and developers that will cause argument which can cause stagnation in the progress.
00:17:00.000 --> 00:17:10.000
Or in the process and it can also cause. You know, like things to never be included, right?
00:17:10.000 --> 00:17:20.000
Like how can we include in the IP and a hard 4 car upgrade? When we don't necessarily have agreement on its benefit to the whole network.
00:17:20.000 --> 00:17:28.000
So hugely, a huge variety of, of, timelines there. Oh, can I, there's another question here.
00:17:28.000 --> 00:17:34.000
Could we please say more about the Python specifications, what qualifies as Python spec.
00:17:34.000 --> 00:17:45.000
Yeah, great question. The Hython specs are is pretty much just what they sound like. It's an implementation of the Ethereum, execution layer protocol.
00:17:45.000 --> 00:17:53.000
Written in Python, you can, I think, Attempts to sync the chain with Pi spec it will never catch up to the head of the chain.
00:17:53.000 --> 00:17:54.000
It's not fast enough, but you can, it's basically a node implementation written in Python.
00:17:54.000 --> 00:18:11.000
And it is exists to Again, help new developers and users of Ethereum understand in pretty readable pseudo code what is happening in both Ethereum clients and in the application space.
00:18:11.000 --> 00:18:25.000
The EVM kind of implementation is also very interesting to look at because there's like, it again, it's more readable pseudocode since it's written in Python, it's more readable pseudo code since it's written in Python.
00:18:25.000 --> 00:18:27.000
Whereas if you were going to go look at a client like Geth, since it's written in Python.
00:18:27.000 --> 00:18:31.000
Whereas if you were going to go look at a client like if you were going to go look at a client like Geth it would be pretty inscrutable to determine what is specification.
00:18:31.000 --> 00:18:41.000
That is dictated by the protocol of etherium versus what is just nice code that's been put in there by the GET team to accomplish something XYZ, right?
00:18:41.000 --> 00:18:48.000
All the different clients are different. But they all act against the spec. Tom linked a blog too, which talks about eels.
00:18:48.000 --> 00:19:01.000
They're new and exciting and people are really happy about the eels. And again, it's just a matter, a measure, a means for us to kind of upgrade the old process, which was to look at the Ethereum yellow paper.
00:19:01.000 --> 00:19:09.000
And reason about it in your head and then apply hundreds of VIPs on top of that initial specification written in like PDF format.
00:19:09.000 --> 00:19:26.000
So that was not sustainable for devs. It was not sustainable for the EIP editors. And now when you write an EIP, for example, you can open a PR against the execution layer spec or against the consensus layer Python spec and say, hey, you know, this is exactly where I'm going to be changing the protocol.
00:19:26.000 --> 00:19:50.000
Here's a code snippet. Here's my motivation. And you know, it just simplifies that process greatly, whereas before you would need to create so much more context when drafting an IP, that now you can essentially defer to the to the specification because you can say, hey, you know, this is the spec we all know and love and this is how and why I'm changing it.
00:19:50.000 --> 00:19:57.000
Great questions. Thanks everyone. So I think the next thing that kind of comes up is like, you know, as we think about our mental model.
00:19:57.000 --> 00:20:06.000
We do want to get a sense of like, well, what types, what's the sort of Taxonomy of EIPs.
00:20:06.000 --> 00:20:17.000
And so we're gonna just talk through some of the types of EIPs. Over the next 2 slides to sort of give you a sense of where they could fall.
00:20:17.000 --> 00:20:30.000
In terms of these. This classification system and. Give some general overview of round. If they fall in a different bucket.
00:20:30.000 --> 00:20:52.000
What is the complexity that goes along with that? So. There are so first off there's the standards track EIP and this is pretty much gonna be ones that are I think the way to think about it is like It's in order to implement a theory, this has to be implemented in some way.
00:20:52.000 --> 00:21:00.000
So that might be at the client level, at the, when we talk about block validation, what we're talking about is a combination of consensus.
00:21:00.000 --> 00:21:27.000
The consensus mechanism. And the sort of sinking mechanism and then also like network. In. So that could be anything from how different validators share information between each other it could be something on the line of like how a certain address or.
00:21:27.000 --> 00:21:32.000
A certain
00:21:32.000 --> 00:21:46.000
Representation of shows up but I'll turn it over to you Matt to sort of break down the the 4 components of the 4 different types of standards track EIPs.
00:21:46.000 --> 00:21:59.000
Yeah, absolutely. So. As Tom mentioned, core is what we primarily deal with when we're talking about these kinds of contexts, especially when you think of core devs.
00:21:59.000 --> 00:22:07.000
It's not quite a coincidence that that happens to look and sound like that. Or EIPs require consensus forks.
00:22:07.000 --> 00:22:13.000
And when I say a consensus work, that basically means an upgrade, right? We need to have all of the nodes on the network.
00:22:13.000 --> 00:22:19.000
Simultaneously agree upon a new set of rules that allow them to interoperate with each other. That can mean sinking the blockchain that can mean validating new blocks.
00:22:19.000 --> 00:22:36.000
That can mean hash function changes like Tom said. It can really mean anything. But anything that requires a change to the way that we essentially validate the chain requires a consensus.
00:22:36.000 --> 00:22:44.000
Or or else we will literally split the network in pieces when nodes do not agree on the version of the world that we have.
00:22:44.000 --> 00:22:51.000
So Cory IPs are, again, these are primarily what actually get shipped, at Ethereum network upgrades.
00:22:51.000 --> 00:23:05.000
They will require updates from all of the execution layer clients and all of the consensus layer clients usually. I say usually because some IPs usually target one layer or another.
00:23:05.000 --> 00:23:07.000
Some target both layers, but they will. Some target both layers, but they will require use or you know validating nodes like users participating in proof of stake to update their software.
00:23:07.000 --> 00:23:28.000
Infrastructure providers to update their software. Pretty much anyone running a node connected to a theorem will need to to update their software because they need again they need consensus and they need to implement those EIPs and they need to be able to talk to the other nodes.
00:23:28.000 --> 00:23:32.000
Some of these other EIP types, they don't require consensus, changes typically, but they're often lumped in with hard forks.
00:23:32.000 --> 00:23:59.000
Depending on where, where and how they look. Networking, for example. Changes to things like Deaf P, which is the peering system that we use in Ethereum do not require hard forks and upgrades and typically can Actually be kind of shipped whenever we often times will have the IPs to bump the versions of things like networking stack.
00:23:59.000 --> 00:24:04.000
So if you think of snapshot protocol, right? We have us, we have one version of the snapshot protocol.
00:24:04.000 --> 00:24:11.000
We could support another and we will when we have something called Verkal Tries next year, we'll have a new SNAP protocol.
00:24:11.000 --> 00:24:16.000
But we'll support both simultaneously. So it doesn't require you to change the way.
00:24:16.000 --> 00:24:19.000
That the network itself runs. It's simply how nodes talk to each other, how nodes give each other data.
00:24:19.000 --> 00:24:27.000
That's why I think networking is a great example for this. But these can be updated slowly or over time.
00:24:27.000 --> 00:24:32.000
And they're also usually backward compatible. So they don't really cause much of a fuss.
00:24:32.000 --> 00:24:45.000
And they don't really require a network upgrade to propose. Interface is similar. This is how we manage, basically APIs in Ethereum.
00:24:45.000 --> 00:24:53.000
Certain things also with the way that solidity works and some other stuff, application layer interfaces.
00:24:53.000 --> 00:25:02.000
These are maintained via EAPs as well. So we have, also specific APIs in Ethereum that the Ethereum Foundation maintains on their GitHub.
00:25:02.000 --> 00:25:12.000
This is like the JSON RPC API. You don't necessarily need EIPs to change that wholesale.
00:25:12.000 --> 00:25:22.000
We've actually moved a little bit away from this process in favor of the living specification on the on But you can.
00:25:22.000 --> 00:25:32.000
These can actually absolutely be APs. And I believe that if you want to create new sets of Api's, depending on what you're doing, you will need to use an interface.
00:25:32.000 --> 00:25:43.000
That's not always true. But again, decentralized governments is messy and we tend to do things that have the most experience and drafting EAPs is oftentimes time consuming.
00:25:43.000 --> 00:25:51.000
So if you're looking to work with application level standards, you're probably actually going to be in the world of ER, ERCs.
00:25:51.000 --> 00:25:57.000
This is where kind of I think the most of the attention in Ethereum, application development goes.
00:25:57.000 --> 00:26:09.000
That was a bad way to afraid that phrase that a lot of the effort around EIPs or changing the protocol in general ends up in the core EIPs bucket or the ERCs bucket.
00:26:09.000 --> 00:26:12.000
I don't want to dive too much into the ERC process now because we actually have slides specifically on that.
00:26:12.000 --> 00:26:25.000
But think about Think about interoperability standards on the application level, right? So I want to make a protocol that supports liquidity pools of various sizes and a decks for example.
00:26:25.000 --> 00:26:34.000
I want to make sure that all the tokens that come into my decks look and act similarly so that I can have interoperability and abstraction without worrying too much about.
00:26:34.000 --> 00:26:43.000
Hard coding things or building complex. Systems in order to be able to serve that, right?
00:26:43.000 --> 00:26:45.000
So, ERCs exist that the community community can standardize certain things that are valuable at the application layer like token standards.
00:26:45.000 --> 00:27:02.000
Specifically specific schemes for how wallets interact with front ends, for example, so that when I develop a new application front end, I don't have to start everything from scratch.
00:27:02.000 --> 00:27:09.000
I can know exactly how a wallet will connect to my page and how it will display information to the user.
00:27:09.000 --> 00:27:17.000
These kinds of things, right? User land, application land type. Standards will go here in the ERC.
00:27:17.000 --> 00:27:20.000
ERC section.
00:27:20.000 --> 00:27:31.000
And so we actually have. Some additional types of ER, EIPs. And we'll just.
00:27:31.000 --> 00:27:40.000
Quickly run through. These these are. So.
00:27:40.000 --> 00:27:52.000
The the meta EIP is gonna be one that. Is thinking about the decision making process itself.
00:27:52.000 --> 00:28:01.000
And with, you know, group like EIP.
00:28:01.000 --> 00:28:13.000
I. This becomes where that coordination layer can.
00:28:13.000 --> 00:28:21.000
Sort of intersect. A second time with the EIP process. So.
00:28:21.000 --> 00:28:32.000
It is. Less changing the literal protocol itself. But it is more changing the protocol around changing the protocol.
00:28:32.000 --> 00:28:36.000
And.
00:28:36.000 --> 00:28:44.000
I don't know if there's Matt, you have an illustrative example that you can think of of like a META EIP that comes top of mind.
00:28:44.000 --> 00:28:45.000
There you go.
00:28:45.000 --> 00:28:51.000
Yeah, EAP number one. How do you write? The, I'm at a, describes the process surrounding Ethereum.
00:28:51.000 --> 00:28:57.000
I would argue that creating a Ethereum governments is definitely surrounding the protocol, but is not a direct change to the protocol.
00:28:57.000 --> 00:29:11.000
There are very few met at EAPs. I would not say that they are widely used. But then again, people typically don't want to put their soapboxes in writing that is very detailed in a specific format they typically want to just shout stuff.
00:29:11.000 --> 00:29:21.000
So, META EAPs tend to happen in real live discussions and then get adopted via haphazard rough consensus, he means.
00:29:21.000 --> 00:29:31.000
However, I think EIP one is an awesome example and it's continuously updated actually to be a maintenance of kind of what it looks like to build the IPs.
00:29:31.000 --> 00:29:35.000
Yeah. There are there are very few of these. However, we're thinking about using metadata IPs to coordinate network upgrades going forward.
00:29:35.000 --> 00:29:54.000
So making an EIP that specifies what EIPs will be included. Yes, I know it's a little bit much, but then again, We are existing process is very much rough and kind of.
00:29:54.000 --> 00:29:59.000
Do it as you go. So I think this is this will be a nice. And, yeah, go ahead, Tom.
00:29:59.000 --> 00:30:07.000
And then to go back, yeah, like, can you just, you know, you'd made a statement about how ERCs.
00:30:07.000 --> 00:30:23.000
Like for example, something related to best practices. Might be an ERC that like reduces and will define what you're, we'll define what the URC acronym means in a minute.
00:30:23.000 --> 00:30:35.000
How does that differ from an informational EIP? Just to sort of drill down on like the difference between to really say like what is the difference between an ERC and an informational EIP?
00:30:35.000 --> 00:30:44.000
Yeah, and an informational MP in my mind is like, I have noticed this thing. About Ethereum.
00:30:44.000 --> 00:30:51.000
I'm going to do a little bit of research on it and I'm going to share my findings, but I'm going to do it in a formalized manner.
00:30:51.000 --> 00:30:59.000
The reason being is that you're basically free to ignore informational MPs. They don't actually do anything to the protocol.
00:30:59.000 --> 00:31:04.000
But a lot of time, like, like I said before, in the first slide, EIPs are the unit of governance in Ethereum.
00:31:04.000 --> 00:31:23.000
If you've noticed Something that requires careful eye or if you want to disseminate information about a topic that you're passionate about and informational AIP can do just that and it can allow us to coordinate around this because an informational MP can potentially spawn, a meta-IP or a Cory IP.
00:31:23.000 --> 00:31:40.000
Maybe you don't have the wherewithal to write a bunch of specification changes, but you do have the wherewithal to talk about an experience that you had that shapes the way you develop on the Ethereum protocol and then you provide a bunch of research that backs up your thought process and you make a recommendation, right?
00:31:40.000 --> 00:31:47.000
That's not really a Cory IP, but it can be done as an informationally IP and others can debate that topic.
00:31:47.000 --> 00:31:51.000
And use it as a means of coordinating further action later on.
00:31:51.000 --> 00:32:02.000
Gotcha. Okay, so how How do we how do we actually like Right this, what's the process for that?
00:32:02.000 --> 00:32:09.000
Yeah, so I wrote all these. Except for that quote on the left hand side, what I really like is that your role.
00:32:09.000 --> 00:32:16.000
Is to be the champion of your MP. You have to write it using the specific format that they outlined for you in the IP repo.
00:32:16.000 --> 00:32:24.000
You have to shepherd all of the discussions in the appropriate forums. So like I said, you have to go to a theory of magicians, maybe even research.
00:32:24.000 --> 00:32:29.000
You have to go to the court devs calls. You have to go to various discords. You have to talk to client teams.
00:32:29.000 --> 00:32:44.000
It's your job to do a lot of the leg work. However, if you build a really awesome community around this, you don't necessarily need to do it all of yourself if you're convincing enough you can make an army of followers to help you do all this stuff.
00:32:44.000 --> 00:32:51.000
But again, the author of the IP is dedicated to doing a lot of the legwork and building community consensus around the idea.
00:32:51.000 --> 00:32:58.000
So my suggestions and kind of how I view this authoring process. Is to start with an open mind, right?
00:32:58.000 --> 00:33:12.000
I think that a lot of people shy away from Ethereum improvement proposals because it seems like a lot of work and it seems like it would be impossible and if you're not a deep, deep, basically a client expert, you can't make these proposals.
00:33:12.000 --> 00:33:20.000
I think that's entirely wrong, especially when you consider ERCs. So don't accept necessarily the constraints of Ethereum as a protocol.
00:33:20.000 --> 00:33:28.000
Think of solutions and think of different things and make it informationally IP if you're not feeling so bold, right?
00:33:28.000 --> 00:33:35.000
But yeah, before you get started on that, if you have an idea, you had an open mind, you thought about a solution.
00:33:35.000 --> 00:33:48.000
Start vetting it, right? As you mentioned this before, you need to you need to make sure that no one's done this before that you did you're not necessarily it's not that you're stealing an idea but it's there's probably a reason why if something was debated before it was either implemented or ignored already.
00:33:48.000 --> 00:33:56.000
So make sure that you're reaching out to the community at large. The there is a huge amount of knowledge in the Ethereum Editions Forum and people are extremely active.
00:33:56.000 --> 00:33:57.000
So if you have an idea, bring it there. It doesn't even need to be any IP.
00:33:57.000 --> 00:34:11.000
You can just say, hey, I thought about this really interesting idea for a new opcode. You can just say, hey, I thought about this really interesting idea for a new opcode that'll allow us to store memory for a new opcode that'll allow us to store memory more cheaply between EVM execution calls.
00:34:11.000 --> 00:34:17.000
That's awesome. We love that idea. Just go post about it. You don't need to, you don't need to have specs written.
00:34:17.000 --> 00:34:24.000
You don't need to have anything. You just need to have an idea. You need to vet that idea with the community and then you need to start drafting your EMP in accordance with the format.
00:34:24.000 --> 00:34:36.000
Scribe AAP one. Presuming that there is no, show stoppers and what you've written or any, you know, the discussion that happens on Ethereum magicians is fruitful and you don't feel discouraged or if you don't feel like.
00:34:36.000 --> 00:34:42.000
Or you do feel like you have a good idea, etc. Keep going, build the EAP, draft it, share it with the repo.
00:34:42.000 --> 00:34:48.000
Get on those EIP IP meetings, talk to Pooja, get on the peep and Ep series.
00:34:48.000 --> 00:34:55.000
You want to be shopping your EIP around town like it's your job because in many cases it might be depending on what you're looking to do.
00:34:55.000 --> 00:35:02.000
Champion the AP, you have to understand the community sentiment and build consensus. Contentious items are unlikely to be adopted.
00:35:02.000 --> 00:35:09.000
If you have an EIP that will adversely impact 50% of atherium and positively impact 50% of Ethereum.
00:35:09.000 --> 00:35:17.000
You need to change those scales because your EIP is not going to get adopted. It's going to be debated to death literally and then it will sit in the stag and pile.
00:35:17.000 --> 00:35:24.000
Until something else comes along. So your, your job is to build, can you understand the community sentiment?
00:35:24.000 --> 00:35:30.000
Tweak your tweak your EIP to work within that community sentiment. You know hear the feedback of the people that are going to be impacted by this.
00:35:30.000 --> 00:35:47.000
And try to see if you can incorporate it and come up with a better solution. And then you really have to go, you know, once you have the community sentiment behind you, which is ideally perfect to do before you go to the Core Ds, but if you can't do that.
00:35:47.000 --> 00:35:52.000
Come to the Cordevs, convince the client teams of the value of your implementation for their clients.
00:35:52.000 --> 00:36:04.000
Right? If some, you are essentially asking. 10 teams to build some to set aside what they're doing to build something that you recommend in order to help the network.
00:36:04.000 --> 00:36:11.000
So you need to really convince them that spending literal time and money on something like this is valuable. And you want to provide reference implementations if you're feeling so bold and if you have the ability.
00:36:11.000 --> 00:36:21.000
Reference implementations if you're feeling so bold and if you have the ability. So a lot of people do this in GEH is fine, whatever.
00:36:21.000 --> 00:36:25.000
But we're seeing reference implementations for, you know, certain IPs being built in all of the.
00:36:25.000 --> 00:36:39.000
Clients simultaneously if you really want an EIP, I can tell you as someone who works on a client team, one of the most free ways to get me to promote your IP is building a implementation in Basu and telling me about it.
00:36:39.000 --> 00:36:50.000
So if you have a branch that has your code ready to go and tested, then I am gonna you know push for that because I think that's really awesome way to build community cool.
00:36:50.000 --> 00:37:05.000
This part isn't actually the last bullet point isn't actually as Key, but You in theory should be trying to shepherd it through delivery on the network upgrades into the final stages.
00:37:05.000 --> 00:37:14.000
That's not really on you after a certain point unless you are on a client team if you are not on a client team, you kind of once your EIP is included in a network upgrade.
00:37:14.000 --> 00:37:20.000
You can kind of wash your hands of it. Which is slam, but you know, you can come back and check on it and make sure.
00:37:20.000 --> 00:37:42.000
Be available to discuss it and the specifications and be available to do it. Or to update it in accordance with findings in testing but in reality you're you kind of just need to make your job is to get it included in a hard fork and then it's up to the client teams to find the right implementations and the right details and then working with them to get it into production basically.
00:37:42.000 --> 00:37:57.000
So we're gonna jump into a case study. And we are. I'm gonna quickly answer a question that came up like who decides the EIP number and you do as long as it's not an already chosen number.
00:37:57.000 --> 00:38:13.000
My understanding, at least this is how it has been for a while. This might have changed. I haven't seen any meta EIP on this is that the author gets to choose the number so long as it is not already chosen.
00:38:13.000 --> 00:38:32.000
And so it is kind of a first come first serve thing and I don't know the exact reason behind why 1559 was chosen for this one, but it is an exceedingly well.
00:38:32.000 --> 00:38:39.000
Let's just look at this quote here. This is humor, right? EIP, 1559 if ever implemented.
00:38:39.000 --> 00:38:45.000
Is arguably the most complex change since Genesis.
00:38:45.000 --> 00:38:55.000
Let's, what's the quick TLDR and what 1559 does, Matt.
00:38:55.000 --> 00:39:00.000
That I lose Matt?
00:39:00.000 --> 00:39:01.000
Okay. I might have lost that. Oh no, okay. Yeah.
00:39:01.000 --> 00:39:13.000
Sorry, I know I'm having another Not my connect. So a quick TLDR on 1559 is a change to the way that the fee market works in Ethereum.
00:39:13.000 --> 00:39:19.000
So, Ethereum has a fee market for block space. Currently I want a transaction included on chain, I have to pay for that privilege.
00:39:19.000 --> 00:39:37.000
And minors will include my transaction. In the next block. Or the block after that whatever it sits in the menpool yadda yadda there's kind of Excuse me.
00:39:37.000 --> 00:39:46.000
There is. This was a very different change to the way that Ethereum works, which is essentially a first come, highest offer auction.
00:39:46.000 --> 00:40:02.000
That did not scale well with capacity so what that is to say is that when In times of very high network congestion, gas prices would essentially just unboundedly increase, and not really have.
00:40:02.000 --> 00:40:09.000
Much rhyme or reason to what's happening. So, 1559 introduced new mechanisms, whereas whereas we.
00:40:09.000 --> 00:40:19.000
Dynamically raise and lower the gas fees on Ethereum in order to both encourage and discourage use of the network in times of congestion and in times of Nothing.
00:40:19.000 --> 00:40:26.000
So when the network is really, really. Open and there's tons of block space available.
00:40:26.000 --> 00:40:28.000
The fees will go way down. We've come very cheap and incentivized using Ethereum.
00:40:28.000 --> 00:40:47.000
When gas becomes very expensive because block space is very expensive because maybe there's some crazy NFT drop and someone is trying to reach out and find you know people are basically bidding up the gas options in order to get there make sure that our transactions are included in the next block.
00:40:47.000 --> 00:40:57.000
The base fee will increase in order to discourage that kind of behavior. Fine. There's also a tip mechanism, whereas you can.
00:40:57.000 --> 00:41:04.000
Basically tip on top of that base fee to really be sure that your transaction will be included. Cool.
00:41:04.000 --> 00:41:15.000
The EIP was contentious with a lot of different folks. Because 1559 changed the way that minors got paid.
00:41:15.000 --> 00:41:25.000
Instead of previously basically allowing for unbounded price increases, which would go to the miners in many instances as the as the gas options would increase.
00:41:25.000 --> 00:41:49.000
That means that minors kind of Can get more money in certain instances and 1559 would kind of change the way that they had their gas fees and it means that the block production would be differently like the rewards from block production would fluctuate in a way that would be less predictable and in some instances less profitable to these folks.
00:41:49.000 --> 00:42:10.000
So you have folks who, again, you had discussions starting as early as April, 2019 about this EAP and then you have people calling it humorous in 2021 you have websites cropping up called stop the IP 1559 with statements from mining pools on why they were not going to be supporting the IP, 1559, with statements from mining pools on why they were not going to be supporting the IP 15
00:42:10.000 --> 00:42:23.000
59 that website no longer exists but the funny part is that If you look in the Internet Archive link that I've provided in the slides, if you keep sliding the time over basically so like you start at the earliest point in time then you go farther over more of the mining pools moved from the opposition column to the supporting column.
00:42:23.000 --> 00:42:42.000
The reason being is because there was a huge push around the need for 1559 in etherium because network congestion was a problem but at the same time because of the supply The basically inflation problem of Ethereum.
00:42:42.000 --> 00:42:49.000
1559 also introduced something called the burn mechanism. So if you've heard of ultrasound money and you know all these other kind of memes around burning etherium this is why this happens and it's another kind of memes around burning etherium. This is why this happens.
00:42:49.000 --> 00:43:09.000
And it's another reason why over time that the kind of VIP was tweaked to be focusing less on the fee dynamics and more on the emission problem of Ethereum, which I think was a change in community sentiment that was.
00:43:09.000 --> 00:43:19.000
Notice by the authors and was basically taken advantage of to swing. Sentiment from the mining pools, which you know as regular users of Ethereum.
00:43:19.000 --> 00:43:20.000
We gotta be honest that we don't necessarily care what happens to the mining pools. Unless we participate in them.
00:43:20.000 --> 00:43:33.000
So, but users really do care about emissions and inflation. So if you're able to say, hey, you know, we're gonna remove some of the power of these miners.
00:43:33.000 --> 00:43:40.000
We're going to give users more flexibility and choice on how they're transactions are included and we're going to solve the theorems inflation problem.
00:43:40.000 --> 00:43:50.000
That is kind of a winning sales pitch that was able to move the needle on. This 4 year long EIP.
00:43:50.000 --> 00:43:55.000
To finally push it across the goal line in August of 2023. That date actually might be wrong.
00:43:55.000 --> 00:44:02.000
That's supposed to be August of 2022.
00:44:02.000 --> 00:44:03.000
And that's yeah, not a fact.
00:44:03.000 --> 00:44:16.000
Will change that in the, upload the slides. It was right before the merge, essentially.
00:44:16.000 --> 00:44:17.000
Let's go on.
00:44:17.000 --> 00:44:25.000
That, yeah. And then it went perfectly with the the merge so Let's so we're gonna get through the last few slides with our remaining time and then we'll just jump into questions.
00:44:25.000 --> 00:44:33.000
That kind of gives you a sense of just like how long the process could be, but there is this thing called Ethereum request for comment.
00:44:33.000 --> 00:44:48.000
Which is a type of standard track EIP and tends to actually be quite a bit. I don't wanna say necessarily faster, but it's they're generally a bit.
00:44:48.000 --> 00:44:54.000
Their complexity. 10 to be less. Is that a fair statement, Matt?
00:44:54.000 --> 00:44:55.000
Hmm
00:44:55.000 --> 00:45:02.000
They're complexity of implementation tends to be less. Their complexity might still be high, but in terms of implementing them.
00:45:02.000 --> 00:45:10.000
They tend to be implemented. At a faster clip, one might say.
00:45:10.000 --> 00:45:11.000
It always does.
00:45:11.000 --> 00:45:27.000
It depends, right? Because Yeah. I think that you're correct because they don't need they don't need a network upgrade to start adoption so I could put out an ERC today and I could have folks start implementing it immediately because I don't need to build on top of Ethereum protocol changes specifically.
00:45:27.000 --> 00:45:35.000
I think that's why ERCs can move a lot faster because you can put out a token standard that's like just awesome.
00:45:35.000 --> 00:45:40.000
And people can be like, yeah, this is a super awesome token standard. I'm gonna build on this right away.
00:45:40.000 --> 00:45:53.000
It will probably go through some phases of iteration. But at the same time, like their ERCs are a lot more of a collaborative community driven process because they're based around the application level community which is very different than the Kind of not very different, but is different than the core developer community.
00:45:53.000 --> 00:46:01.000
And that, you know, one shepherd's the protocol, the other builds on the protocol.
00:46:01.000 --> 00:46:12.000
Yeah, so it they're a little bit more flexible. If you look at the chart, there The line from idea to final is basically the same.
00:46:12.000 --> 00:46:19.000
And they're not really considered final as a network upgrade goes through, but for example, with ERC.
00:46:19.000 --> 00:46:24.000
20 tokens, it's considered final because folks are building and deploying them and their interrupt.
00:46:24.000 --> 00:46:39.000
It's an interoperability standard that's used in protocols. So the definition is a little dubious there, but I think that the ERC process is a lot more flexible because you don't need network upgrades to determine when and how things are shipped.
00:46:39.000 --> 00:46:50.000
So you can start iterating a lot more rapidly and you can build consensus a lot more rapidly with the community on these standards.
00:46:50.000 --> 00:46:56.000
And just to do a quick ERC case study that's super relevant. It would be account abstraction for 3 3 7.
00:46:56.000 --> 00:47:09.000
There actually are Quite a few other approaches out there if you click on the link. Here it will detail at least 3 other approaches including.
00:47:09.000 --> 00:47:10.000
A
00:47:10.000 --> 00:47:18.000
See 4 3 3 7 so can you just quickly walk us through. What, what's going on?
00:47:18.000 --> 00:47:22.000
Like what's going on with, with, with ERC 4 3 3 7.
00:47:22.000 --> 00:47:27.000
Yeah, absolutely. I'll be quick too. I'll try to do this in a few minutes so that we can leave plenty of time for questions.
00:47:27.000 --> 00:47:37.000
But yeah, the, as you might have heard, this is the account abstraction ERC that is collected the most steam it's based around kind of the notion of user operations versus traditional transactions.
00:47:37.000 --> 00:47:47.000
I'm not going to be breaking this down. It would take more than the 5 min that I want to give myself.
00:47:47.000 --> 00:47:55.000
But I encourage you to go read up on your receipt 4 through 7 and how it could bring Ethereum to the next 1 billion users.
00:47:55.000 --> 00:48:04.000
Cool. It's great. But in my opinion, this case study is very interesting is because we have,
00:48:04.000 --> 00:48:11.000
Like this was a huge kind of community action. And it shows how you can gain steam for an ERC.
00:48:11.000 --> 00:48:20.000
Because they have a little bit of personality, a lot of momentum, a lot of resources behind them and they solve the real problem.
00:48:20.000 --> 00:48:31.000
So the the reason I think 4 3 3 7 is interesting is because we have on the right hand side a screenshot from a 1,700 member telegram channel where folks are constantly sharing information.
00:48:31.000 --> 00:48:38.000
They're constantly sharing resources. They're sharing new products that they've built on top of 4 3 3 7.
00:48:38.000 --> 00:48:45.000
They're sharing open source code. They're fixing bugs, they're talking in person, and they're all building on the same application standard.
00:48:45.000 --> 00:48:52.000
So that took a while. It this this is it's you know, 1,700 members now, but it started off A lot, lot smaller.
00:48:52.000 --> 00:49:03.000
Even just last year, I remember there was only handful of folks in there. Great. This community consent coordination kind of community consensus layer.
00:49:03.000 --> 00:49:11.000
They also provide a GitHub with a ton of templated code that you can go steal, which is perfect for building on if you want somebody to build on your application, give them the tools to do so cheaply, easily and quickly.
00:49:11.000 --> 00:49:19.000
So that's exactly what they did. They got together. They built this really large telegram group.
00:49:19.000 --> 00:49:23.000
They started sharing code. They collected a bunch of. Resources and products and open source code that you can be used in your own products.
00:49:23.000 --> 00:49:35.000
They hosted, if you see, look at the picture on the bottom left hand side, they hosted meetups specifically in person for this kind of abstraction.
00:49:35.000 --> 00:49:58.000
Viewpoint so they're building you know in person networking around this they're trying to get a lot of different companies and groups on board so it's it's really more of a coordination on the kind of community consensus layer, often sometimes called layer 0 if you've heard that expression before around a cat abstraction and I think this is a good case study because it's it essentially has one the account
00:49:58.000 --> 00:50:09.000
abstraction. I don't wanna call it a war, but that, you know, there was a couple competing standards and this one is essentially come out on top and I think it's in part due to this kind of community coordination.
00:50:09.000 --> 00:50:20.000
And I think over time we will see it. Be tweets but it's it's mainly kind of one out here and yeah there's a link and also to a bunch to the graveyard of account abstraction.
00:50:20.000 --> 00:50:29.000
Eips and ERC is that attempted to solve the same problem. And I encourage you to go look and see why that is that they didn't make it through.
00:50:29.000 --> 00:50:33.000
But yeah, I think it's more in this in this perspective, it's if you build it, they will come kind of, ERC.
00:50:33.000 --> 00:50:50.000
And I think that the you know the folks that had come up with the initial implementation so you'll have and some other folks that are just like, ERC authors, they did a lot of the initial leg work they built.
00:50:50.000 --> 00:50:58.000
Code for other folks. They built client implementations, which is really cool. So some of the stuff required client changes.
00:50:58.000 --> 00:51:06.000
Anyway, they did all the hard work and it paid off beautifully for them and it will hopefully pay off very very soon for end users.
00:51:06.000 --> 00:51:13.000
Using anyone using an Ethereum wallet essentially will have their experience upgraded in the next year or so.
00:51:13.000 --> 00:51:24.000
Nice. There is one final IP at this time and that's roll up improvement proposals I think well it started maybe before that there was sort of a proposals.
00:51:24.000 --> 00:51:28.000
I think, well, it started maybe before that there was sort of a launch event at Devconnect, 2023.
00:51:28.000 --> 00:51:43.000
So in November, but we have no illustrative examples to share. So stay tuned. So, in November, but we have no illustrative examples to share.
00:51:43.000 --> 00:51:49.000
And just to cover office hours is on Friday. We'll talk about sort of the repos to follow and we'll talk a little bit about ERC.
00:51:49.000 --> 00:52:11.000
20 since that was like very foundational. One to sort of the token tokens that exist on a theorem today and in some ways establishing Ethereum as a
00:52:11.000 --> 00:52:16.000
Layer for settlement and cross chain settlement in particular. I think that's sort of something that we can talk about.
00:52:16.000 --> 00:52:24.000
And you can definitely submit your questions in advance to the link that, the core team has shared.
00:52:24.000 --> 00:52:37.000
But we'll just open it up with the remaining time. We have 5 min for any Q&A.
00:52:37.000 --> 00:52:42.000
Have you all been part of any EIPs?
00:52:42.000 --> 00:52:46.000
I've provided comment on a few. I am a recent addition to this world.
00:52:46.000 --> 00:52:57.000
Last year or 2, you're in change, but I've mostly provided feedback based on the perspective of my execution client team, base use team.
00:52:57.000 --> 00:53:04.000
So we you know, often times the client teams are asked to opine on existing APs and to provide feedback.
00:53:04.000 --> 00:53:11.000
So that's a lot of what I do. I'd love to start writing any IP, but I don't have any phenomenal ideas yet, so I'm waiting.
00:53:11.000 --> 00:53:15.000
If you have a great idea, come talk to me.
00:53:15.000 --> 00:53:27.000
This is lost to time, but I think a colleague of mine authored an EIP in the late 2,019, 2,020 era and
00:53:27.000 --> 00:53:39.000
I think at some point during COVID lockdown I put some comments through but honestly that part of my mind has evaporated and I would have to check it.
00:53:39.000 --> 00:53:46.000
But I do remember this EIP. And I remember who authored it and I can't remember the number.
00:53:46.000 --> 00:53:52.000
So, I think maybe but it has, it has been a little bit of time.
00:53:52.000 --> 00:54:09.000
I've been more on the receiving end. Working alongside those who to take the implementation of the EIP at the client level and understand how that's going to impact.
00:54:09.000 --> 00:54:23.000
Operations of of of a product and so probably the most involved. That I've been in understanding that and really breaking down the impact of EIPs.
00:54:23.000 --> 00:54:35.000
Was during the merge so there is almost a predecessor series to this that Matt was also a big part of where we did a webinar, an 8 part webinar series.
00:54:35.000 --> 00:54:43.000
Plus it was like 2 different webinar series that converged and went back out about the merge and how it's gonna impact different.
00:54:43.000 --> 00:54:58.000
Us like steakers. You know, DAP developers and we went into sort of the EIP changes and what that looked like.
00:54:58.000 --> 00:55:13.000
Any other questions folks we got 2 more minutes. I'm also happy to stay a little bit longer if we do have more questions.
00:55:13.000 --> 00:55:30.000
Any that are coming in through the form. We are. Charging for us to multitask.
00:55:30.000 --> 00:55:32.000
Awesome. I think we've.
00:55:32.000 --> 00:55:39.000
Yeah, I think we've dumped a lot of information on you, so maybe let that settle in.
00:55:39.000 --> 00:55:49.000
Make yourself a hot tea or coffee and let your subconscious sort through all of this. We'll be back together on Friday at the same time.
00:55:49.000 --> 00:56:06.000
To talk about. To do an office hours with like just a short little bit on ear c 20 and then really to answer more questions we're still arranging the guest speaker so as soon as we have that finalized, we will send that out and add it to the course schedule.
00:56:06.000 --> 00:56:10.000
But thanks everyone for attending today. We really appreciate it. And we'll see you on Friday.
00:56:10.000 --> 00:56:13.000
Or see you on a recording.
00:56:13.000 --> 00:56:20.000
Thanks
Office Hours
â–¼Office Hours Transcript
The following transcript was auto-generated, and may content syntactical errors.
00:00:02.000 --> 00:00:13.000
Hey everyone, welcome today is Friday December eighth. For some of you at NDP Saturday. I hope everyone's having a great end to their week.
00:00:13.000 --> 00:00:23.000
We're in week 2 office hours. So similar to week one office hours, what we'll do is we'll have about 15 to 20 min of.
00:00:23.000 --> 00:00:33.000
New material that we would kind of consider extension material material that you can review. And then just sort of bring up new.
00:00:33.000 --> 00:00:46.000
New topics and then, we have some discussion questions and we can just have a conversation. So, Yeah, that is gonna be the the schedule for today.
00:00:46.000 --> 00:00:57.000
Let's jump into it. So let's just take a step back and cover some of the things, the big topics that we covered in week.
00:00:57.000 --> 00:01:10.000
2. The first is that an EIP is They are the unit of governance. That we when we think about governance in Ethereum, the EIP.
00:01:10.000 --> 00:01:19.000
Is the unit of government governance. So we used a lot of terminology in this ecosystem about like blockchain.
00:01:19.000 --> 00:01:28.000
Primitives or web 3 primitives. And if you want to sort of take that analogy, you can almost say that the EIP is the governance primitive for Ethereum.
00:01:28.000 --> 00:01:33.000
You've seen a lot of other.
00:01:33.000 --> 00:01:51.000
Protocols actually adopt. A similar processes and to kind of take it back like you know there are improvement proposed there we're always improvement proposals for, The predecessor of a theory.
00:01:51.000 --> 00:02:00.000
And a chain that continues to have great value. The Bitcoin blockchain has, has BIPs.
00:02:00.000 --> 00:02:05.000
And so we have EIPs and as other protocols launch, you actually do see, them sort of modeling a similar.
00:02:05.000 --> 00:02:14.000
Improvement protocol. I was trying to chase down like what's the history of this like Sorry, improvement.
00:02:14.000 --> 00:02:23.000
Improvement proposal, not protocol. You know, just like What is the history of this in general?
00:02:23.000 --> 00:02:39.000
So far, my research, I'm hoping to peel back the onion a little bit more, is that this is something that has existed in some shape or form within open source communities for quite some time.
00:02:39.000 --> 00:02:49.000
But I'm gonna try and track down, you know, what is like sort of the the origin of the blank IP, where does it come from and how does that come about being?
00:02:49.000 --> 00:02:58.000
So if anyone does happen to know that, I think that would be a really interesting thing to talk about because it is related to the history of computing in general.
00:02:58.000 --> 00:03:09.000
Okay, so we talked about EIPs, the unit around which governance happens and Ethereum improvement proposals go through a process where it starts with an idea.
00:03:09.000 --> 00:03:20.000
And then it's gonna flow either to finalization. Stagation are being withdrawn and might hang out at different steps along the way.
00:03:20.000 --> 00:03:30.000
And we talked about how this process can be. Relatively fast, but it could also take quite a bit of time.
00:03:30.000 --> 00:03:38.000
And as Ethereum has become more complex and has had more dependencies, you can see where all of the
00:03:38.000 --> 00:03:58.000
Aspects of a change have to be considered become just like so much more complex in naturally lends itself to being quite a bit longer than the initial sort of Launch of Ethereum where it might have been quicker to make a change because there were less users of the network.
00:03:58.000 --> 00:04:10.000
There were less dependencies of L twos, L three's. I imagine that this will only get more complex as more value is.
00:04:10.000 --> 00:04:17.000
Stored on Ethereum or on L 2 chains. And I imagine that also the process will continue to evolve.
00:04:17.000 --> 00:04:35.000
To deal with this complexity. So it isn't easy to predict where. This will go, but I think what's interesting is that You can see how this process, even as it needs to undergo changes.
00:04:35.000 --> 00:04:44.000
Has the ability as it is today to shape itself to the growing complexity of. The Ethereum protocol.
00:04:44.000 --> 00:04:53.000
That's a pretty unique thing to be able to design. Such a process that given those changes.
00:04:53.000 --> 00:05:02.000
There is this sort of ability to. Naturally morph and become, sort of meet the moment, I would say.
00:05:02.000 --> 00:05:13.000
So I had promised that. We are going to do another ERC case study and I actually wanted to do one that is.
00:05:13.000 --> 00:05:17.000
In some ways, quite.
00:05:17.000 --> 00:05:29.000
Simple but also very profound. And when I say it's simple, what I mean is that the ERC, 20 token standard.
00:05:29.000 --> 00:05:40.000
Is very straightforward, right? It's implementing a standard application programming interface. For tokens within smart contracts.
00:05:40.000 --> 00:05:50.000
It's to provide basic functionalities to transfer tokens. As well as tokens to be approved so they can be spent by another on chain third party, right?
00:05:50.000 --> 00:05:56.000
So that was that's the actual description. If you go to EIP, 20, which is.
00:05:56.000 --> 00:06:03.000
We call ERC. 20 like that is the description. From the EIP.
00:06:03.000 --> 00:06:19.000
Dot com. And how this went into being was, you know, as we talked about, these ERCs being sort of a subset of core AIPs, not always requiring change to the protocols.
00:06:19.000 --> 00:06:30.000
They're probably the easiest way to think about this is the core implementation. So the open Zeppelin, like a core implementation that opens up on implementation.
00:06:30.000 --> 00:06:46.000
Consensus actually used to have an implementation as well that repository has been deprecated. So I've been linked it here, but if you are interested from just a historical perspective, seeing when we, I think we put that together in late 2015, early 2016.
00:06:46.000 --> 00:06:59.000
But as you know, this was proposed, I think. Do November nineteenth? 2015. The token transfer actually like Really?
00:06:59.000 --> 00:07:06.000
And so here we're opening up. Here is ERC. 20 dot soul. Solidity file.
00:07:06.000 --> 00:07:10.000
These are the opens up on contracts. I'm going to the GitHub repo.
00:07:10.000 --> 00:07:17.000
There's actually a much. More, I think, you know, because this course is kind of geared towards.
00:07:17.000 --> 00:07:25.000
There's a lot of folks who have maybe already taken the developer boot camp. You're actually probably quite familiar with this token center.
00:07:25.000 --> 00:07:33.000
You may even used it in your. In your project, but we're looking at it from a different way.
00:07:33.000 --> 00:07:38.000
I think at the time we're just looking about, oh, okay, cool. We could implement.
00:07:38.000 --> 00:07:52.000
That certain functions. That allow us to transfer tokens from one address to another address, right? And That.
00:07:52.000 --> 00:08:10.000
Was not something. That was. Originally, there while there was the transfer. Of that was immediately put in there as an opcode, there wasn't a token transfer operational code within Ethereum.
00:08:10.000 --> 00:08:18.000
So in order to enable that, within a smart contract that actually had to be written.
00:08:18.000 --> 00:08:28.000
Logic that transfers a token. From one address to another address. And then this also approved function that says.
00:08:28.000 --> 00:08:38.000
We can use the opcode that underpins message dot sender. To actually give another person.
00:08:38.000 --> 00:08:49.000
Another address, another person necessarily, the ability to transfer a token. And this has become. Literally foundational.
00:08:49.000 --> 00:09:02.000
To many of the applications. That we have built upon. Ethereum. So I just provide 2 examples is non-inclusive, but I think they're ones that.
00:09:02.000 --> 00:09:10.000
People probably know a lot about. Circles stable coin USDC. Makers die, these are stable coins.
00:09:10.000 --> 00:09:18.000
These tokens are minted. Based off of a supply of reserves that are held that like back these coins.
00:09:18.000 --> 00:09:28.000
I think D is now become like an algorithmic stable coin. Don't quote me on that.
00:09:28.000 --> 00:09:41.000
USDC is still like a reserved back stable coin and these are being created. And they are literally the ERC, 20 token standard.
00:09:41.000 --> 00:09:50.000
That they're using that to actually build these. To create and transfer. These, these tokens.
00:09:50.000 --> 00:09:59.000
This is very interesting code to read because there's a facility 0 point 4 back when we had to use the safe math.
00:09:59.000 --> 00:10:03.000
Library, which nowadays
00:10:03.000 --> 00:10:18.000
I think it was with Solidity, 0 point 8 that that. That the sort of issues that safe math solved were baked into solidity itself, but you can see that there's our ability to mint tokens.
00:10:18.000 --> 00:10:27.000
And this is all written in here and burn token. So this is like the first time. That this sort of functionality.
00:10:27.000 --> 00:10:38.000
Was built in order to allow for many of the things that we take for granted. For example, swap based applications like Uniswap, which is an AMM for ERC.
00:10:38.000 --> 00:10:44.000
Generally, but you can think about it more broadly, other tokens that. Up that adhere to.
00:10:44.000 --> 00:11:06.000
Some sort of variation of the ERC token standard. I picked this case study to talk about because it really gives you a sense of just how foundational the EIP and by extension the ERC processes into building the Ethereum that we have today, right?
00:11:06.000 --> 00:11:20.000
So. I know when we walk through our case studies. On Wednesday, it may have seemed. A little bit.
00:11:20.000 --> 00:11:25.000
Not pie in the sky, but it may have seen like, oh, this is, you know, I get it and 1559.
00:11:25.000 --> 00:11:30.000
I understand there's a lot of talk about that, but I think the ERC, 20 case study.
00:11:30.000 --> 00:11:37.000
Gives you a sense that like The Ethereum that you want to see exist is is governed by the EIP process.
00:11:37.000 --> 00:11:51.000
And so if there's certain functionality in Ethereum, that you want to create. You have to participate in this process in order to have these.
00:11:51.000 --> 00:12:05.000
Standards be baked into the protocol. So I think that sort of brings us to 3. Discussion questions, but we can open it up to more questions, comments, and thoughts.
00:12:05.000 --> 00:12:12.000
The 3 that I kinda had and I put these in our discord were given the high amount of shepherding required to get an EIP from draft to final.
00:12:12.000 --> 00:12:19.000
What are some organizations that we mentioned in week one that can help in EIP, author, craft their idea and build community around that idea.
00:12:19.000 --> 00:12:29.000
Second one is what are some issues you see that could cause an EIP to fall into stagnant status based on the EIPs that we shared with you, how do you think these EIPs avoided that fate?
00:12:29.000 --> 00:12:31.000
And 3, what would you do to make the IP process run faster? What tradeoffs would need to be made if you made these changes?
00:12:31.000 --> 00:12:38.000
So I'll leave this up and now what I'd love to do, you know, we've talked for nearing definitely for 15 min.
00:12:38.000 --> 00:12:44.000
So, would love to open up to any questions that people have on the materials. So would love to open up to any questions that people have on the materials from the first week and we can jump in there.
00:12:44.000 --> 00:13:03.000
I believe there was also a I think There some also some.
00:13:03.000 --> 00:13:08.000
There is not a shared.
00:13:08.000 --> 00:13:34.000
Form so just feel free to go ahead come off mute if you have a question that you want to ask.
00:13:34.000 --> 00:13:47.000
Okay, well those questions ruminate in focus is head. I'll kind of jump into I think we all have a sense of question one.
00:13:47.000 --> 00:13:55.000
You know, obviously we brought in Ethereum cat herders. So I kind of want to jump into question 2.
00:13:55.000 --> 00:14:03.000
How ways that I've seen, the IPs fall into a stagnant status. Is that?
00:14:03.000 --> 00:14:15.000
The EIP no longer addresses. Problem that the community thinks needs to be solved.
00:14:15.000 --> 00:14:25.000
It doesn't mean that it isn't a problem. But if it's a problem that the community does not see think needs to be solved.
00:14:25.000 --> 00:14:35.000
And. Even if they do think it needs to be solved. But there isn't a clear. Clearly articulated pathway.
00:14:35.000 --> 00:14:47.000
Towards solving that. Without. Reducing the risk of major trade offs. That's how EIPs fall into a stagnant status.
00:14:47.000 --> 00:14:53.000
That's not like a universal rule. There's some other reasons why. There's many reasons why.
00:14:53.000 --> 00:15:09.000
But an EIP. Is most likely to avoid that fate if they're one they're topical like they may not move to final But if it is a topical EIP that people are willing to.
00:15:09.000 --> 00:15:25.000
Debate and talk about. It will be a living EIP. Matt had mentioned EIP, 1559 and how long it had gone on in sort of living like review living status moving back and forth.
00:15:25.000 --> 00:15:40.000
The constant back and forth. That one. Was able to do that because it really was. A critical question that the theorem as a community was trying to answer.
00:15:40.000 --> 00:15:47.000
And therefore it stayed topical, it stayed relevant. I think what we're seeing with what we're going to talk about next week when we zoom in on.
00:15:47.000 --> 00:15:59.000
The one of the EIPs in the Denkun upgrade. Which is EIP 4.
00:15:59.000 --> 00:16:06.000
8 4 4 proto dank sharding That will. And it actually has like a longer name.
00:16:06.000 --> 00:16:18.000
It kind of is proto dang sharding, but. That solves a problem. That Ethereum is faced for a while with the increasing state.
00:16:18.000 --> 00:16:29.000
That is required to support Ethereum and challenges. And being able to get more transaction throughput. Specifically using .
00:16:29.000 --> 00:16:48.000
So, you know, being able to write like write and store data on the theorem blockchain and being able to deal with the increasing size of the state, perdog starting attempts to put a pathway towards solving that over time.
00:16:48.000 --> 00:16:51.000
And that is.
00:16:51.000 --> 00:17:04.000
Why it's so relevant why it's talked about when you run into a proposal that is trying to bring something that just doesn't resonate with the community as like a key issue to solve.
00:17:04.000 --> 00:17:11.000
Are and it's not easy to see how it could be solved. You're gonna lose.
00:17:11.000 --> 00:17:22.000
In the limited attention economy that exists. So the EIP process is not immune to. Folks losing attention, not feeling that's like that's a problem that need need to address.
00:17:22.000 --> 00:17:37.000
Those things could fall by the wayside. So when you think about If we're saying from like an optimistic standpoint, if we're trying to shepherd an EIP through, it's really thinking about, hey, am I solving a problem?
00:17:37.000 --> 00:17:46.000
Is this a relevant problem and how can I articulate a way that this can be done in manage the complexity.
00:17:46.000 --> 00:18:01.000
Being able to hold that attention and keep that message going and plot out those solutions is gonna be key to push to moving the EIP forward in getting groups of people to help.
00:18:01.000 --> 00:18:12.000
Any IP author determine how they would implement this EIP, what the reference implementation is. Becomes really key to.
00:18:12.000 --> 00:18:27.000
Build a group of people who are willing to help. Move the process along as Matt was saying. Last week So that's kind of my answer, but if anyone else has any thoughts, you're welcome to share them.
00:18:27.000 --> 00:18:37.000
Would love to hear what folks think about. Could be done to make the EIP process run faster because this is literally something that at any given time.
00:18:37.000 --> 00:18:46.000
The community is sort of thinking about. How do we do this more efficiently? And maybe faster isn't the best word to say, but how do we do this in a more efficient way?
00:18:46.000 --> 00:18:52.000
Is it, you know, one of the discussion questions we had we want is it possible for anyone to know everything about Ethereum?
00:18:52.000 --> 00:19:09.000
Would love to hear if folks have some thoughts or some Questions about why the process runs away it does so we'll open it up to questions.
00:19:09.000 --> 00:19:26.000
Yeah, not so much. Question is a comment. It seems like Ethereum is so complicated and hard to know that Just consequences of any change, you know, how long would it take to figure, you know, All the downstream, you know.
00:19:26.000 --> 00:19:30.000
Kind of issues that could come up.
00:19:30.000 --> 00:19:34.000
Great question. That is a question. How long would it take to know the downstream issues that would come up?
00:19:34.000 --> 00:19:39.000
Alright.
00:19:39.000 --> 00:19:49.000
They're actually is a way of testing this. And so I'll give you the quick TLDR.
00:19:49.000 --> 00:19:57.000
And then we'll actually go into the process of how this is tested. So for Den Coon, how we are testing this.
00:19:57.000 --> 00:20:10.000
Is through what are called Dev Nets. In the merge there were shadow forks essentially You take existing.
00:20:10.000 --> 00:20:18.000
Ethereum clients. And you apply the change and you create a network that isn't the main network.
00:20:18.000 --> 00:20:22.000
And you run.
00:20:22.000 --> 00:20:33.000
You fork the current network and you run code on it. That ends up giving you a sense of whether those changes, how those changes actually.
00:20:33.000 --> 00:20:54.000
Workout. So Well, we'll get into the deep. Fundamental. We will spend an hour about how that works and that actually is part of the final, like the developer track for the for the project-based learning in this course is like if you're on the developer track you will deploy a smart contract to a, you will deploy a smart contract to a Devnet.
00:20:54.000 --> 00:21:11.000
Or to a test net, that is how we know things operate as. As they should right you you're deploying something and you're saying okay given that we have this forked version of Ethereum where we've implemented these changes.
00:21:11.000 --> 00:21:17.000
If we're going to try and use For example, Uniswap, does it work as anticipated or not?
00:21:17.000 --> 00:21:23.000
And then basically you see that and if there is something that doesn't work as anticipated, that's where.
00:21:23.000 --> 00:21:28.000
There's an evaluation done of like, okay, why isn't it working? Why might that have happened?
00:21:28.000 --> 00:21:35.000
And you actually have to do this for every single Ethereum client. So, and ideally with the merge we had to do with every single Ethereum and CL client combo.
00:21:35.000 --> 00:21:57.000
So there were many, many basically like shadow forks that were done where the merge was done And then there was, what I would call like game days that were done where Literally the test net girly underwent the merch, right?
00:21:57.000 --> 00:22:18.000
It like it actually underwent the merged. So that is how we're able to test all this out It requires though a whole lot of work of actually implementing these changes in a version of every Ethereum client and then taking the chain in in creating that.
00:22:18.000 --> 00:22:25.000
Alternate version of it and seeing how it plays out. It's a lot of work the coordination around that.
00:22:25.000 --> 00:22:43.000
There's actually calls around like Devnet coordination, but That is how it's done. It's to actually simulate what it what it would be like at a certain scale in the participation of community is key because the more
00:22:43.000 --> 00:22:55.000
Signal that you get from that the more people participating doing something it is basically more inputs to test whether those assumptions were correct.
00:22:55.000 --> 00:23:05.000
I think we're on Devnet 9 now for the Dev Coon upgrade. So if that gives you a sense of like how many times they've gone through of like Thank you.
00:23:05.000 --> 00:23:16.000
Them clients have technically been ready in terms of applying the EIPs. But have they, but they need to prove out that they all like are able to work in.
00:23:16.000 --> 00:23:23.000
In this situation. So that's how we do it. And that's why you've we've seen you know, Den Coon move from like a launch date probably at the end of this year to moving into 2024 because there needs to be more data collected.
00:23:23.000 --> 00:23:44.000
So that's a great question. I just giving you sort of like the utopian high level view of how that works, but we actually, though all of week 6 will be about like, how that's coordinated, how that spun up, because it's critical.
00:23:44.000 --> 00:23:55.000
It's. Critical to actually making, sure that there won't be major issues when, a upgrade goes live.
00:23:55.000 --> 00:24:00.000
So what's the merge guarantee because of all the testing?
00:24:00.000 --> 00:24:04.000
The merge was.
00:24:04.000 --> 00:24:21.000
Never guaranteed. But the testing. Made the probability so high. That it was going to be.
00:24:21.000 --> 00:24:31.000
6. That there was a lot of confidence going into the merge now. You know, at that time, I was.
00:24:31.000 --> 00:24:39.000
Prog managing the Ethereum API for, so yes, during the merge was like constantly just sending.
00:24:39.000 --> 00:24:48.000
API requests to our endpoints. And being like, you know, like even though we knew everything we had done, everything everyone done.
00:24:48.000 --> 00:24:59.000
I was still Oh, almost overwhelmed by how Smoothly it went. So.
00:24:59.000 --> 00:25:01.000
I think. That wasn't guaranteed. I think that it went as smoothly as it was.
00:25:01.000 --> 00:25:19.000
And I think all of the testing got it to that point of They're just being so. It was so battle tested at that point.
00:25:19.000 --> 00:25:28.000
That the likelihood of it. Failing would if it was like really driven by like these huge outside externalities.
00:25:28.000 --> 00:25:37.000
That might not have been able to like reduce risk-wise. I think there were just so many people that had touched.
00:25:37.000 --> 00:25:46.000
The merge. While it definitely slowed things down, you know, it took years to get to the merge.
00:25:46.000 --> 00:25:57.000
It there were benefits in that like it you know it largely the things that have gone in with the merge have To my knowledge, they've they've all worked.
00:25:57.000 --> 00:26:10.000
They've all stood up, including like, you know, I think there was a loss of finality that happened on main net twice in May and that was actually designed as part of the protocol.
00:26:10.000 --> 00:26:26.000
To have that sort of like, hey, if we can't sync. You don't have finality, but blocks still get created and then eventually finality goes in and that was like a huge Almost proof point of like, hey, these These, I don't wanna call, but these like.
00:26:26.000 --> 00:26:39.000
Things baked into the protocol that deal with these edge case situations like they worked under pressure. We had a loss of finale for a few hours, but then those box are finalized, new blocks are being created.
00:26:39.000 --> 00:26:50.000
So I think the more you test. Good morning, the more you find out, it doesn't guarantee your success, but it gives you more ability to.
00:26:50.000 --> 00:27:01.000
Sort of react to what the problems will be. So testing is very important and very good. And it's also very hard to do well.
00:27:01.000 --> 00:27:07.000
How about something EIP, 1559, that's the burn. Eip.
00:27:07.000 --> 00:27:15.000
It is. . EIP is probably the easiest is the nice little like Tag line, but, yeah, there's
00:27:15.000 --> 00:27:21.000
Right, but that's the one that involves the burning of in all transactions. Is that correct or?
00:27:21.000 --> 00:27:29.000
And then there's like a tipping element as well. So let's just go to all.
00:27:29.000 --> 00:27:37.000
And we'll just control F. To 1559. Just so we can jump into it. So.
00:27:37.000 --> 00:27:50.000
It's described as a fee market change for 1.0 chain. This is kind of reflects our how we talked about stuff at the time.
00:27:50.000 --> 00:27:56.000
Great people on this EIP. You can see just every EIP has it requires like basically what ones that have to happen.
00:27:56.000 --> 00:28:06.000
It was a standard Track EIP. And basically, yeah, a transaction pricing mechanism that fixed per block network feed that is burned.
00:28:06.000 --> 00:28:20.000
And it dynamically expands and contracts block sizes to deal with. Transient congestion basically like it's able to.
00:28:20.000 --> 00:28:26.000
Do that sort of burn and deal with the variability in a network usage.
00:28:26.000 --> 00:28:30.000
Yeah, so, you know, kind of pulling back. You know, that I guess I, you know, makes it deflationary.
00:28:30.000 --> 00:28:49.000
You know, without testing, without anything, what does that look like in 20 years? I mean, do we know, you know, when we, when an EIP like this is proposed, like, What are the consequences of deflationary?
00:28:49.000 --> 00:28:52.000
Currency? Yeah.
00:28:52.000 --> 00:28:57.000
Yeah. So.
00:28:57.000 --> 00:29:03.000
What?
00:29:03.000 --> 00:29:16.000
Is good is that You're. Able to because of like the
00:29:16.000 --> 00:29:23.000
Because of the way the EIP is written, one can. Actually model that out, I think over time.
00:29:23.000 --> 00:29:29.000
So. If your question, I think this one can't.
00:29:29.000 --> 00:29:34.000
Maybe we can change the timeframe. But like you can see since the merge, how much was.
00:29:34.000 --> 00:29:48.000
I don't know if we can go. Going forward, but It is possible to. Actually plot out, I think, what what the expectation would be.
00:29:48.000 --> 00:30:03.000
In terms of the supply growth. And per year. So it looks like we're kind of. You know, this is this is where we're at.
00:30:03.000 --> 00:30:10.000
Now we'd be modeling this out. As you're saying like given the current
00:30:10.000 --> 00:30:18.000
Conditions that we have. And so. As other EIPs are being introduced, this could change, right?
00:30:18.000 --> 00:30:30.000
Depending if like certain elements, certain aspects about Ethereum change. The supply change could go up or down because it might impact the factors that go into this.
00:30:30.000 --> 00:30:44.000
And so I think that kind of opens up another question that I'm seeing in the chat. Goes into it nicely with many auxiliary teams helping analyze and test the proposals, is it possible to send a change to production that causes problems?
00:30:44.000 --> 00:31:01.000
Did any proposal have to be rolled back? That I know of. None like immediately comes to mind that doesn't mean that there hasn't been, but what I do know that happens is that changes to a theorem clients that are implementing the proposal.
00:31:01.000 --> 00:31:10.000
Have had to be rolled back because they've introduced a issue with the Ethereum client and it's not having the behavior as.
00:31:10.000 --> 00:31:22.000
Expected. So what I mean by that is because each Ethereum client team has to take the Yeah, EIPs and translate them into code.
00:31:22.000 --> 00:31:32.000
And that's why we ask for like as part of the IP if you can write a reference implementation it really helps because it helps the client teams actually put those in.
00:31:32.000 --> 00:31:46.000
It has been where some client teams have put in something and then because of certain other updates, you know, because sometimes there can be,
00:31:46.000 --> 00:31:56.000
There could be interactions that occur with like upgrading something else or swapping out a database that could result in some sort of issue.
00:31:56.000 --> 00:32:04.000
And so I have seen Ethereum clients have to like roll back to a prior version of the client until they're able to.
00:32:04.000 --> 00:32:10.000
Implement a change successfully. Now most of the time that's done in like sort of the Devnet.
00:32:10.000 --> 00:32:18.000
Side of things or in a shadow hard fork, but there are times when in the run up to.
00:32:18.000 --> 00:32:26.000
A an Ethereum upgrade. So in the run up to an Ethereum upgrade, Client teams may have said, okay, we're gonna put in these changes over time.
00:32:26.000 --> 00:32:35.000
Slowly and then like when, for example, the merge happens, then they'll go live.
00:32:35.000 --> 00:32:41.000
But they've already put them in and then that actually causes an issue or a regression to the software and causes it.
00:32:41.000 --> 00:33:04.000
So it's like, oh, sinking is now off. And I've seen client teams have to roll those back and address those and there was a couple, I mean, some, there was some sort of nervous moments and I would say August before the merge as a lot of those changes were rolling out and there were some client teams that ran into certain issues.
00:33:04.000 --> 00:33:12.000
And they had to like roll back and if you had already upgraded it might have caused a problem with like state.
00:33:12.000 --> 00:33:19.000
And so, It's always good to find out those in advance, but I know that like there was.
00:33:19.000 --> 00:33:29.000
Some tense moments for me in in August that of 2022 that was like really thinking about like, okay.
00:33:29.000 --> 00:33:39.000
What is our what is our plan if there's some sort of like. Issue in in one of the clients.
00:33:39.000 --> 00:33:49.000
So. I haven't seen an EIP have to be like roll back. However, there is and a very interesting EIP.
00:33:49.000 --> 00:34:12.000
That. You will see here that we. Don't really We don't really talk about in this class because We.
00:34:12.000 --> 00:34:20.000
Are kind of just focused on like going forward but I think I did find it. That was it.
00:34:20.000 --> 00:34:30.000
It is. The Dow hard fork and So when.
00:34:30.000 --> 00:34:34.000
The
00:34:34.000 --> 00:34:50.000
I believe this is the one.
00:34:50.000 --> 00:35:02.000
It basically is like a change that is like change this stuff. You know, you're kind of seeing like
00:35:02.000 --> 00:35:13.000
If this is even the The one that I want.
00:35:13.000 --> 00:35:22.000
I'll have to find this because I am, but basically we've had hard forks around the Dao.
00:35:22.000 --> 00:35:33.000
Are an upgrade that happened around like the Dow. The Dow Hack that There is like a pretty big change, obviously, to.
00:35:33.000 --> 00:35:42.000
Ethereum to revert to a different state. So I think that's like the closest thing.
00:35:42.000 --> 00:35:49.000
Well, it wasn't like a proposal that rolled back. It was like a a change that was literally a rollback.
00:35:49.000 --> 00:35:56.000
Of a theory, to a different state in time and caused a split between Ethereum and Ethereum classic.
00:35:56.000 --> 00:36:13.000
So that's probably the best one that that example that I can give. That that comes to mind for me.
00:36:13.000 --> 00:36:18.000
And.
00:36:18.000 --> 00:36:32.000
Yeah, so obviously this like the The EIP registries is super. Super interesting and if we go to our We can see all of our ones that our.
00:36:32.000 --> 00:36:38.000
You know, become tiers 721, the non-fungible token standard.
00:36:38.000 --> 00:36:53.000
You can see there's many other token standards. That now exist, but a lot of the things that we kind of take for granted or have been talked about.
00:36:53.000 --> 00:37:02.000
You can see I'm all all in here. It's really cool. It's almost like a hit like a like a history of.
00:37:02.000 --> 00:37:10.000
Of Ethereum and the idea is that that have gone into practice and others that are kind of now.
00:37:10.000 --> 00:37:19.000
In a in his status of not being worked on, but they're, you know, they, they added.
00:37:19.000 --> 00:37:22.000
To what we what we know about how we're going to run the protocol and they were debated.
00:37:22.000 --> 00:37:37.000
So it's really, really interesting. One of the last things that I'll say It's always good to go under review and draft and kind of see what are the things that are currently like being worked on.
00:37:37.000 --> 00:37:48.000
And that people are debating and in coming up with. Because this really gives you a view of like what's coming up next.
00:37:48.000 --> 00:38:01.000
Here's EIP 6 8 0 0 Ethereum state using a unified vertical tree This introduces a new vertical state tree along try along the existing MPT.
00:38:01.000 --> 00:38:10.000
Pretty interesting. So we're gonna introduce a vertical state tree alongside the, the Merkel Patricia tree.
00:38:10.000 --> 00:38:25.000
And this will be. How we will transition it. Exclusively to Verkal Tree. So this At some point in the future, this is gonna be a EIP that will be quite debated.
00:38:25.000 --> 00:38:30.000
And it's part of sort of a italics articulation of. The Ethereum roadmap.
00:38:30.000 --> 00:38:38.000
You can see there's a lot of really interesting things in here.
00:38:38.000 --> 00:38:46.000
Cool. Okay, before we as we kind of get towards the end of this session just a couple of things guest speakers still to be announced.
00:38:46.000 --> 00:38:56.000
We're coordinating. So it is possible we may sort of double up for week 3 with 2 guest speakers just given some scheduling.
00:38:56.000 --> 00:39:04.000
But we're trying to give you. Yeah, a guest speaker at least for each week and maybe a bonus one as well.
00:39:04.000 --> 00:39:09.000
And so, yeah, as soon as you have that, will add it and we'll send it out.
00:39:09.000 --> 00:39:20.000
And, this recording in the deck, I did not get a chance to post this deck beforehand, but I will post it alongside the recording.
00:39:20.000 --> 00:39:25.000
Okay, we've still got about 15 min left, so if there's any other Q&A that folks have, feel free to jump in.
00:39:25.000 --> 00:39:47.000
So pause there and then kinda. See what happens and if not we'll wrap it up.
00:39:47.000 --> 00:40:00.000
Take everyone's silence as a feeling of deep contemplation and thus will let you all Depart for your weekend, I hope.
00:40:00.000 --> 00:40:09.000
You have a great weekend and we're excited to see you back speak 3. We're going to be diving in to EIP 4 8 4 4.
00:40:09.000 --> 00:40:21.000
Proto I'll put up real quick just so you can.
00:40:21.000 --> 00:40:32.000
Proto. Yes, I should just type in. 4 8 4 Chart blob transactions. That's why it's not called per dexterity.
00:40:32.000 --> 00:40:37.000
That is the name I refer to. So we'll be going deep into this. This will, this is.
00:40:37.000 --> 00:40:42.000
Going to be part of the Denkun upgrade. So much to talk about. As you can see, there's a lot here.
00:40:42.000 --> 00:40:53.000
AlrightYup
Guest Speaker
Mikhail Kalinin - Principal Researcher, Consensys
Twitter: @mkalinin2
Supplemental Resources
Proceeds from collectibles editions of this post will be distributed as follows:
100% to Education DAO Optimism Treasury (0xbB2aC298f247e1FB5Fc3c4Fa40A92462a7FAAB85)
![highlight](/api/highlight?text=Understanding%20Ethereum%20Network%20Upgrades%3A%20Lecture%202&author=Wiki%20of%20Web3&url=%40education-dao&avatarUrl=https%3A%2F%2Fstorage.googleapis.com%2Fpapyrus_images%2F0d52faf4f06b6f12a70a766642132c91.png&featuredImageUrl=https%3A%2F%2Fstorage.googleapis.com%2Fpapyrus_images%2F1315e6db68453892a8644dc7ea548ff0.png&size=512)
![Wiki of Web3 logo](/_next/image?url=https%3A%2F%2Fstorage.googleapis.com%2Fpapyrus_images%2F0d52faf4f06b6f12a70a766642132c91.png&w=384&q=75)