Skip to content

Decoy and Bounce

Compare
Choose a tag to compare
@djrtwo djrtwo released this 08 Nov 21:43
· 5911 commits to master since this release
03fb097

Release

This release is primarily focused on a further simplification to Phase 0 (#1462) as a final cleanup of any shard-related items. Specifically this removes the custody bit construct from Attestations and related data structures in Phase 0.

In addition to these state transition changes, two modifications (#1465, #1466) were made to the fork choice rule to harden its defenses against two known attack vectors (bounce-attack and flip-flop-decoy). @paulhauner also led the charge on cleaning up and clarifying some components of the eth1data voting mechanism in the validator guide (#1460, #1468, #1469)

Work is continuing on (#1427) with the redesign of Phase 1 and the light client specs, but these specs are considered highly unstable and will be subject to large/breaking changes in the coming weeks. The Phase 1 tests are still disabled in CI as they cannot be run in their current form.

Changelog

PR showing full diff can be found here: #1470

Phase 0

Beacon chain

  • remove custody_bits from Phase 0 (#1462)

Fork choice

  • add "bounce-attack" resistance (#1465)
  • add "decoy-flip-flop" resistance (#1466)

Validator

  • minor clarification for range of included deposits in genesis (#1460)
  • fix period_tail in get_eth1_vote (#1468)
  • clarify previous_eth1_distance for get_eth1_vote (#1469)

Networking

  • clarify roots for blocks in network spec (#1457, #1459)

Deposit contract

Stable

Simple Serialize

Stable

BLS

Warning: Bug exists in BLS hash to G2 in the current spec. The hash and increment approach will be deprecated after standardization so the bug is to be untouched for now_

Significant changes still expected as we standardize BLS12-381 across blockchains

Phase 1 spec (warning: not stable)

The Phase 1 spec is currently being redesigned in accordance with the new sharding proposal. Because of this redesign, the spec is highly in flux and not currently executable, thus the Phase 1 tests are currently disabled in CI.

Light client spec (warning: not stable)

Light client sync spec is under redesign in the context of the phase 1 redesign. The current light client spec can be used for general educational purposes to understand the approach we are considering, but will see heavy redesign after phase 1 stabilizes.