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

[Merged by Bors] - Optionally skip RANDAO verification during block production #3116

Closed

Conversation

michaelsproul
Copy link
Member

Proposed Changes

Allow Lighthouse to speculatively create blocks via the /eth/v1/validators/blocks endpoint by optionally skipping the RANDAO verification that we introduced in #2740. When verify_randao=false is passed as a query parameter the randao_reveal is not required to be present, and if present will only be lightly checked (must be a valid BLS sig). If verify_randao is omitted it defaults to true and Lighthouse behaves exactly as it did previously, hence this PR is backwards-compatible.

I'd like to get this change into unstable pretty soon as I've got 3 projects building on top of it:

  • blockdreamer, which mocks block production every slot in order to fingerprint clients
  • analysis of Lighthouse's block packing optimality, which uses blockdreamer to extract interesting instances of the attestation packing problem
  • analysis of Lighthouse's block packing performance (as in speed) on the tree-states branch

Additional Info

Having tested blockdreamer with Prysm, Nimbus and Teku I noticed that none of them verify the randao signature on /eth/v1/validator/blocks. I plan to open a PR to the beacon-APIs repo anyway so that this parameter can be standardised in case the other clients add RANDAO verification by default in future.

@michaelsproul michaelsproul added ready-for-review The code is ready for review low-hanging-fruit Easy to resolve, get it before someone else does! HTTP-API labels Mar 25, 2022
Copy link
Member

@pawanjay176 pawanjay176 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@michaelsproul michaelsproul added ready-for-merge This PR is ready to merge. and removed ready-for-review The code is ready for review labels Mar 28, 2022
@michaelsproul
Copy link
Member Author

bors r+

bors bot pushed a commit that referenced this pull request Mar 28, 2022
## Proposed Changes

Allow Lighthouse to speculatively create blocks via the `/eth/v1/validators/blocks` endpoint by optionally skipping the RANDAO verification that we introduced in #2740. When `verify_randao=false` is passed as a query parameter the `randao_reveal` is not required to be present, and if present will only be lightly checked (must be a valid BLS sig). If `verify_randao` is omitted it defaults to true and Lighthouse behaves exactly as it did previously, hence this PR is backwards-compatible.

I'd like to get this change into `unstable` pretty soon as I've got 3 projects building on top of it:

- [`blockdreamer`](https://github.com/michaelsproul/blockdreamer), which mocks block production every slot in order to fingerprint clients
- analysis of Lighthouse's block packing _optimality_, which uses `blockdreamer` to extract interesting instances of the attestation packing problem
- analysis of Lighthouse's block packing _performance_ (as in speed) on the `tree-states` branch

## Additional Info

Having tested `blockdreamer` with Prysm, Nimbus and Teku I noticed that none of them verify the randao signature on `/eth/v1/validator/blocks`. I plan to open a PR to the `beacon-APIs` repo anyway so that this parameter can be standardised in case the other clients add RANDAO verification by default in future.
michaelsproul added a commit to michaelsproul/lighthouse that referenced this pull request Mar 28, 2022
@bors bors bot changed the title Optionally skip RANDAO verification during block production [Merged by Bors] - Optionally skip RANDAO verification during block production Mar 28, 2022
@bors bors bot closed this Mar 28, 2022
@michaelsproul michaelsproul deleted the propose-block-no-verify branch March 28, 2022 11:34
paulhauner pushed a commit to paulhauner/lighthouse that referenced this pull request May 6, 2022
## Proposed Changes

Allow Lighthouse to speculatively create blocks via the `/eth/v1/validators/blocks` endpoint by optionally skipping the RANDAO verification that we introduced in sigp#2740. When `verify_randao=false` is passed as a query parameter the `randao_reveal` is not required to be present, and if present will only be lightly checked (must be a valid BLS sig). If `verify_randao` is omitted it defaults to true and Lighthouse behaves exactly as it did previously, hence this PR is backwards-compatible.

I'd like to get this change into `unstable` pretty soon as I've got 3 projects building on top of it:

- [`blockdreamer`](https://github.com/michaelsproul/blockdreamer), which mocks block production every slot in order to fingerprint clients
- analysis of Lighthouse's block packing _optimality_, which uses `blockdreamer` to extract interesting instances of the attestation packing problem
- analysis of Lighthouse's block packing _performance_ (as in speed) on the `tree-states` branch

## Additional Info

Having tested `blockdreamer` with Prysm, Nimbus and Teku I noticed that none of them verify the randao signature on `/eth/v1/validator/blocks`. I plan to open a PR to the `beacon-APIs` repo anyway so that this parameter can be standardised in case the other clients add RANDAO verification by default in future.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
HTTP-API low-hanging-fruit Easy to resolve, get it before someone else does! ready-for-merge This PR is ready to merge.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants