-
Notifications
You must be signed in to change notification settings - Fork 973
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update PROPOSER_SCORE_BOOST to 40 percent #2895
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Leaving this up for review until at least May 20
Is this update reflected in any of the fork choice spec tests? |
There are some comments in the document that I don't understand, most probably I am getting this wrong, but anyway, since I started to review here decided to post while I read.
I believe the inequality here is inverted: W_PB is applied to the attacking block and we would want to bound it above. Further in this paragraph
I believe this β does apply: the attacker releases his block and attestations at N+1 and the proposer of N+2 is is required to account for these attestations before proposing his block therefore the weight of N+1 is W_PB + β and that of N is 1 - β so that we require W_PB < 1 - 2 β, making the general formula in the article W_PB < 1 - (l+1) β valid in all cases l \geq 1. Using this the intersection point in your graph moves from (1/2,1/2) to (1/3,1/3) so that the optimal point for l=1 is 1/3. |
I am curious about the intention behind the change introduced in this PR #2878. If |
Ah ok I think I understand my confusion above: After the attacker's block comes in in |
Yes, I corrected it. That inequality was what the attacker needs, but everywhere else we wrote security conditions instead
Yes, exactly. This is the case for sandwich reorgs for any l: the adversary needs to do the reorg before attestations in their final slot are made, if not the honest slot will gain another 1-beta while they only gain beta Just to be fully clear, when we said that “the additional beta” does not count, we meant the beta from slot N (the honest slot, if I understand you correctly). This is the case because there is no block which these attestations can be anchored to, in a way which helps the adversary (because they don’t control slot N-1). It really only applies to l=1: for l > 1 the adversary gets a beta for every “ex-ante slot”, plus a beta for the honest slot, which is what goes missing for l=1 |
One weak point in the analysis is whether the attacker's strategy for the balancing attack is optimal. The outlined strategy seems reasonable, but whether it is indeed optimal is an open question to me. That said, 40% seems like the most suitable value. |
You are right in that the inequality we use in the anaylsis The intuition for why this might be sufficient is the following: Balancing attacks are dangerous if you get to delay finality, but over a long enough time horizon this won't be possible (assuming inequality holds). Short-term balancing in itself is not particularly useful to an adversary, unless it allows them to do longer ex ante reorgs (see section 5 in our paper for longer ex ante reorgs using balancing strategies). But we are already accounting for the worst case (1-block ex ante reorg), for wich balancing is not even helpful! |
To add to what Caspar said, here I (more) formally analyze the balancing condition. In the document the protocol is committee-ghost with (an idealized) proposer view merge (instead of boost) and without LMD, but I think that the ideas there are mostly applicable to our protocol. Boost makes things worse but in a manageable way, and LMD also makes things worse, but can be dealt with with different ideas and mild assumptions on what the adversary can do. Anyway, this is just meant to give us some confidence that, if the adversary wants to maintain balancing as long as possible, they can’t really do better than just immediately using their saved up attestations during a honest slot, to keep the balancing going (by beating boost, or simply restoring balancing after honest voters have voted together), so that they can (for free) save up attestations during adversarial slots. The balancing condition says that this strategy eventually fails, because the adversary has to use up more attestations than they have, in expectation, and the document just tries to show that every other strategy would fail for the same reason |
I believe we've had (positive) review from all those who follow this problem in detail. I'm merging and getting this out in the Bellatrix release candidate |
## Issue Addressed ethereum/consensus-specs#2895 ## Proposed Changes Lower the proposer boost to 40%, which is a trade-off against different types of attacks. ## Additional Info This PR also enables proposer boost on Ropsten assuming that this PR will be merged: eth-clients/merge-testnets#10
PR up for review until May 20
An off-by-one mistake in #2888 led to a reconsideration of the
PROPOSER_SCORE_BOOST
parameter. This PR updates the parameter to 40%.The motivation for changing this parameter and arguments for picking the new value can be found here.