Properties of issuance offsets and increased penalties under low/zero/negative issuance policies

Properties of issuance offsets and increased penalties under low/zero/negative issuance policies

Ethereum is currently debating an issuance reduction. This is a technical post outlining how low-issuance policies could be facilitated. It does not propose a specific reward curve.

Summary

Under low-issuance regimes implemented by bringing the base reward per increment toward zero, the incentive to perform attestation duties vanishes. Two solutions have been suggested to preserve this incentive: (1) to reduce issuance with an “issuance offset” (previously called “fee”) applied during epoch processing, or (2) to decrease rewards while at the same time increasing the penalties for each duty. The issuance-offset approach benefits from spec simplicity and preserves the power dynamics between different validator roles. Known penalty regimes inherit concerns regarding minority discouragement attacks, because the power dynamics can change when penalties are increased.

This post outlines how increased penalties could be enacted while preserving the power dynamics between roles, such that the opportunities for minority discouragement attacks do not increase. It then outlines how that penalty design can be converted into an equivalent per-duty issuance-offset design to afford spec simplicity, by altering the offset based on assigned duties.

There are thus ultimately two different issuance-offset designs, with important differences most easily compared at zero issuance. Under a uniform per-increment deduction applied to all active validators, a solo staker that performs all regular attestation duties but has no special-duty assignment during the epoch has a negative balance change. Under a per-duty deduction, the same solo staker breaks even under such circumstances, but a missed proposal leaves the proposer-specific offset in place, creating a more substantial loss.

The post concludes by outlining a permissive flat-offset regime under low positive issuance, where solo stakers can break even or earn a small positive reward in ordinary epochs without incurring a proposer-specific deduction for missed proposals.

Introduction

Ethereum issues ETH to staked validators that participate in consensus formation as an incentive for correctly performing their duties. The yield from these rewards consequently produces the incentive to participate in consensus formation. There are thus two properties at play: the incentive to perform duties at the micro level, and the incentive to stake at the macro level. At higher issuance levels, this distinction is less relevant, because the incentive to perform duties is not compromised.

However, consider the case of a low-issuance regime at higher stake-participation levels, enacted to preserve a trustless ETH asset and moderate the costs that ETH holders are induced to incur by staking. If validators receive substantial MEV, they may wish to stake even if the issuance yield is very low, because the MEV yield is still sufficient. As previously observed, Ethereum would then need to bring the base reward per increment, and thus issuance yield, so low that the micro rewards handed out become insignificant relative to MEV. The only thing that matters to validators would then be to capture MEV, whereas the rewards for attestation duties would become negligible, and so would the incentive to properly attest.

To resolve this, the rewards and penalties guiding the incentive to attest cannot be brought down too low. Two options are available: (A) reduce issuance with an issuance offset applied each epoch (as suggested, e.g., here 1, 2, 3), or (B) decrease rewards while increasing the penalties for each duty.

Flat issuance-offset regime

We begin by analyzing the flat issuance-offset regime, due to its simplicity. An example is illustrated in Figure 1, and the same principles also apply to a zero or negative issuance regime. The micro incentive for performing validator duties is illustrated in red. It is computed using the existing get_base_reward_per_increment() function, with some potential adjustments to its slope. In addition, a new function get_macro_incentive_per_increment() calculates the incentive to stake, illustrated in blue. We do not specify the exact curve equations applied here, since these are not the focus of the post. The issuance offset between the two curves is then deducted during epoch processing:

issuance_offset_per_increment = get_issuance_offset_per_increment(state)
for index in get_active_validator_indices(state, get_current_epoch(state)):
    decrease_balance(state, index, state.validators[index].effective_balance // EFFECTIVE_BALANCE_INCREMENT * issuance_offset_per_increment)

Without the deduction, issuance under perfect participation is according to the upper red curve. With the deduction, issuance is according to the lower blue curve. The key property is that the offset does not alter the relative rewards and penalties inside the consensus mechanism. If a validator compares two actions, the same offset is applied either way, and thus cancels from the comparison.

Figure 1. The micro incentive for performing validator duties in red, and the macro incentive to stake in blue. An issuance offset between the two curves is deducted during epoch processing. The intended outcome is that stakers have an incentive to always perform their duties accurately, while the incentive to stake is moderated more strongly than what the red curve would allow in isolation.

Penalty regime

In the issuance-offset regime, the balance between attester and proposer remains the same. It is desirable to carry the general principles of that regime over to the penalty regime, as opposed to arbitrarily increasing penalties as issuance falls. This is to protect against minority discouragement attacks, as further discussed in the Appendix. If the proposer and attesters have a particular relative reward/penalty distribution on a specific attestation type under a higher issuance regime, then that relative distribution should be maintained in a lower regime. Such an invariant lends itself to straightforward analysis.

This can be achieved by modifying the reward-and-penalty structure linearly, guided by the incentive differential. Consider a duty that currently gives reward r when performed successfully and penalty p when failed. The current payoff is r upon success and -p upon failure. A zero-issuance penalty regime instead sets the successful outcome to 0 and the failed outcome to -(p+r). This preserves the spread between success and failure. A duty with reward 8 and penalty 0 becomes reward 0 and penalty 8. A duty with reward 14 and penalty 14 becomes reward 0 and penalty 28. In both cases, the marginal incentive to perform the duty is unchanged. The micro incentive is preserved because the difference between success and failure is the same.

Next consider the intermediate points where the desired issuance-based macro incentive lies above zero. Let D denote the relevant staking level, let m(D)>0 denote the micro-incentive level per effective-balance increment and let y(D) denote the desired issuance-based macro incentive per increment, measured in the same units. The fraction of each reward to convert is then

q(D)=\frac{m(D)-y(D)}{m(D)}.

A duty with reward r and penalty p is then changed from success payoff r and failure payoff -p to success payoff (1-q)r and failure payoff -(p+qr). The spread is still r+p. For example, a duty with reward 14 and penalty 14 moves smoothly from (14,-14) to (13,-15), then to (12,-16), and so on, until it reaches (0,-28) at zero issuance. In a negative-issuance regime, q>1, so even the successful outcome becomes negative. At that point, the same logic still applies, but the design is better understood as an offset or duty debit beyond the full conversion of rewards into penalties.

Proposer rewards need special handling. Ideally, they are not converted into a penalty. The reason for this is subtle: if there is no reward for including an attestation, the proposer may ignore missed attestations from previous slots; if a penalty is also assigned for missing these attestations, then any missed attestation may penalize several proposers in a row.

Retained proposer rewards can be made consistent with reduced issuance by assigning an offset of qr to the validator assigned the canonical proposal opportunity for each proposer credit r. If the assigned proposer earns the credit, its net payoff is (1-q)r. Full cancellation occurs at q=1 corresponding to a zero macro incentive per increment and zero issuance level at perfect participation. If a later proposer instead earns the credit by including a missed attestation, the original proposer retains the offset while the later proposer receives the reward. Across the two proposers, the aggregate payoff is still (1-q)r, ensuring that issuance does not increase.

Thus, we approach the proposer penalty as an offset in its implementation, in order to allow correct accounting and incentives to carry over across several slots.

Equivalent penalty and per-duty issuance-offset regimes

The difference between the penalty regime and the flat issuance-offset regime lies in reward variance and potential spec complexity. In the penalty regime, a perfectly performing validator earns according to the specified macro incentive at each duty opportunity. In the issuance-offset regime, it earns slightly less during ordinary slots, and then recoups the difference when performing special duties such as proposing. This also means that in the penalty regime, a missed proposal leads to a one-time loss equal to all below-par earnings of the issuance-offset regime between proposals. In the flat issuance-offset regime, a missed proposal is merely an opportunity cost, and no additional proposal-specific ETH is deducted.

Can we find perfect equivalence such that this type of penalty regime is implemented strictly as an issuance offset? It turns out that this is rather straightforward. When deducting the staking offset from each validator, we can account for the duties assigned during the epoch. The main function would then perform the following:

def process_issuance_offsets(state: BeaconState) -> None:
    epoch = get_current_epoch(state)
    attestation_issuance_offset_per_increment = get_attestation_issuance_offset_per_increment(state)
    prop_issuance_offset = get_proposer_issuance_offset(state, epoch)
    sync_issuance_offset = get_sync_committee_issuance_offset(state, epoch)

    for index in get_active_validator_indices(state, epoch):
        num_prop_assignments = get_num_proposer_assignments(state, index, epoch)
        num_sync_assignments = get_sync_committee_assignment_count(state, index, epoch)

        offset = state.validators[index].effective_balance // EFFECTIVE_BALANCE_INCREMENT * attestation_issuance_offset_per_increment
        if num_prop_assignments > 0:
            offset += num_prop_assignments * prop_issuance_offset
        if num_sync_assignments > 0:
            offset += num_sync_assignments * sync_issuance_offset
        decrease_balance(state, index, offset)

The issuance offset is thus allocated based on role assignment. An attestation component is applied to all active validators, while proposer and sync-committee components are applied to the validators assigned those duties. A successful proposer receives the normal proposer rewards, but also has the corresponding proposer offset applied. For each canonical credit r, earning the credit produces a net payoff of (1-q)r. Thus, when q=1, at a zero macro incentive/issuance level, a proposer performing the duty successfully sees rewards and offset fully cancel. If the proposer misses it, the offset remains and the reward is absent.

This also handles stray attestations naturally. A proposer that includes an attestation from a previous slot still receives the proposer reward. The corresponding offset was applied to the validator assigned the canonical proposal opportunity. If the original proposer earned the credit, its reward is reduced to (1-q)r by the offset. If it missed the credit, it takes the debit -qr, while the later proposer receives r; the aggregate payoff remains (1-q)r.

The resulting design can be read in two ways. It is an issuance-offset regime, because the existing reward and penalty logic is left intact and offsets are deducted during epoch processing. It is also penalty-equivalent, because the offset is applied at the duty opportunity, so a missed duty leaves the validator with the same downside as in the corresponding increased-penalty regime.

A permissive flat issuance-offset regime under low issuance

In the current Ethereum spec, micro incentives have been designed such that the proposer does not incur penalties for missed slots. This preserves the property of a bounded downside risk of staking for the individual validator in the case that it is spuriously offline for some time. This has been promoted as a beneficial feature to the solo staker that may not have the resources to constantly monitor its setup. At the same time, it would seem preferable to also ensure that a solo staker performing its duties perfectly does not take on a loss each epoch just to break even during proposals. How can these two properties be upheld at the same time while also bringing down issuance to a very low level?

One way is to apply the flat issuance-offset regime while upholding a ratio between the base-reward curve and the macro-incentives curve that ensures the solo staker does not take a loss each regular epoch. With the current micro incentives, the regular attestation component is 54/64 of the base-reward scale.
If the macro-incentives curve is 10/64 of the base-reward curve, then the common offset fraction is q = 54/64 and equals the attestation rewards handed out for performed duties. The numerator 8+2=10 derives from the proposer-reward weight (8) and the sync-committee weight (2).

At the high-D, low-issuance end of Figure 1, the macro-incentive curve approaches this 10/64 ratio. Under such conditions, the outcome is that the solo staker breaks even during an epoch with perfect attestation and no special duties, while at the same time not being subjected to the greater downside risks of missed proposals. If the macro incentive fraction is set greater than 10/64, the solo staker will have a small positive reward each epoch during perfect attestation. Ratios such as 16/64 = 1/4 could thus be used to ensure positive regular rewards to solo stakers and provide a small buffer that can offset occasional missed duties over time.


Appendix – Minority discouragement attacks

In the issuance-offset regime, the balance between attester and proposer remains the same. Rewards and penalties for performing staking duties generally need to be balanced to protect against minority discouragement attacks. For example, if there is no incentive for a proposer to include an attestation in the beacon block, whereas the attester takes a loss if it is not included, the proposer can grief the attester by leaving it out. This would allow the griefing validator to earn a higher yield than validators that dutifully include all observed attestations. For this reason, the proposer earns rewards for all attestations included.

There are various known minority discouragement attacks against the present consensus mechanism. For example, the proposer may selectively censor sync-committee attestations, an attack with a “griefing factor” of G=14. For every ETH that the attacker loses out on, the censored validators will lose out on 14 ETH. This happens because the attester loses out on 7 times as much ETH as the proposer when the attestation is not included, and additionally takes a penalty 7 times higher than the ETH lost by the proposer. It turns out that the attacker can then hold a rather small minority of the stake, though not an insignificant one, while still profiting from the attack. The relatively higher yield of the attacking staking service provider (SSP) may lead delegators to prefer it, and as some censored validators leave, the equilibrium yield will rise under sustained censorship. As this example illustrates, balancing micro rewards is a nuanced subject.

Another example of a minority discouragement attack consists of attesters withholding attestations during an inactivity leak to deny the proposer rewards for timely head attestations. In the current consensus mechanism, attesters do not receive rewards during the inactivity leak, and need only ensure that the attestation is included within 2–5 slots to avoid penalties on the source vote. The griefing factor then becomes infinite. Moreover, if the attester is assigned as proposer within 2–5 slots, it can pick up rewards for the attestation itself and will thus directly profit from the attack.

This discussion highlights how a consensus mechanism can unravel when rewards and penalties are altered without consideration for minority discouragement attacks. For this reason, it seems preferable to retain the same micro-incentive balance, in the current and any future consensus design, across the full staking range. If the proposer and attesters have a particular relative reward/penalty distribution on a specific attestation type under a higher issuance regime, then that relative distribution is maintained in a lower regime. If instead a lower issuance is ensured by reducing rewards toward zero whereas penalties are increased, the balance between roles is more difficult to maintain. In the case that missed proposals do not incur an offset, any attempt to reduce issuance by rebalancing the reward/penalty distribution would be particularly hazardous, because it upends the power balance between the proposer and attester.