ePBS Breakout #11

ePBS Breakout · 11 Oct 2024 · 16:48

ePBS Breakout #11, held on 11 October 2024. Enshrined proposer-builder separation, or ePBS, would build the split between block proposers and builders into the protocol itself. These breakout calls cover the design, specs and client progress.

Topics

From ePBS Breakout, hosted by Ethereum Foundation.

Transcript

welcome to I believe is um the breakout room number 11 for EIP 7732 we have nothing on the agenda I'll just quickly do our update on prism uh I opened the first PR for for choice and it turns out that uh it's actually very hard um H not because of the logic in for choice being hard but the problem is that since it changes the way that we call head uh and changes the way that we insert nodes into for choice to make it compatible with previous Forks is complicated we need to make two different calls uh even within like say the NV fork or Electra Fork we need to

make two calls to for Choice when we are syncing a block one's for the block and the other one for the payload and doing this has made it very hard to implement because the pr becomes very large you not only need to change the for Choice logic but in the same PR you need to change the blockchain logic and uh so this is making it into a monster of a PR even without changing the adding this slot block slot and Company so that's as a heads up for you guys if you're implementing for Choice it's nontrivial oh so when you said you implemented the first PR you didn't mean to the spec you meant to prison to prison yeah to prison no the spec is is

I think is close as far as I know there's uh I don't know if franches no Francis is not coming Francisco is working on Alternatives that are actually very good uh there there are trade-offs and I'm I'm investigating those trade offs to see which one uh but so Francisco PR for Francisco CIP would not change fors which is a big Plus on the other hand it changes blockchain for to deal with payments in a different way so yeah I don't know we're analyzing since this pack is finished I'm implementing this pack it shouldn't be a much of a change we could just drop the Fortress changes if we go with franchesco's approach it's very similar yeah I'm a little unfamiliar

with franchesco's approach oh he hasn't boosted I think uh they're still like hooking on in security I'm hoping that he's going to come here and describe it would be nice because we haven't started on Fork Choice yet so if becomes viable we could save some sometime yeah so so it's the the the trick is that instead of like relying for the or the forches that we have now relies on um on the Builder sending a message saying I want to withhold and then triggering block slot voting to reorg the the

block um Francesco PR relies on something different relies on if the block hasn't been voted enough then the Builder does not get paid that does not need to pay the bid I see doesn't even require votes on empty slot uh it doesn't even require V so well I mean when you vote right when you attest if you haven't seen the block on time you will attest for the parent yeah is in indirect yeah yeah yeah like don't count this yeah but the problem with that approach is that it it complicates a lot the logic on blockchain because now uh you

cannot uh you cannot deduct the payment when you see the block because you do not know who's going to earn the payment so you need to only fulfill that payment later on let's say at EPO transition or something like that and then accounting for this becomes problematic so I'm I'm evaluating what is is worse either our for choice or that since I'm more familiar I'm I'm happier with dealing tinkering with for choice but yeah but it's a it's a trade yeah so so if you want to know the the so this his approach is the Builder counts attestations if he sees less than

40% of attestations he just withholds uh and then he knows that uh he doesn't need to pay because uh because the the well because it's less than than a certain threshold which is going to be 60% and uh also if he sees more than 40% then he reveals and he knows that he cannot be reor because of proposal boost proposal boost stays at 40% so for the Builder the best that can happen is that he rals with 50% well anyways uh so that's it and uh and then there's a rule that says the

Builder only pays the bid if the block is either canonical or if the block was not was reor the payload but the block had more than 60% of votes so enforcing this becomes problematic so uh that last part needs a little more uh I need to can you say that statement slower again about that rule yeah so there let's go over the scenarios I the Builder sees very little attestations for the block less than 40% the Builder just doesn't even reveal okay well we we already have we already have like Fork choice in

the existing or I'm sorry we already have proposer boost in the existing Fork Choice spec so first of all are you describing the exis ing spec or are you describing franches I'm describing an alternative that franches proposing for PVS which is let's just keep the same for choice so no changes on for choice and that's a big plus okay and I'm describing how it would work on the mechanics okay so you the Builder sees less than 40% attestations for the block then he doesn't reveal andos boost wouldn't even be enough well because the block is just

too weak and then he feels I'm risking revealing the block and then he save uh that uh he's not going to be charged okay and he' be oh so yeah so if there's less than 40% he can be sure that he won't be charged uh okay because if because if the if someone if this he's under an attack of someone actually withholding attestations we assume that this attacker has less than 20% of the stake so the maximum so so that you know under these conditions the block had less than 40% and the attacker has maximum of 20% stake then the block will

not achieve 60% of votes and that is the thresold to charge the Builder right okay so less than 40% the Builder doesn't reveal and since we assuming an attacker with maximum 20% that's fine um if there's more than 40% then the Builder will reveal and then he knows that his payload is canonical and moreover that the next proposer cannot reor it because proposer boost is not good enough okay okay so now what can happen is that he reveals the next proposer let's say that he

reveals with 50% yep the next proposer with 40% plus 20% or 19% of a of an attacker stake he can try to reor the block but since the block had less than 60% of votes even if the Builder gets reared he will not pay the bill so that's that's the that's the idea that last part even if he gets reorg he would not pay the bid so oh so you're saying that the attacker would be would have the next block and he would build on the bid not being revealed exactly he would bu he will build build his block

on empty and then try to grief the Builder into actually pain even though he was he did reveal right and then even if okay and so then even if the even if his block becomes canonical the previous block do his oh and his block contains attestations for the previous block um but he can't achieve more than exactly well how much okay so there was 60 60 is a threshold okay so yeah so he won't be able to achieve more than 60% and so there's a rule okay that's interesting yeah so I think it's it's

it's it's great in that it doesn't change for choice so if it does work I think it's something we should consider seriously I also think it's easy for us even if we Implement for Choice uh to roll it back because it's just roll back for choice to the whatever we had before uh so it's an easy thing to continue working and then have a defet and then go back if that this mechanism becomes safe the only problem is that there's a lot of uncertainty on how to deal with the auction itself how to deal with the payment itself so so I'm hoping that franches gonna work out all of this and then present it yeah and the problem with the you know just having the basically like what is the problem

with having the payment applied just like even in the best case it doesn't apply until n blocks later two blocks well because then if you do it later then you need to keep accounting right so now accounting of how many attestations a block had has to to be done on chain it cannot be offchain as we do it today so it has to be in the state you're saying exactly and then this I I know I I decide a system that looks well that looks fine uh but uh but but it's still it's a complication it's it's it's it's a non-trivial change on the St on the state logic which it might be just as complicated as the for Choice changes this is that typically for Choice changes are much more dangerous than State changes that's why I like

Franchesco ideas better than our idea right I mean the actual um number of votes is technically on chain yeah you could get it from from bits but then it become really complicated uh I think it's easier just to keep the tally on on on the state so you just you have a a list of the B of bids that were unfulfilled and in those bids whenever you see an attestation you just add to those bits the effective balance of the

of the Val because if if you want to exploit the fact that you already have the bits so that's what I assume that you're thinking like look at the at the participation bits from the previous C box the problem is that you only have the bits and then you need to go and look for the effective balance of the validators and that might have changed and a bunch of other things well so this this payment if unless I'm missing something can be applied the next block like no next block proposer the no the attackers block no am I missing no no because the attacker for example might not include attestations that will become later available or things like because ad

could be included multiple blocks later right so you need to wait until at Le two EO and a lot of things can happen within those EO the Builder for example could just transfer the money to another person so you need to at least escrow that money like it's it's a non-trivial change it's it's not if you give it like five minutes thought you're going to realize that you need to like put a lot of safety Mak new places to deal with this okay that does sound bad yeah all right so that's uh that was our update on on for in prism and uh a sneak peek on Francesco's work uh don't if anyone wants to give an update we can

actually finish early today I start I I basically spent the last while just familiarizing myself with vanilla Fork choice because I never really did that much um never really did a a deep dive and then I started to like contrast it with the changes that were proposed but that's basically where I am and then we have implemented in Lighthouse the changes for devnet um the deet 4 and so like I can rebase those pretty soon oh nice good uh and I'm looking forward for reviews on for choice because that that I'm sure is I'm sure it's broken at even at the python

level so I'm looking for reviews on on the current on the current status of purchas on te side um yeah lately well essentially from one of the latest thing that's been done is block the production things and uh spent uh Stefan spent a lot of time rebasing everything um over over current Master which is toward being compatible with defet 4 not yet so if if I had to summarize most probably what has been done is a lot of

time on on repacing currently yeah yeah I I can I can relate to that that Lucas's spr was a nightmare yes exactly um so not uh no for Choice changes yet on our side I'm I'm convinced that we will have this ready completely by next meet next breakout in two weeks so that's going to be still before Devon so I'm hoping that prison will be able to do a single client DEET by two weeks from now uh you got be thinking about that

update seems either way anyway I'm just thinking about the new Fork chice but it seems either way you would have to rely on the fact that you you have the votes on chain because if you kept it in the state you'd still have to verify that those were in the block so yeah you either like you can have the proposer do that accounting when they propose the block uh or whatever but you're still going to have to verify the accounting so either way you're going have to count what's in the blocks yeah all right uh and I don't think we have Lighthouse uh we don't have a load start

today I don't know if Terrence wants to say something James okay anyone else all right I'll call it at once call it at twice all right so if there's no more comments we are finishing early today and we actually get and sneak peek into an interesting work of Franchesco so go good uh all right guys I'll see you in two weeks and hopefully we'll have a dep net by then well not a dep net but at least an in off by then see you guys see you bye bye