Ethereum Protocol Fellowship (EPF) Cohort 7 — Applications open until May 13

Transcript

00:07:13
Maria Silva:Okay, so I don't see more people coming, so I think we can… we can start.
00:07:21
Maria Silva:So this is the agenda for today.
00:07:26
Maria Silva:And we'll start, by discussing, 2780, so reduce intrinsic transaction costs, and, Guru will, give us an update on the status of, the specs and test implementation.
00:07:42
Maria Silva:Guru, if you want, the floor is yours.
00:07:45
Guru:Yeah, thanks, Maria. Yeah, so on EIP2780, on the specs and test side, we've got a draft implementation, and some basic tests already written. So, where we are right now is,
00:08:03
Guru:There are some interactions with… so basically the current implementation is likely to break some of the legacy tests, particularly those around 7702 and 7928, the BALS tests. So, we need to kind of fix those before we kind of can make any test release, but that's kind of a…
00:08:24
Guru:A lot of tests that we need to fix, so,
00:08:29
Guru:it would be good to kind of clarify how these interactions… there are some interaction points which I don't think are fully clear from the EIP document. So, ideally, we want to make these test fixes once, not having to go back and forth and, like, keep fixing them again and again.
00:08:48
Guru:So I have raised kind of a PR to the EIP's repository to attempt to clarify this, or at least, like, start a discussion on some of these interactions.
00:08:59
Guru:And once those are clear, we can fix those tests and potentially look at making a release.
00:09:05
Guru:But the EIP2780 specific tests are already in the draft PR, so on that front, we are pretty good to go.
00:09:15
Guru:I can also link to the PR if necessary. This is the PR from the EIPs repo.
00:09:28
Maria Silva:Do you have any comments?
00:09:30
Ben Adams:I, it also needs the addition of the log prices from EIP 7708.
00:09:42
Ben Adams:Because they're currently free.
00:09:45
Ben Adams:However, the… the assumption there is because the gas prices of an ETH transfer are so ridiculously high.
00:09:53
Ben Adams:the logs can be free. But since we're bringing down that cost massively.
00:09:59
Ben Adams:We should add the log prices on.
00:10:06
Ben Adams:Since, yeah, since essentially the EIP's saying, you know, pay for the… pay for the actual costs, and break it all down.
00:10:13
Ben Adams:And they should be included.
00:10:16
Maria Silva:Yeah, that's, that's a good point. Do you think you could add a PR to include them, or,
00:10:25
Ben Adams:I can… I can… I can follow up with.
00:10:31
Maria Silva:Yeah, that would be great. Cool. Any more comments for Guru? So, I think he linked the PR, I'll urge everyone to review and see if you find any issues there.
00:10:45
Maria Silva:Yeah, I linked a few people already to… with some questions, for the Go Guru.
00:10:53
Guru:Yeah, just a quick point, I think this would be for, Tony, if he's on the call, regarding BALs, I think account access kind of becomes cheaper if you're, attempting to access only EOAs here. So, if he wants to take a look, if there are any, like, implications on that for the…
00:11:15
Guru:For the BALS… BALS size, in particular.
00:11:18
Toni Wahrstätter:This is interesting, yeah? How much cheaper will it get? So today, it's…
00:11:22
Toni Wahrstätter:2,400, that's the cheapest you can access an account. How much cheaper will it get?
00:11:28
Guru:So if you're attempting to access a cold UA, the charge is $500.
00:11:35
Guru:So you're essentially… 25%.
00:11:43
Maria Silva:An important, an important point there is this value may also be updated after we have the numbers for the State Access EIP, so AAA38, so it's possible that it will increase a little bit.
00:11:59
Maria Silva:But still, it should… will likely be a reduction anyways,
00:12:06
Maria Silva:Due to just, benchmarking out
00:12:09
Maria Silva:the benchmarking results we've been seeing from ETH transfers benchmarks.
00:12:14
Maria Silva:But yeah, so it's something we need to think about.
00:12:24
Ben Adams:What's… what's the interaction there?
00:12:28
Ben Adams:How does it affect Bell?
00:12:31
Toni Wahrstätter:It might affect the worst-case bottle size.
00:12:35
Toni Wahrstätter:So this is one of the things, and yeah.
00:12:40
Toni Wahrstätter:There's also currently some discussion around how to
00:12:43
Toni Wahrstätter:quickly invalidate BALS, which also uses,
00:12:47
Toni Wahrstätter:Currently, the 2,000 gas, because that's the cheapest you can access.
00:12:52
Toni Wahrstätter:Storage key slash account.
00:12:55
Toni Wahrstätter:But this sounds like it will be reduced to 500 then.
00:13:14
Maria Silva:What are the… what are the next steps there, Guru? Do you want, Tony to just, have a look again and comment, on your PR?
00:13:26
Guru:Yeah, so, I mean, that's not a blocker, per se. The next blocker would be to kind of agree on how we want to handle, yes, the 7702.
00:13:38
Guru:gas charge and, like, the points that I've raised in the PR. Once we have clarity on how, the final, clarity on how we want to handle those, I can go back and fix the 7702 and 7928, tests that are currently being broken by these changes.
00:13:57
Guru:And, that kind of gives us a good test suite, too.
00:14:01
Guru:To possibly make a release.
00:14:05
Ben Adams:Yeah, I think… I think you're correct on that additional charge, because you have to…
00:14:19
Guru:Yeah, so ideally, just to summarize, the next step would be to get this PR clarified and merged, and then I can proceed to take that result and update my implementation and fix the breaking tests.
00:14:37
Maria Silva:Sounds good. So I, I would ask, so I already gave, a quick read and added, so I pinged you, Tony, and Ben, so if you could just go there and just,
00:14:49
Maria Silva:do a thumbs up, or something like this, just to make sure that everything looks good, then I can approve it.
00:14:55
Maria Silva:And you can leave my shots. Sounds good.
00:15:06
Maria Silva:Perfect. Anything else we should discuss regarding the transfers EIP?
00:15:11
Maria Silva:Or should we move to the next point?
00:15:21
Toni Wahrstätter:Yeah, maybe just to add to that, so intuitively, this…
00:15:26
Toni Wahrstätter:tells me that the BALS size will probably increase quite dramatically, right? Because if we…
00:15:33
Toni Wahrstätter:Quarter, basically, the cost of accessing an account.
00:15:39
Toni Wahrstätter:Right now, of course, the storage keys are the main contributor to the file size.
00:15:44
Toni Wahrstätter:But then I would also assume we have to look into, okay, We lower it
00:15:50
Toni Wahrstätter:To a level where the ball size gets bloated, so…
00:15:53
Toni Wahrstätter:We might need to make it more expensive again, because they also contribute to data.
00:16:00
Toni Wahrstätter:We're basically sending one way To as many accounts as possible will probably be the new worst-case bar size.
00:16:16
Maria Silva:Again, I… so I think on there, maybe we can wait to have the preliminary numbers on 1838 to understand what would be the actual costs of
00:16:27
Maria Silva:Accessing, cold accounts, with code and without code.
00:16:35
Maria Silva:And then we can do the…
00:16:38
Maria Silva:the math of recalculating the worst case balls, and if we feel like
00:16:42
Maria Silva:that's an issue, then it just means that the state's access EIP will have to
00:16:48
Maria Silva:Add, some sort of additional cost for… for the data part.
00:16:56
Toni Wahrstätter:Yeah, sounds good, let's do that.
00:17:06
Maria Silva:Perfect. Any more topics on, ETH transfers EIP, or should we move to the next, the next stop.
00:17:27
Maria Silva:Going once, going twice. Okay, I think we'll move to the next topic, so…
00:17:32
Maria Silva:For the next topic, we'll be talking about
00:17:36
Maria Silva:state creation, gas cost increase, and here we have two topics. So first I wanted to raise, a question that actually drag on from, from, from RED, first raised, and I think kind of, made me go into a rabbit hole of how to
00:17:54
Maria Silva:deal with the subcalls and the reservoir mechanisms, so I wanted to present you the options and just open the discussion on that.
00:18:09
Maria Silva:open it, because I have some slides.
00:18:16
Maria Silva:Okay, and then after this, we'll have, Spencer will keep an update on what he's been up to for, the specs and the tests for PEIPC.
00:18:27
Maria Silva:Okay, so I just wanted to, explain,
00:18:35
Maria Silva:What is happening now in the… how we deal with gas monitoring in subcalls, and what are… what are the open questions?
00:18:45
Maria Silva:just so we are all on the same page, so the current way that the EIP is doing the multidimensional metering, so it is
00:18:53
Maria Silva:splitting up these two resources, so we have the state creation operations. They spend, state gas, so this is not the state access cost, but the pure cost of creating new states. And then all the other costs are, the regular gas.
00:19:12
Maria Silva:And how we are metering this is we have still the gas left, as we have now in the EVM, and this gas left is essentially
00:19:23
Maria Silva:bound by the transaction gas limits, so the 60 million, gas units. And then, because
00:19:31
Maria Silva:For state creation, users can use more than
00:19:35
Maria Silva:These transaction limits, they have this reservoir, so whenever their transaction requires more than the transaction limit.
00:19:44
Maria Silva:this extract is, sent to this reservoir. And then what happens is that, the gas left, so…
00:19:53
Maria Silva:The state creation transactions use the reservoir, and then once the reservoir is zero, they start using gas left, while the regular gas is… can only be taken from the gas left, okay?
00:20:08
Maria Silva:And then, what happens in calls? So.
00:20:11
Maria Silva:In calls, the user is still specifying a single gas value to use in the call, and so the question is, we need to define, first, how does the forwarding happen? So how much gas left in the reservoir will the call have access to?
00:20:28
Maria Silva:And then what happens both in the success case, so how much… how are the unused portions returned, and also what happens in the failure. So in a revert, an exceptional halt, how much gas is returned to the gas left in the residue?
00:20:45
Maria Silva:And so I try to kind of describe as much as possible
00:20:49
Maria Silva:all the… all the options. So option one…
00:20:54
Maria Silva:is, essentially we are… when we are in a call, the gas left is the G that is being sent, of course, with the 6364, cup.
00:21:10
Maria Silva:And the reservoir is essentially… is essentially all the reservoir, okay? So when the user says, I'm… the call is using G, that G is passed through the gas lift, and then all the available reservoir
00:21:24
Maria Silva:He's available for the call.
00:21:27
Maria Silva:Under success, the stuff that is unused gets returned.
00:21:37
Maria Silva:So on the revert, again, gas left, is returned, and the reservoir that is in use is also returned.
00:21:47
Maria Silva:On an exceptional halt,
00:21:52
Maria Silva:This is where it's a bit different. So here, all the gas left is consumed, so this is to keep consistent with the current design.
00:21:59
Maria Silva:But the unused reservoir is also returned. And the rationale for this is that when we have an exceptional halt, then
00:22:08
Maria Silva:all the state that would be created is actually not created. And so, if we were to spend the reservoir, this would be too punishing for users.
00:22:20
Maria Silva:And so these means that,
00:22:25
Maria Silva:Actually, we should, return the reservoir.
00:22:30
Maria Silva:So this is option… option one. Option two is very similar, so the forwarding, is… is the same. Success is the same, revert is the same.
00:22:41
Maria Silva:But then, on the exceptional halt, we are saying that both the gas lab and the reservoir are zeroed out. Again, this is what is more in line with the current behavior of the exceptional halt.
00:22:56
Maria Silva:But again, it's… I think it's too punishing for, for cases where we… we have an exceptional halt, because we would be spending all the reservoir, which was made available, right, and we would be zeroing it out, so it seems a bit too…
00:23:16
Maria Silva:Then option 3, the change is how much… is… the change is more on the forwarding part. So for the forwarding, we are saying we are not making all the reservoir available.
00:23:31
Maria Silva:But instead, we are making the same proportion that was available in the gas left, we are making the same proportion for reservoir. So, if the call is with G saying, I want to send 20% of my gas left.
00:23:45
Maria Silva:To the fall, then we also send 20% off of the reservoir.
00:23:49
Maria Silva:And then the success, revert, and exception, halt behaved as the same as in option 1, which is less punishing than option two.
00:24:01
Maria Silva:And then, we have, option 4. So this one, the only change is, again, how much of the reservoir is being forward.
00:24:13
Maria Silva:And here, the idea is, like, you don't forward the same
00:24:18
Maria Silva:ratio, but you forward the exact same volume, right? So if you say, I'm making 20…
00:24:23
Maria Silva:K available of gas left, then you also make 20K of reservoir available, if it's available. Like, if you only have 10K, then you send all the available reservoir. But it's not a ratio, it's the exact volume. And I think this one is a bit more in line with
00:24:41
Maria Silva:The current way that multidimensional metering works, where you say there's a block limit of
00:24:46
Maria Silva:10K, let's say, or there's a block limit of 60 million gas units, and you can use up to 60 million gas units of both resources. So this is actually a bit more similar to how multidimensional metering does it at block level.
00:25:03
Maria Silva:And then success revert an exception is the same as option one.
00:25:07
Maria Silva:So, what are the trade-offs? So, it seems like…
00:25:11
Maria Silva:In option 1 and 2, you do have, forwarding is a bit simpler. You have access to the full reservoir, but also, this has the problem that G…
00:25:26
Maria Silva:doesn't give you a bound on how much the call can spend. So this could lead to weird behaviors where you are just saying, I just want to send G to my call.
00:25:36
Maria Silva:And then you end up spending a lot from the reservoir, and so this is a bit,
00:25:43
Maria Silva:It's, a bit worse for entrusted, calls.
00:25:49
Maria Silva:And, and option two here is even worse, because it's like, if you end up in a… in an out-of-gas condition, then you even get your entire reservoir wiped out. So, I think, clearly, between option one and option two, I would,
00:26:05
Maria Silva:prefer much more option one.
00:26:08
Maria Silva:Then option 3 and option 4, they give you a bit more control over how much you are spending via the G. But it means that you…
00:26:20
Maria Silva:you may have to send bigger gas if you want to use more… if you want to create states during your calls, which also can…
00:26:30
Maria Silva:comes with, with, with its own, issues. Then you, you have, like.
00:26:35
Maria Silva:the option between 3 and 4 is more like what would be more, intuitive for users when they are setting up G, and what would be, easier, which I don't have, like, a strong intuition there.
00:26:49
Maria Silva:And so… I wanted to just open the…
00:26:53
Maria Silva:the discussion, if there are any comments in the call, great. If not, I can… I will also share this, async, so we can start the discussion, but I think there's here the question of
00:27:06
Maria Silva:how should we define these… these semantics? I mean, in my opinion, option one seems better, sorry, the other… yeah, option one seems better than option two.
00:27:15
Maria Silva:But we should maybe…
00:27:18
Maria Silva:think a bit more and see, like, is this really true? And then, are there any additional problems with any of those options that we haven't thought about?
00:27:27
Maria Silva:So yeah, happy to, to hear your, your comments, on these.
00:27:34
Maria Silva:And if there are any questions, also happy to…
00:27:37
Maria Silva:Happy education to go into it.
00:27:43
Maria Silva:Ben, do you have your hand raised? Do you want to talk?
00:27:45
Ben Adams:Yeah, it's a little bit tangential to this, but, does…
00:27:53
Ben Adams:Estimate GAF need to change to, provide people with, like, Who we estimate and hire.
00:28:03
Ben Adams:Based on the fact they could be charged more.
00:28:10
Ben Adams:Because we need to estimate above refunds, if that makes sense.
00:28:15
Ben Adams:Because otherwise it will go, can you pay the potential gas that you might spend?
00:28:23
Maria Silva:I'm… I'm not sure I understand what you are asking, sorry, can you… can you explain that again?
00:28:28
Ben Adams:With, with this EIP, is there a potential that
00:28:34
Ben Adams:you're charged more upfront, which is then refunded. So I'm wondering if,
00:28:43
Ben Adams:a note should be made that estimate gas should be estimating, like, the higher bound, if you see what I mean.
00:28:50
Ben Adams:You could… What you could be spending.
00:28:53
Ben Adams:Which might be higher, because you're…
00:28:55
Ben Adams:You're spending more on, storage, creating accounts.
00:29:03
Maria Silva:But, sorry, do you mean, like, in the case of a Halton Reverse, where your reservoir ends up being…
00:29:12
Ben Adams:I don't mean with these changes you're highlighting at the moment, I just mean the overall EIP.
00:29:18
Ben Adams:In that… If we tell the user how much gas they the transaction costs…
00:29:26
Ben Adams:Then their transaction will get rejected because…
00:29:33
Ben Adams:You originally get charged how much you could potentially pay, and then you get,
00:29:40
Ben Adams:And then you get refunded back.
00:29:45
Ben Adams:If you spend less, if you sort of. I'm just wondering if we need to put a caveat in for estimate gas to… to make sure it's…
00:29:53
Ben Adams:estimating… the maximum.
00:29:56
Ben Adams:That you could be spending.
00:29:59
Maria Silva:So I'm… I may be wrong, but my understanding is, like, the…
00:30:03
Maria Silva:The way that refunds work are not changing.
00:30:07
Maria Silva:It's true that gas costs will change, but this is true for all the other EIPs, right? Like, for the… it transfers EIP, it's the same thing, like, gas costs will change, so we'll have to update the…
00:30:25
Maria Silva:Well, I don't see how these EIP is different from all the others on that respect.
00:30:35
Maria Silva:But I'm… I may be missing something, so please, let me know if so.
00:30:48
Ben Adams:On… on this, I do think we do need to…
00:30:52
Ben Adams:I'm not sure what's the right approach, but I do think we need to limit it.
00:30:59
Ben Adams:cap the amount… if… if the, toll is capped.
00:31:05
Ben Adams:Then the amount of, reservoir paths should be kept in some way else.
00:31:20
Maria Silva:Yeah, I think this is, yeah, so I think this was a good… a good raise from… from Drogan, like, I… I hadn't… hadn't thought on that.
00:31:29
Maria Silva:But I think it's, yeah, it's not obvious, the right approach there. Well, Daniel, do you have any comments?
00:31:39
Daniel Lehrner (Besu):Yeah, so, I mean, the idea of the reservoir
00:31:43
Daniel Lehrner (Besu):Or the problem it tries to fix is mainly to deploy…
00:31:47
Daniel Lehrner (Besu):smart contracts up to the new maximum, no? Because without it, it would not be possible.
00:31:55
Daniel Lehrner (Besu):With 8047.
00:31:57
Daniel Lehrner (Besu):So… Right.
00:31:59
Daniel Lehrner (Besu):I mean, we don't want to encourage people to create a lot of state.
00:32:08
Daniel Lehrner (Besu):And, you know, when you create a contract, I would say it's either directly in the transaction, or maybe you do one…
00:32:15
Daniel Lehrner (Besu):Subcore when you use a factory.
00:32:19
Daniel Lehrner (Besu):But… I'm not sure if you really have to worry about the issue that people have.
00:32:24
Daniel Lehrner (Besu):you know, very nested cores, and then create the contract. So maybe even option 2 is fine, because either the contract is created successfully, or it isn't.
00:32:36
Daniel Lehrner (Besu):I'm not sure if it really makes sense to allow people to have this very nested course to use the reservoir, even though maybe there is a revert or whatever.
00:32:46
Daniel Lehrner (Besu):Because, I don't know, maybe they can abuse it again in some form.
00:32:55
Daniel Lehrner (Besu):As I said, I would say, you know, we should think what we want to do with the reservoir, and as far as I know, the only use case is to create new smart contracts.
00:33:07
Daniel Lehrner (Besu):And that's it. We don't want to encourage people to…
00:33:11
Daniel Lehrner (Besu):Use up a lot of state, or to create a new state in any other way than that.
00:33:17
Daniel Lehrner (Besu):Turns out, for me… draining all the state cars on the road, actually, I think would be fine.
00:33:27
Daniel Lehrner (Besu):But, there might be some patterns for smart contract deployment that I'm not aware of that would…
00:33:34
Daniel Lehrner (Besu):be… that would not be a work anymore. It did work today.
00:33:40
Maria Silva:Right, I think here the issue is mostly on the factories, which is what you pointed out, too. I think these are the ones that need more
00:33:49
Maria Silva:state gas within nested calls. But yeah, Dragan, do you have a comment there?
00:33:58
Dragan Rakita:Maybe I would even split this
00:34:02
Dragan Rakita:this in, like, two problems. One is how to limit reservoir to subcalls.
00:34:09
Dragan Rakita:Second one, not problem, but, like, discussions.
00:34:12
Dragan Rakita:The second one's, is, how about to revert and halt?
00:34:20
Dragan Rakita:In general, limit… for the first discussion.
00:34:25
Dragan Rakita:Maybe makes sense to limit it somehow?
00:34:29
Dragan Rakita:I like idea to limit it proportionally, depending on what gas
00:34:34
Dragan Rakita:regular gas is set, but I don't have strong opinions on any of that.
00:34:41
Dragan Rakita:Second discussion, I think it makes sense to revert, basically, to refill the reservoir if, basically, the gas that is
00:34:51
Dragan Rakita:That should be used for creation is basically not used.
00:34:55
Dragan Rakita:I do think that previously we didn't have this option, because we had just one gas, and it was…
00:35:06
Dragan Rakita:But we couldn't, like, make the difference between the…
00:35:11
Dragan Rakita:the CPU work that was done, or maybe state work that was done.
00:35:17
Dragan Rakita:But because we are making this split inside the VM, I think it's a good idea to…
00:35:24
Dragan Rakita:Not charged for something that was not done.
00:35:34
Maria Silva:Yeah, I tend to… I tend to agree as well. Yeah, it's just a matter of if someone can think of a problem with that approach.
00:35:43
Maria Silva:Yeah, I think it's one of those that we need to kind of stew on it and see if more…
00:35:49
Maria Silva:More things come up.
00:35:53
Maria Silva:Any more comments on these?
00:36:08
Luis Pinto | Besu:Yeah, sorry, Maria. Just rolling a bit back even on the problem itself. So, since the state created is kind of rollback if there is a halt or a revert.
00:36:20
Luis Pinto | Besu:In the… inside the call.
00:36:22
Luis Pinto | Besu:Do we really need to be… to care about,
00:36:27
Luis Pinto | Besu:Limiting the amount of state gas costs.
00:36:31
Luis Pinto | Besu:That is passed.
00:36:32
Luis Pinto | Besu:Since, I mean, we do care about the state that is carried across blocks, but do we carry that much about the state that's temporarily created?
00:36:42
Luis Pinto | Besu:In the case of, of a halt or a revert.
00:36:47
Luis Pinto | Besu:Inside the call.
00:36:50
Luis Pinto | Besu:Yeah, I think…
00:36:51
Maria Silva:Yeah, that's… that's a good question, and I think this is where, like, the separation that Dragon did help. So I think one question is, like, on halt and revert what we do.
00:37:03
Maria Silva:The other one is, like, even in the success case, how much reservoir should be available for the call?
00:37:11
Maria Silva:Right? And I think…
00:37:13
Maria Silva:The second question is more about, like, if I'm a user, and I want to, like.
00:37:20
Maria Silva:the reason why I'm limiting the gas that is being available in the call is usually a protection, right? Like, if you are interacting with contracts that you are not too sure about, you want to have that control over how much gas is being charged.
00:37:41
Maria Silva:this, concept of letting all the reservoir be available changes this, right? Like, now a user says, I just want to use 10K for this, call, but actually I could end up using 20K if I have 10K in the reservoir in my contract somehow, like.
00:37:58
Maria Silva:creates a lot of states. And my intuition is, like, this is a bit, like.
00:38:04
Maria Silva:It's a bit weird, not giving the option for the user to,
00:38:11
Maria Silva:To kind of being able to limit also the reservoir.
00:38:16
Maria Silva:And under the two options, essentially, you'd still be limited by G. It wouldn't be exactly G, so for it's an option for it to…
00:38:26
Maria Silva:And, in option 2… I'm sorry, in option 3,
00:38:31
Maria Silva:G plus the fraction of state gas that is induced by the fraction between. So it's a bit more complicated, but it still gives you some sort of, like.
00:38:43
Maria Silva:way to limit this. So I think… This is the…
00:38:47
Maria Silva:The question is, like, is this even something that, like, Users to have.
00:38:53
Maria Silva:The possibility of doing?
00:38:57
Maria Silva:Because the simplest approach would be just to do option one. Like, you let all the reservoir available, but then this comes with, sort of, some
00:39:07
Maria Silva:Like, some protection from the user side.
00:39:11
Luis Pinto | Besu:In a way, Yes, are you, Ruben?
00:39:14
Ben Adams:If you did option one, it would potentially mean that you call a contract with a limited amount of gas, but they can burn all of your
00:39:25
Luis Pinto | Besu:But the compute part is, like, the S-load is… or S-store is… there's also a compute side of that as well, so…
00:39:36
Luis Pinto | Besu:There's a… Excited and the compute part, and that is capped still with the current limits.
00:39:43
Maria Silva:Right, I think the issue that, like, the way that you could do it more clearly would be with, like, deploying contracts within the call.
00:39:56
Ben Adams:Where there, you can, yeah.
00:40:00
Maria Silva:Spend much more state gas without execution costs.
00:40:06
Ben Adams:Yeah, because there's the pattern where you do, you know, try-catch. You can do, like, a try-catch, and…
00:40:12
Ben Adams:you might expect it to… out of gas as the worst thing that can happen.
00:40:18
Ben Adams:But… If it can destroy your reservoir, then that might limit what you…
00:40:26
Ben Adams:What you'd expect to be able to do afterwards.
00:40:28
Ben Adams:After calling someone.
00:40:33
Luis Pinto | Besu:Yeah, I think the committee is a good point.
00:40:36
Daniel Lehrner (Besu):Yeah, what if we limit the reservoir only to create, and create 2, and not the other?
00:40:42
Daniel Lehrner (Besu):Another store, for example.
00:40:46
Daniel Lehrner (Besu):So, this means when I call a contract, they cannot write at least their own state?
00:40:57
Maria Silva:I'm sorry, Danielle, I think I lost the first speech, can you finish it?
00:41:01
Daniel Lehrner (Besu):Yeah, sorry, I'm just thinking out loud, but what if we bind the reservoir, or only to create and create two, and not to S-store? So we really say the reservoir is only meant for creating new contracts?
00:41:19
Daniel Lehrner (Besu):So this means when I call another contract, it could only use my state capacity to create other contracts, but it could not use it to write something to its own state.
00:41:30
Daniel Lehrner (Besu):And it would need to use the…
00:41:34
Daniel Lehrner (Besu):The, the, the normal gas for… for that.
00:41:39
Maria Silva:How… how would that help with this… with this?
00:41:43
Daniel Lehrner (Besu):I mean, this would help, because the contract that I called could only create new contracts.
00:41:52
Daniel Lehrner (Besu):I learned that, yeah.
00:41:54
Daniel Lehrner (Besu):It can still burn all your state costs, I mean, that is true.
00:41:59
Daniel Lehrner (Besu):To this, this,
00:42:02
Daniel Lehrner (Besu):Yeah. Yeah. No, maybe it makes no sense, really. I was just… I was just thinking out loud.
00:42:10
Maria Silva:Yeah, but I think good, I think it's good to think out loud and throw ideas.
00:42:19
Maria Silva:Any more comments on these?
00:42:36
spencer-tb:I guess I'd ask, just for the sake of, speeding things up, should we settle on one of the options now, and then we can change, like.
00:42:44
spencer-tb:M… In the future, so maybe for DevNet Free, we pick an option, and then… And DevNet4, we actually…
00:42:52
spencer-tb:Settle with either the same one, or update it to a different one?
00:42:58
Maria Silva:Yeah, I think that's… that's a good question. I think, in my opinion, it's like.
00:43:03
Maria Silva:Clearly, option 1 is better than option 2.
00:43:08
Maria Silva:And then the question of option one versus the other two, I think, is a bit more nuanced. So I would say,
00:43:22
Maria Silva:Yeah, I guess, like, my intuition could be maybe we could start with option 1, which is the simplest one, and then we can think a bit more about it, and then we can switch it to option 3 or 4.
00:43:35
Maria Silva:What, what do people think?
00:43:46
jochem-brouwer:Yeah, I think we should do this, and what we then do is we figure out what breaks, what can be abused, and if we then figure out that this is something what we don't want, then we have to change it.
00:44:00
Maria Silva:Sounds good. So yeah, let's go with option one. I will comment on, on, on the PR, Spencer, and then, we can…
00:44:13
Dragan Rakita:There is one edge case related to the option one.
00:44:17
Dragan Rakita:It is… you have parent call and subcall, child call.
00:44:22
Dragan Rakita:And what if the parent call sends, like, 20 million guests?
00:44:27
Dragan Rakita:And then the charcoal… basically…
00:44:32
Dragan Rakita:It has, like, 60 million for the regular gas and 4 million for the reservoir.
00:44:40
Dragan Rakita:Or… doesn't matter, it doesn't send ventilators, just send, like.
00:44:47
Dragan Rakita:Sorry, example is not that great. Imagine sending, like, 1 million, and reservoir, it's, like, 3 million.
00:44:54
Dragan Rakita:But what if the child code is basically spedding the…
00:45:01
Dragan Rakita:3.5 million gas, state gas, on itself.
00:45:06
Dragan Rakita:What happens if that reverts?
00:45:09
Dragan Rakita:Basically, they did spend all the reservoir, and…
00:45:14
Dragan Rakita:For the state gas, he additionally spent half a million from the regular gas.
00:45:22
Dragan Rakita:Should we, my idea that I had is, basically, we should… we could refill
00:45:29
Dragan Rakita:Basically, parent call, then gets additional half a million.
00:45:37
Dragan Rakita:In that sense, we are refilling.
00:45:40
Dragan Rakita:full amount of state gas that was consumed by the charcoal.
00:45:47
Dragan Rakita:Because the charcoal consumed 3.5 million, but it had only 3 million of reservoir.
00:45:58
Dragan Rakita:I'm not sure if I explained it okay.
00:46:01
Maria Silva:Right, no, no, no, I think that's a good con… so…
00:46:04
Maria Silva:just to summarize, so the case is you had some reservoir, but you were in a coal, and you used more state gas than you had in the reservoir, so you have to spend also gas left, and then there's a revert. Then what happens in the, like, the reservoir will be fully reinstated.
00:46:23
Maria Silva:But the gas left wouldn't, so that would go… that would be spent fully.
00:46:36
Maria Silva:It should be specified. So I… so I think it's, like, in a reverse, it doesn't matter…
00:46:42
Maria Silva:what happens within the call, right? Like, you still do the same as the gas left you sent with the call all gets used, and then the reservoir gets reinstated. So you… in your case, the 500 gas that you used for state gas, that's
00:47:01
Maria Silva:was spent from the gas left would also be reinstated, so you wouldn't… It wouldn't be spent.
00:47:10
Dragan Rakita:Should the idea is we shouldn't add it back to the… You know, gas left.
00:47:17
Dragan Rakita:But we should add it to the reservoir.
00:47:21
Dragan Rakita:Then, at the end, the parent call, after the child call reverts halts.
00:47:27
Dragan Rakita:It would have, it had 3 million reservoir, but afterward, it would have 3.5.
00:47:37
Maria Silva:I don't understand why. Why should it have to be in the hub?
00:47:40
Dragan Rakita:If we bant to… Not spend all the… all of the state gas.
00:47:48
Dragan Rakita:We should add it somewhere, somewhere.
00:47:51
Dragan Rakita:So, we could add it back to the regular gas, but this seems…
00:47:56
Dragan Rakita:bad in the sense that we are, like, splitting. The gas that was spent on the state is now added to regular gas.
00:48:07
Dragan Rakita:So, better option is to add it back, or add it to the reservoir.
00:48:16
Dragan Rakita:Or there's option just to ignore it, and just say, if the…
00:48:22
Dragan Rakita:The gas that is basically the state gas, if this consumed… if this consuming regular gas, then this part of the gas is going to be deleted.
00:48:33
Dragan Rakita:Not reverted, or…
00:48:38
Maria Silva:I mean, maybe we should just do this async and write down in the space PR, but my intuition should be that, yes, those 500 would go away, because you were sending a certain amount of gas to the…
00:48:54
Maria Silva:To the call, and on a revert, that amount that you sent should all go away.
00:49:02
Maria Silva:Independently, if you use it for state creation or not.
00:49:10
Maria Silva:But, yeah, let's, let's, let's, let's discuss this async.
00:49:15
Maria Silva:Sounds good. Okay, so maybe I will, after, I will, link, the PR here for people who want to see, and, and for the next point, Spencer, do you want to give a quick update on, what you've been up to for, week 37?
00:49:36
spencer-tb:Yeah, I can be fast, so,
00:49:40
spencer-tb:Still have the same, specs PR as last week,
00:49:45
spencer-tb:I believe I've got option 2 implemented, from the previous discussion, but,
00:49:50
spencer-tb:Right now, I'm trying to fill all the…
00:49:54
spencer-tb:existing tests that we have in deals, with the spec implementation, and
00:50:01
spencer-tb:I have ran into quite a lot of issues, mostly
00:50:04
spencer-tb:surrounding, the gas limit for transactions, so I think we… we hard-coded the gas limit in a lot of the transactions in the tests.
00:50:12
spencer-tb:And with the new, state gas dimension.
00:50:15
spencer-tb:This gas limit, is very low in a lot of the tests, so there's,
00:50:21
spencer-tb:A lot of the tests need that increase, but some of the tests also have
00:50:25
spencer-tb:Some other interactions with,
00:50:31
spencer-tb:So I guess, also with the tests, we need to make sure they're refillable for every fork, right? And with, 7825, we have the transaction gas limit cap.
00:50:43
spencer-tb:So it's also trying to make some of the tests fork-aware, so that we're not breaking any previous, fillings.
00:50:50
spencer-tb:Of the test. So, I've been working quite heavily on that.
00:50:54
spencer-tb:So far, I think I've fixed from Frontier to Shanghai, and then it'll be…
00:50:59
spencer-tb:yeah, Prague, Cancun, Osaka, and the Amsterdam tests. I have not yet tested the…
00:51:06
spencer-tb:legacy tests as well, and I think those will need to change, so I think it might be a bit of extra work from our side. We do have the internal Steam call after this call, and I think I will ask for some extra help.
00:51:19
spencer-tb:And they're from the team.
00:51:21
spencer-tb:But yeah, that's, that's the update for myself.
00:51:28
Maria Silva:Thank you, Spencer. Are there any questions for Spencer, or should we move to the next point?
00:51:48
Maria Silva:Okay, I guess there are no more questions. So the next topic is, on 7976, so the increased call data floor costs. Tony, do you want to give a quick update on that one?
00:52:02
Toni Wahrstätter:Yes, I'm happy to do so. I just posted in the agenda the EthResearch post I recently had.
00:52:09
Toni Wahrstätter:I already brought this new pricing up in the last ACDE and ACDT, so it's nothing new, but recently we changed the pricing from $15.60
00:52:22
Toni Wahrstätter:So 15 for 0 bytes, 60 for non-zero bytes, to 64.64, which means, at the floor cost.
00:52:32
Toni Wahrstätter:Users would pay the same Gas per byte, no matter if it's a zero byte or a non-zero byte.
00:52:38
Toni Wahrstätter:I already updated the analyzers that is linked in the EIP,
00:52:43
Toni Wahrstätter:And instead of affecting 1.5% of transactions, this would affect
00:52:49
Toni Wahrstätter:slightly above 2% of the transactions. So, most transactions are still, like, unaffected, and the rational behind this change was that in the worst-case scenario, so for worst-case blocks, it doesn't actually matter that much if it's a zero or non-zero byte, because
00:53:06
Toni Wahrstätter:you can… you can otherwise use 0 bytes. You would maximize the number of 0 bytes, because they are cheaper to get, like, the max size block.
00:53:16
Toni Wahrstätter:And just making sure that they cost the same, 64…
00:53:20
Toni Wahrstätter:Gas per byte ensures that,
00:53:24
Toni Wahrstätter:This doesn't matter in the worst case.
00:53:27
Toni Wahrstätter:So, I'm curious if people have any opinions on that.
00:53:32
Toni Wahrstätter:In the EthResearch post, you can see, if you scroll down, I created this chart.
00:53:37
Toni Wahrstätter:That projects, like, what the worst-case block size will be with that change.
00:53:44
Toni Wahrstätter:Yeah, so this gives us some room for scaling, ensuring that the worst-case block size won't be a problem that soon again.
00:53:52
Toni Wahrstätter:Of course, until at some point, we have to do something more sophisticated with the call data pricing anyway.
00:54:00
Toni Wahrstätter:But this is, like, diffusing the situation, I would say. And the worst case block size, so with the…
00:54:06
Toni Wahrstätter:Pricing that we had earlier with the…
00:54:09
Toni Wahrstätter:1560, the worst case block size, would have been at 3.5MB compressed size.
00:54:15
Toni Wahrstätter:And with the 6464 pricing, we will get down to slightly above 2MB in the worst case compressed block size.
00:54:25
Toni Wahrstätter:I've already started, like, reaching out to the affected parties. There are not many. Like, most users can use blobs anyway for posting data. It's only those that can't move to blobs that still need their call data to get inside DBM.
00:54:39
Toni Wahrstätter:And it's only a few parties, that are affected.
00:54:44
Toni Wahrstätter:Right? So… If there is any objection or anything, I'm curious to hear it.
00:54:50
Ben Adams:On the 64 value, I don't have an opinion, I'll defer to you.
00:54:57
Ben Adams:On the zero byte being the same, I think it makes sense, because…
00:55:04
Ben Adams:If you're doing useful work, then…
00:55:07
Ben Adams:Most of your bytes won't be zero.
00:55:09
Ben Adams:So… It's only… The people most affected by it will be the ones filling…
00:55:19
Ben Adams:Essentially filling the blocks with nothing.
00:55:22
Toni Wahrstätter:Right, exactly.
00:55:23
Ben Adams:Not doing… not doing useful work.
00:55:26
Toni Wahrstätter:Exactly, yeah. So this is… maybe… maybe I should have, added that previously. The call data price for everyone who will not hit the floor will stay at 416. So it's… it's very well backwards compatible, so users… most users won't feel any difference. It's only those that hit the floor.
00:55:45
Toni Wahrstätter:That would actually pay the $64.64.
00:55:57
Maria Silva:Yeah, thank you, Tony. I can't think of any issues, I think it makes things change, but yeah, if anyone, has some time to take a look at it and has any issues with comments, please,
00:56:14
Butta:Tonya, I'm just wondering which entities are affected.
00:56:18
Butta:Are they, like, are these, like, protocols? Like, bigger ones, or…
00:56:23
Toni Wahrstätter:Yeah, good question. So, it's the same entities that were already affected by 7623 that introduced that mechanism. For example, among those entities, there is Polygon, and there is Starknet.
00:56:35
Toni Wahrstätter:And for them, it's because they have very large proofs that can't… and they can't just post their data in blobs.
00:56:43
Toni Wahrstätter:So for them, they need the call data to actually, yeah, do some math with the data.
00:56:52
Toni Wahrstätter:Those are the main users. There are some… there are some smaller users that is, like, negligible. It's, like, me sending you a transaction and saying, hi Butter. So this is, like, the largest amount of users that are affected, users that are just, like.
00:57:06
Toni Wahrstätter:Saying a few words in their call data.
00:57:09
Toni Wahrstätter:But when it comes to, like, what is the economic impact, it's those protocols that can't use blobs that are still using call data.
00:57:18
Butta:But, yeah, maybe… Go ahead, yeah, please. Maybe, afterwards you can connect with those, and I can force them to fill out our survey.
00:57:29
Toni Wahrstätter:Yeah, happy to do so. We are already in discussions with those anyway, but I'm happy to forward them the survey. I guess that's the proper way to do so. Yeah, let's do that.
00:57:39
Butta:Yeah, I would, like, yeah, I mean, I think it's gonna be my time anyway, right, Maria? In the agenda, maybe?
00:57:50
Maria Silva:Yeah, we can… maybe we can… we can move to your… to your section.
00:57:53
Butta:Right, so for those that weren't here, last Friday, we introduced a new website, which is called GasRepricing.com.
00:58:04
Butta:And on this page, you will be able to find everything related to gas repricing. It also links to the progress, so if you're curious what the status of each individual task is, you can find it here.
00:58:18
Butta:You can find a simulator. This is more specifically designed for those that are affected, but more importantly, there is also a survey that would be nice if you or someone you know that might be affected could fill out, because
00:58:37
Butta:If you're not affected, you probably will just ignore it, so it's kind of hard to get data to, just confirm the design of the current EIPs.
00:58:53
Butta:But still having real data would be nice. For those that forget about the website, we also linked it at the top of Forecast, so it also is promoted here.
00:59:05
Butta:And I think yesterday, we also posted it on Twitter, so if you can retweet it, it would be great. I think so far, we got, like, 2 or 3, official survey, candidates.
00:59:20
Butta:But I also manually reached out to Coinbase, Kraken, and one other exchange, because I think those are, like, most obvious stakeholders that will be affected, because they have payouts, like, withdrawals, deposits to exchanges.
00:59:37
Butta:Or they have other products. So while they might not be represented in the survey itself, yeah, they gave me, like, off-chain information.
00:59:50
Butta:I will link it in the chat, so, yeah, maybe you can retweet it. I saw Tony already retweeted it this morning, so thank you for that.
01:00:00
Butta:Yeah, that's… that's my part.
01:00:05
Maria Silva:Thank you, Bhuta. Yeah, I think this community outreach will be very, very important going forward to make sure that
01:00:12
Maria Silva:Users are not surprised by…
01:00:15
Maria Silva:By, by the changes, and also that we take into consideration their, their feedback, in time to…
01:00:22
Maria Silva:While we are implementing these changes?
01:00:24
Maria Silva:So yeah, I'll just, reiterate, like, if you can share these, and, if you know anybody that would be impacted, please, share it with them.
01:00:35
Maria Silva:Are there any questions or comments for Bhuta?
01:00:46
Butta:just for your knowledge, next thing, we'll be posting it on Reddit, like, eFinance, maybe we can get, like, individual people, to fill it out. I will also try to get in touch with Aave, because I think if they are fine, it's also gonna be fine for other,
01:01:05
Butta:DeFi projects, and then maybe Tony can connect me with Polygon and the other folks that he was talking to.
01:01:13
Butta:But yeah, as I said, like, if people are fine, they tend to be quiet.
01:01:33
Maria Silva:Thank you, Bhuta, and, we are almost at the end of the call, there are no more topics, but I think if there are any
01:01:41
Maria Silva:questions or general comments or topics people want to bring up, we still have some time for that, so I'll just open the floor for random topics.
01:01:56
Toni Wahrstätter:I had a question in the chat.
01:01:58
Toni Wahrstätter:Basically, is it… is it true that…
01:02:01
Toni Wahrstätter:the cheapest way to access… for example, if I call balance on an ac… going very much… going back to 2780,
01:02:10
Toni Wahrstätter:If I call balance on an account that has no code, will this effectively only cost me 200 gas?
01:02:20
Toni Wahrstätter:Can someone clarify that?
01:02:23
Maria Silva:You always, you always charge at least the transaction-based cost, which currently is 4,005 benefits.
01:02:34
Maria Silva:So, and that covers… let me just open it up so I…
01:02:39
Maria Silva:say it incorrectly, but it covers ECU cover costs, as data plate costs, and the call account costs, no codes. So those three components are always charged.
01:02:55
Toni Wahrstätter:Right. Yeah, Maria, you did an amazing analysis by the time, if I remember correctly, about the worst-case bar size, so I guess we should just, connect async to see, what changes, but my first intuition would be that the new worst-case bar size will be a transaction.
01:03:15
Toni Wahrstätter:a max test transaction that then calls, for example, the balance opcode.
01:03:22
Toni Wahrstätter:empty accounts that have no code as possible. And for each of those calls, you would only pay $200,
01:03:30
Toni Wahrstätter:But you would get… you would not only call the account, you would also do an S-load, I guess.
01:03:36
Toni Wahrstätter:And then you would end up with, 20 bytes from the address, 32 bytes from the storage slot.
01:03:44
Toni Wahrstätter:And you would only pay 2,600 plus the 200 gas.
01:03:49
Toni Wahrstätter:So I think the worst case file size would change a bit, but yeah, let's connect async and clarify that.
01:03:57
Maria Silva:Sounds good. Yeah, happy, happy to do it.
01:04:04
Maria Silva:Are there any more comments, or…
01:04:09
Maria Silva:Topics, or should we wrap up?
01:04:27
Maria Silva:Okay, so it seems there are no more topics. Thank you all for attending. Notes, recordings, and all that will be made available in ForkOST. Yeah, thank you for… thank you for joining.
01:04:43
Toni Wahrstätter:Thank you. Bye-bye.
01:04:45
Ameziane Hamlat:Bye, see you all in two weeks.

Chat Logs

00:07:25
Maria Silva:https://github.com/ethereum/pm/issues/1935
00:08:46
Maria Silva:Here is the PR: https://github.com/ethereum/EIPs/pull/11332
00:09:18
Guru:https://github.com/ethereum/EIPs/pull/11332
00:15:09
Ameziane Hamlat:There is an interaction with eip-8037 on the case of creating a new account on eth transfers for example
00:15:32
Maria Silva:Replying to "There is an interact..." 100%
00:15:47
jochem-brouwer:I put this on EthMag: Also regarding performance, currently to read accounts 2600 gas is charged for cold ones. If this is reduced to 500 gas for cold ones without code, then this means we can now read more than 5 times account from disk than previously. Together with block level access lists (which have to add these accounts) this is likely very undesired.
00:42:25
Ameziane Hamlat:With the repricing, if SSTORE doesn’t have access to the reservoir, a lot of contracts won’t work anymore because of the repricing
00:43:37
spencer-tb:Happy with Option 1 (for testing too)
00:48:54
Toni Wahrstätter:Am I right that under 2780, calling BALANCE on an account with no code costs effectively 200 gas (500+2000-2300)?
00:49:16
jochem-brouwer:Replying to "Am I right that un..." Why minus stipend?
00:49:29
jochem-brouwer:Replying to "Am I right that un..." Stipend is added if value > 0
00:49:42
spencer-tb:https://github.com/ethereum/execution-specs/pull/2181
00:49:46
jochem-brouwer:Replying to "Am I right that un..." Or what is this 2300?
00:50:14
Toni Wahrstätter:Replying to "Am I right that unde..." You get the stipend back if the callee has no code
00:50:47
Maria Silva:Replying to "https://github.com/e..." This is also the PR for the subcell reservoir mechanics
00:51:59
Toni Wahrstätter:https://ethresear.ch/t/worst-case-block-size-and-calldata-repricing-for-glamsterdam/23895
00:56:51
jochem-brouwer:So these parties effected will economically want to bundle their calldata txs with compute txs I think?
00:59:44
Toni Wahrstätter:Replying to "So these parties eff..." This was already the case simce pectra yeah. It's not practical though, that's why it didn't happen. But yeah, if they do so, it wouldn't be bad. The block size would be reduced while less qould be affected.
01:00:06
Butta:https://gasrepricing.com/ https://x.com/EFprotocol/status/2023756291756453961
01:00:23
Toni Wahrstätter:Replying to "So these parties eff..." Eip-7623 and 7976 have this concern in the security consideration section

Summary

12 highlights · 3 action itemsExperimental

eip 2780 eth transfers

  • Draft specs and tests ready; legacy test fixes pending clarification00:08:03
  • EIP-7708 log prices must be added since ETH transfer costs reduced00:09:41
  • Cold EOA access reduced to 500 gas; may impact BAL size00:11:18

eip 8037 state creation

  • Subcall gas forwarding: Option 1 adopted (full reservoir access, refund on revert)00:17:04
  • Estimate gas behavior unchanged; only gas costs updating, not refund mechanics00:28:19
  • Reservoir intended primarily for contract deployment via factories00:32:08

eip 7976 calldata repricing

  • Pricing changed to 64/64 (from 15/60); affects 2% of transactions00:52:02
  • Worst-case block size reduced from 3.5MB to 2MB compressed00:53:15
  • Main affected parties: Polygon, Starknet (large proofs requiring calldata)00:56:35

community outreach

  • GasRepricing.com launched with simulator and survey for affected users00:58:03
  • Direct outreach to Coinbase, Kraken, and other exchanges initiated00:59:20

testing progress

  • EIP-8037 specs PR filling existing tests; gas limit issues across forks00:49:46

Decisions

  • Option 1 adopted for subcall reservoir mechanics: full reservoir forwarded, refunded on revert/halt00:43:09
  • EIP-7976 calldata pricing finalized at 64 gas per byte (zero and non-zero)00:52:32

Action Items

  • Tony Wahrstätter, Ben Adams: Review EIP-2780 interaction clarifications PR on 7702/7928 gas charges00:09:25
  • Ben Adams: Add EIP-7708 log prices to EIP-2780 specification00:09:41
  • All teams: Share GasRepricing.com survey with affected protocols and exchanges01:00:06