退出队列能翻过去吗:EIP-7922用历史余量抬高验证者离场速度 图 1
退出队列能翻过去吗:EIP-7922用历史余量抬高验证者离场速度 · 图 1

限速闸门为什么必须存在

验证者想离场不能即刻生效。假如恶意验证者可以随时归零退出,它可以先打包一个块却扣着不发布,等自己的质押退出协议后再放出与之冲突的另一个块——届时 slashing 惩罚已经追不到它,已”最终确认”的交易可能在两版历史上各成立一次。退出队列因此是以太坊经济安全的地基:让验证者权重变化慢于最终性生效的时间尺度,作恶窗口内诚实方仍有反制手段。现行参数里,每纪元可退出的质押总量约为活跃总质押除以 2 的 16 次方(CHURN_LIMIT_QUOTIENT),配套启发式是”一个月内最多约百分之十的质押离开”。

硬帽子的浪费

问题在于这个限额是按纪元平均值向前发的。提案举了个算术例子:按某个时期的验证者规模,每纪元约 16 个验证者的退出额度,折算两周约 50400 个——恰好相当于两周不超过总验证者百分之五左右的安全约束。可如果前两周完全没人退出,额度整段闲置;这时一个持有百分之三验证者的大型运营方申请全部离场,明明不违反”任意两周不超过既定比例”的原教旨约束,却因为每天只有固定小额放行,被拖进数千个纪元的长队。安全的本意是限制窗口总量,执行方式却退化成匀速水闸——过去没用掉的额度从不结转。

向后看替代向前看

EIP-7922 的钥匙句是:让协议回看退出历史,就不必向前押死每纪元上限。机制三件套。第一,时间被切成”代”(generation):256 个纪元一代,约 27 小时。第二,信标链状态新增一个长度为 16 的退出额度向量,记录过去 16 代(约 18 天)每代实际用掉多少退出质押。第三,每代开头重算本代额度:基础值由总质押除以 2 的 16 次方得出、并沿用现行每纪元 256 ETH 等值的帽子取小,把过去 16 代”没用完的额度”累加补给当前,但封顶为基础值的 8 倍。安全不变量随之改写:不再承诺”每个纪元不超过 16 个”,而是承诺”任意滚动两周窗口内总退出量不超过旧规则同一窗口的总量”——旧规则所有约束里最紧的那条被抽出来单独守,其余松绑。

读参数的手感

按提案给出的量级:每纪元可退出 256 ETH 级别的等值基础帽 × 256 纪元 = 每代约 65536 ETH 的基础额度,回补后单纪元最高可达 2048 ETH 等值。市场风平浪静时队列维持慢速;机构清算、质押池迁移这类集中离场场景里,闲置代数的复活能把等待时间从数天压到数小时,而任何两周窗口的累计退出比例不变。激活时向量初始化为”全部用满”,等于新规则从保守态起步,只继承激活后的真实闲置额度。

现状与讨论面

提案由 Mikhail Kalinin、Mike Neuder、Mallesh Pai 提出,2025 年 3 月创建,状态 Stagnant。围绕它的质疑集中在两处:其一,退出速度曾是 7714 等一揽子队列改革的组成部分,单拎动态回补可能引发”进快出慢”或反向失衡的新博弈;其二,大额运营方可策略性制造”先静默两周再集中退出”的节奏来套取回补额度——虽然两周窗口总量约束兜底,行为模式却会变形。它与已上线的静态 churn 机制并不冲突:闸门还在,只是轮子学会了攒惯性。

快速问答

问:现在退出到底多快? 答:由总活跃余额除以 2 的 16 次方、再套每纪元等值帽取小决定,具体等待时长随当期总验证者数与在队人数浮动,以质押看板为准。

问:回补额度会不会让大户插队? 答:不区分身份,按提交顺序消耗当纪元可用额度;提案改变的是额度总量随时间分布的方式。

问:它和进入队列联动吗? 答:规范只改退出侧;进入侧的激活 churn 有自己的独立回补设计(另一组提案),两者同开时需重新演算净效应。

风险提示:本文涉及质押机制与未定提案,不构成投资建议或退出质押时机建议;队列参数以当期信标链规范为准。