Skip to content
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

Eth1 voting DoS #722

Closed
JustinDrake opened this issue Mar 6, 2019 · 8 comments
Closed

Eth1 voting DoS #722

JustinDrake opened this issue Mar 6, 2019 · 8 comments
Labels
milestone:June 30 freeze 🥶 Phase 0 spec freeze for long-lived cross-client testnet scope:v-guide Validator guide

Comments

@JustinDrake
Copy link
Collaborator

An attacker that controls the first slot of the Eth1 voting period (more generally, at least n/2 of the first n slots) can pick an Eth1 tip that is valid but stale, and all honest proposers would vote for this stale tip.

One fix is to have an initial voting period (e.g. 64 slots within the 1024-slot Eth1 voting period) where honest proposers do not vote for stale Eth1 tips, regardless of previous votes.

@JustinDrake JustinDrake added the scope:v-guide Validator guide label Mar 6, 2019
@CarlBeek
Copy link
Contributor

CarlBeek commented Mar 7, 2019

One proposal I had for this would be to give a reward for the distance between a new Eth1 block and the previous one. This incentivises fresh blocks.

I do not like the idea and do not think it should be implemented for the following reasons:

  • Eth1 block histories would have to be added to the state (as Justin pointed out)
  • It would basically require writing an Eth1 light-client in Eth2 (even if you do some cool Merkel proofs to compress the chain Eth1 headers)

Side note:
Should the Validator Guide have a section on expected behaviour in a contentious Eth1 fork?

@djrtwo
Copy link
Contributor

djrtwo commented Apr 17, 2019

I remember we discussed making the first chunk of validators vote without looking at D the list of votes, but this didn't make it into the v-guide. Is this something we still want to do?

@JustinDrake
Copy link
Collaborator Author

making the first chunk of validators vote without looking at D the list of votes

Aesthetically-speaking I'm not totally satisfied with that.

Side question: Does the June 30 freeze date cover the validator doc?

@djrtwo
Copy link
Contributor

djrtwo commented Apr 18, 2019

Aesthetically-speaking I'm not totally satisfied with that.

yeah, generally agree

Side question: Does the June 30 freeze date cover the validator doc?

yes. especially these non-aesthetic items such as this

@JustinDrake JustinDrake added the milestone:June 30 freeze 🥶 Phase 0 spec freeze for long-lived cross-client testnet label Jun 15, 2019
@djrtwo
Copy link
Contributor

djrtwo commented Jun 20, 2019

Thoughts on some of the (more complex) proposals we suggested here?

Befor spec freeze...

@dankrad
Copy link
Contributor

dankrad commented Jun 21, 2019

I remember we discussed making the first chunk of validators vote without looking at D the list of votes, but this didn't make it into the v-guide. Is this something we still want to do?

Still think this should be implemented :) Everything else sounds too complex to be implemented now, and is likely not doable for the Beacon chain spec freeze.

@hwwhww hwwhww added this to Issues need PR in Phase 0 Frozen Jun 21, 2019
@JustinDrake
Copy link
Collaborator Author

Everything else sounds too complex to be implemented now, and is likely not doable for the Beacon chain spec freeze.

No implementation required for spec freeze, just specification :) The honest validator spec is not (yet) executable.

@hwwhww hwwhww removed this from Issues need PR in Phase 0 Frozen Jun 22, 2019
@JustinDrake
Copy link
Collaborator Author

Addressed in #1218.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
milestone:June 30 freeze 🥶 Phase 0 spec freeze for long-lived cross-client testnet scope:v-guide Validator guide
Projects
None yet
Development

No branches or pull requests

4 participants