Draft

Quadratic Issuance Tapering

A quadratic deduction achieves a smooth, tangential pinch-off to zero issuance at 50% staking, leaving BASE_REWARD_FACTOR as the single free calibration parameter.
Published

May 28, 2026

Modified

June 2, 2026

tl;dr

  • The linear tapering proposal reduces issuance to zero at a 50% staking ratio, but the yield curve arrives at zero non-tangentially resulting in an abrupt cut-off
  • A quadratic deduction can eliminate this slope discontinuity: the yield curve reaches zero and is tangential to the x-axis at saturation
  • Requiring the deduction to be zero at \(f=0\), equal to \(r_\text{sat}\) at \(f=f_\text{sat}\), and to match the slope of \(r(f)\) at \(f_\text{sat}\) uniquely determines the quadratic \(d(f) = (5f - 6f^2)r_\text{sat}\), leaving BASE_REWARD_FACTOR as the sole free parameter
  • Two multiples of BASE_REWARD_FACTOR are considered: B=128 (2×), which crosses the current yield at \(f\approx 20.7\%\), and B=256 (4×), which crosses at \(f\approx 30.3\%\), close to today’s staking ratio; yields at deployment (\(f\approx 33\%\)) are \(\approx\!0.96\%\) and \(\approx\!1.93\%\) respectively
  • The cost relative to linear tapering: minimising yield impact at transition requires a larger BRF increase and produces higher peak issuance (\(\approx\!1.57\%\) at \(f\approx 12.9\%\), versus \(\approx\!1.0\%\) at \(f\approx 19.8\%\) for linear)

Introduction

Previously, we considered linear tapering as a means to ensure that equilibrium yield is reached at some point below a 50% staking ratio. That proposal was aimed at the simplest possible modification to the existing issuance curve which would achieve this goal, while preserving key properties (particularly incentives for correct validator participation).

While the linear tapering proposal achieves its stated goal, it does so with an abrupt cut off at the saturation staking ratio, rather than tapering smoothly. This article will explore the minimal constraint for a smooth yield pinch-off as the staking ratio approaches the saturation level by using a quadratic rather than linear tapering deduction. As in the linear case, both multiplicative and subtractive formulations can achieve smooth pinch-off. Also as in the linear case, the subtractive formulation is found to be superior (lower peak issuance, better anti-discouragement coverage), so the subtractive formulation will be the focus of this article.

Smooth Pinch-off

The current CL yield at staking ratio \(f\) is \[r(f) = \frac{B\,E}{\sqrt{f\,S_0}}\] where \(B\) is BASE_REWARD_FACTOR, \(E\) is epochs per year, and \(S_0\) is the total ETH supply in Gwei.

In the modified (linear tapered) yield curve \(\tilde{r}_\text{lin}\) we had:

\[\tilde{r}_\text{lin}(f) = \begin{cases} r(f)-\dfrac{f}{f_\text{sat}}r_\text{sat} & f \le f_\text{sat} \\ 0 & f > f_\text{sat} \end{cases}\]

The deduction \(\frac{f}{f_\text{sat}}r_\text{sat}\) is linear in \(f\), so its slope is the constant \(\frac{r_\text{sat}}{f_\text{sat}}\). Since \(r(f)\propto f^{-1/2}\), we have \(r'(f)=-r(f)/2f\), giving

\[\tilde{r}_\text{lin}'(f) = -\frac{r(f)}{2f} - \frac{r_\text{sat}}{f_\text{sat}}\]

At saturation:

\[\tilde{r}_\text{lin}'(f_\text{sat}) = -\frac{r_\text{sat}}{2f_\text{sat}} - \frac{r_\text{sat}}{f_\text{sat}} = -\frac{3r_\text{sat}}{2f_\text{sat}} \neq 0\]

So with the linear deduction the yield curve arrives at zero with non-zero slope. For a smooth taper to zero, the deduction must also match the slope of \(r(f)\) at \(f_\text{sat}\). This additional condition forces a quadratic. We therefore consider the general quadratic deduction:

\[\tilde{r}_\text{quad}(f) = \begin{cases} r(f) - af - bf^2 & f \le f_\text{sat} \\ 0 & f > f_\text{sat} \end{cases}\]

for constants \(a\) and \(b\) to be determined by the two pinch-off conditions (\(\tilde{r}_\text{quad}(f_\text{sat})=0\) and \(\tilde{r}_\text{quad}'(f_\text{sat})=0\)). The quadratic deduction has no constant term because the deduction must be zero at \(f=0\).

The unique quadratic deduction

Smooth pinch-off imposes three conditions on the deduction \(d(f)\):

Condition Meaning
\(d(0) = 0\) No deduction at zero staking
\(d(f_\text{sat}) = r_\text{sat}\) Full cancellation at saturation
\(d'(f_\text{sat}) = r'(f_\text{sat})\) Slopes match, so net slope is zero

With \(f_\text{sat} = \tfrac{1}{2}\), we have \(r'(f_\text{sat}) = -r_\text{sat}/(2\times\tfrac{1}{2}) = -r_\text{sat}\). The general quadratic through the origin is \(d(f)=af+bf^2\). Applying the two remaining constraints:

\[d\!\left(\tfrac{1}{2}\right) = \tfrac{a}{2}+\tfrac{b}{4} = r_\text{sat}, \qquad d'\!\left(\tfrac{1}{2}\right) = a + b = -r_\text{sat}\]

Solving the above gives us the coefficients for the quadratic deduction \(d(f)\):

\[d(f) = (5f - 6f^2)r_\text{sat}\]

This is the unique quadratic through the origin that reaches \(r_\text{sat}\) at \(f_\text{sat}=\tfrac{1}{2}\) with matching slope. Because all three constraints are fixed, BASE_REWARD_FACTOR — which scales both \(r(f)\) and \(r_\text{sat}\) proportionally — is the only free parameter. So our modified yield curve \(\tilde{r}_\text{quad}(f)\) is given by:

\[\tilde{r}_\text{quad}(f) = r(f)-(5f-6f^2)r_\text{sat}\]

Yield Calibration

The naive quadratic taper (B=64) yields \(\approx 0.48\%\) at today’s staking ratio — well below the current \(\approx 2.63\%\). As with the linear proposal, BASE_REWARD_FACTOR is increased to compensate. We consider two alternative curves: doubling to B=128 and quadrupling to B=256. B=128 crosses the current yield at \(f\approx 20.7\%\), giving a yield at deployment of \(\approx\!0.96\%\); B=256 crosses at \(f\approx 30.3\%\), closer to today’s staking ratio, with a yield at deployment of \(\approx\!1.93\%\):

Figure 1: CL nominal yield under the current curve (B=64), the naive quadratic taper (B=64), and the two compensated quadratic taper curves (B=128, B=256). B=128 crosses the current yield curve at \(f\approx 20.7\%\); B=256 crosses at \(f\approx 30.3\%\). Both reach zero tangentially at saturation (\(f=50\%\)).
Figure 2: Annual ETH issuance under the current curve (B=64), the naive quadratic taper (B=64), and the two compensated quadratic taper curves (B=128, B=256). Both peak at \(f\approx 12.9\%\): B=128 at \(\approx 0.79\%\) issuance rate, B=256 at \(\approx 1.57\%\),.

Implementation

The implementation structure is identical to the linear proposal: base_penalty_per_increment uses the unattenuated curve (preserving penalties throughout the staking ratio range) and base_reward_per_increment is the tapered net reward. The only difference is the deduction formula.

Consensus Layer Spec

Two constants are updated or added; one function is modified.

Constants

Constant Old value New value Notes
BASE_REWARD_FACTOR uint64(64) uint64(128) or uint64(256) 2× (crossover at \(f\approx 20.7\%\)) or 4× (crossover at \(f\approx 30.3\%\))
SATURATION_BALANCE Gwei(60_250_000 * 10**9) Total active balance at \(f_\text{sat}=50\%\); same as linear proposal

Modified function

get_base_penalty_per_increment is unchanged from the linear proposal (unattenuated, using the new BRF).

get_base_reward_per_increment is modified to apply quadratic tapering:

def get_base_reward_per_increment(state: BeaconState) -> Gwei:
    total_active_balance = get_total_active_balance(state)
    if total_active_balance >= SATURATION_BALANCE:
        return Gwei(0)
    n     = total_active_balance // EFFECTIVE_BALANCE_INCREMENT
    n_sat = SATURATION_BALANCE   // EFFECTIVE_BALANCE_INCREMENT
    p_sat = Gwei(
        EFFECTIVE_BALANCE_INCREMENT * BASE_REWARD_FACTOR
        // integer_squareroot(SATURATION_BALANCE)
    )
    # deduction = p_sat * (n/n_sat) * (5 - 3*(n/n_sat)) / 2
    deduction = Gwei(
        p_sat * n * (5 * n_sat - 3 * n)
        // (2 * n_sat * n_sat)
    )
    return Gwei(max(0, get_base_penalty_per_increment(state) - deduction))

The intermediate product p_sat * n * (5 * n_sat - 3 * n) reaches \(\sim\!10^{19}\), requiring 128-bit arithmetic in non-Python implementations — the same concern noted for the linear deduction.