BRIP-0008: Validator Effective Balance Hysteresis Constant Update

BRIP number 0008
Title Validator Effective Balance Hysteresis Constant Update
Author(s) P-OPS Team (Discussion Facilitator)
Status Discussion
Type Core (Protocol)
Created TBD

Abstract

This BRIP initiates a discussion on updating the HysteresisQuotient and HysteresisUpwardMultiplier constants to stabilize the effective balance of validators and mitigate unexpected, non-consensus-related ejections. We are soliciting input from the Berachain Team and the wider community to collectively establish optimal targets for a more capital-efficient upward threshold and a less sensitive downward floor. Discussion on the EffectiveBalanceIncrement is also invited.

Motivation

The current configuration of the validator effective balance hysteresis rules creates unnecessary economic friction and hinders capital efficiency, particularly concerning the Upward Hysteresis Threshold.

The effective balance is currently calculated in 10,000 BERA increments. The current constants require a validator’s current balance to exceed the next 10,000 BERA effective increment by an additional 12,500 BERA (10,000 / 4 * 5). This means that to register a 10,000 BERA increase in effective balance, the required actual amount (12,500 BERA) is equal to 125% of the increment size itself.

This overly aggressive threshold hinders capital efficiency. For example, to move a validator’s effective balance from 250,000 BERA to 260,000 BERA (a 10k increment), their current balance must reach and consistently hold more than 262,500 BERA.

The goal of this BRIP is to improve the capital efficiency of the validator set by significantly reducing the required upward buffer, allowing staked capital to be recognized and secured more quickly. We require consensus and analytical input from the Berachain Team and the community on the optimal target buffer percentage (e.g., 110%, 105%, etc.) and whether the base increment size itself should be changed from 10,000 BERA.

Specification

The following mainnet network constants are proposed to be updated to achieve the target downward and upward thresholds:

Constant Current value Proposed value Description
effectiveBalanceIncrement 10000 TBD The base unit for effective balance changes. Open for discussion to determine optimal granularity.
hysteresisQuotient 4 (current) TBD Needs to be chosen to reduce downward sensitivity and set the base for the upward threshold.
hysteresisUpwardMultiplier 5 (currentDefault) TBD Needs to be set in conjunction with the Quotient to achieve the community-agreed target upward threshold percentage.
hysteresisDownwardMultiplier 1 (currentDefault) TBD Needs to be set in conjunction with the Quotient to achieve the community-agreed target downward threshold percentage

The current mainnet constants are defined in the mainnet.go file and used in the state transition logic state_processor.go

Rationale

The following steps outline the mathematical dependencies between the constants. For the discussion to be productive, proposals must acknowledge that the value of the HysteresisQuotient must be determined first, as it affects both the upward and downward thresholds. The HysteresisUpwardMultiplier is then chosen to achieve the final desired upward buffer.

1. Effective Balance Increment

The effectiveBalanceIncrement determines the base unit for all effective balance changes. A smaller increment would allow staking rewards to be recognized more frequently, but may lead to increased processing overhead. Our suggestion is TBD BERA

2. Downward Hysteresis

Our suggested downward threshold is - 100 BERA to prevent spurious balance drops from triggering a change in effective balance.

This can be accomplished with

  • hysteresisQuotient = 10000 and hysteresisDownwardMultiplier = 100

3. Upward Hysteresis

Our suggested upward threshold is to reduce the required buffer to 10% of the effectiveBalanceIncrement (currently 1,000 BERA) to recognize staked capital more quickly.

This can be accomplished with

  • hysteresisUpwardMultiplier = 10 and hysteresisQuotient = 100

Backward Compatibility

This BRIP changes network constants only. It is fully backward compatible with the current Berachain protocol implementation. The update requires a network upgrade to apply the new constant values.

Security Considerations

TBD

Copyright

All copyrights and related rights in this work are waived under CCO 1.0 Universal.

Our rounding down by 10k creates effectively 975 slots validators complete for with their stake. To me that sounds like a reasonable granularity without too much.

I find the 12,500 threshold before reconsidering a new balance strands a lot of capital, literally doing nothing and also makes the system a bit of a head scratcher.

Due to hysteresis mechanisms, with 310k VP it is possible your balance is somewhere in 308-322.5 :man_shrugging:

I imagine there is a processing overhead reason why it’s not, eg, 1 BERA, but a threshold between the two makes more sense. I like 100-1000 BERA.