投票的有效期被拉长了:EIP-7045 与证明包含窗口的一次放宽 图 1
投票的有效期被拉长了:EIP-7045 与证明包含窗口的一次放宽 · 图 1

一场有保质期的投票

信标链的验证者对每个时隙的链头投票(attestation),但票不是投出去就生效——必须被某位提案者打包进区块,才算进入协议视野。规则给这场打包留了保质期:最早可以在被投票时隙之后一个时隙包含,晚到某个上限为止。EIP-7045 之前的上限是滚动的:被投票时隙加三十二格(恰好一个纪元)之内有效,过期作废,奖励清零。

听起来三十二格很宽裕,问题出在边界。一个时隙的委员会要在该时隙结束后才能集齐签名,提案者打包又是异步的,网络一拥塞(大区块、blob 洪水、链尖分叉恢复期),靠后的时隙特别容易撞上过期线。更要命的是纪元边界:被投的票属于纪元 N 的尾部时隙、打包窗口横跨进 N+1 时,旧规则给出的剩余窗口只有个位数时隙,一次小拥塞就能让整批投票同时失效——参与率骤降、整片验证者掉奖励,协议还得靠这些缺失投票的空白重算权重。

投票的有效期被拉长了:EIP-7045 与证明包含窗口的一次放宽 图 2
投票的有效期被拉长了:EIP-7045 与证明包含窗口的一次放宽 · 图 2

新规则的确切形状

EIP-7045 把包含上限改成:被投票时隙所在的纪元记作 N,那么这条证明最晚可以在纪元 N+1 的最后一个时隙被包含。用主网的格子换算:每个纪元三十二格、每格十二秒,对纪元最前面的时隙来说,包含窗口从三十来格拉长到将近六十二格——十二分钟上下才关门。提案的动机段把这件事定性得很严肃:这个放宽对 LMD-GHOST 的安全性论证以及客户端的确认规则都关键,因为那些分析本就假设证明“最终会被包含”,旧窗口恰好在最坏情况下违背了这个假设。

规则改动不影响投票本身的生成时机——委员会仍在自己的时隙内签名、聚合、广播;7045 动的只是提案者“还可以捡多久”的截止线。对普通用户,它没有一个看得见的按钮,但对质押运营,它改变的是拥塞时段的风险分布:网络堵的时候,晚几格打包不再等于作废。

它解决不了什么

把边界说清楚同样重要。更长的窗口意味着单条证明可被捡拾的时间拉宽,不意味着提案者有义务去捡过期风险之外的旧票——包含策略仍是各客户端的工程选择,奖励结构也维持原样(包含他人证明的提案者按数量计酬)。另一件事是延迟:证明晚被包含,对应的链头权重更新就晚发生,协议用“最迟 N+1 纪元末尾”兜住的是安全性论证的下界,不是给分叉决议开快车道。

还有一类历史误读值得纠正:这项改动不是“让漏票变轻松”。漏投本身仍照常计罚——错过投票的参与项在奖励里记为缺席;7045 救的是“投了但没能及时上车”的票,不是“忘了投”的票。把这句分清楚,也就分清了协议责任与运营责任的边界:前者管票在系统里的寿命,后者管你有没有在时隙内签名。

一个窗口的时间轴

把改动前后画进同一条时间轴最直观。设某证明对应纪元 N 的第 5 时隙:旧规则下,它的门在 N+1 的第 5 时隙关——从签名完成那一刻起,实际只剩三十格上下;新规则下,门统一挪到 N+1 的第 31 时隙,同一张票的寿命多出近三十格。对 N 的尾部时隙(第 31 格),两者几乎没差别;差别全压在纪元开头的票上——巧合的是,纪元首格正是委员会轮换、签名最密集、也最容易被排队的位置。一次改动精确补上了旧结构里最先坏的那根骨。

顺带记一笔升级坐标:该提案状态为 Final,创建于二〇二三年五月,随 Cancun-Deneb(Dencun)分叉在二〇二四年进入主网,信标层侧的对应名称是 Deneb。它和同批的 blob 参数类改动同车,却几乎没上头条——这类“给安全论证补地基”的提案,通常都要等到网络拥塞那天才被想起名字。

快速问答

问:包含窗口变长会让投票延迟变高吗? 答:正常网络里提案者仍倾向尽快包含(早包含计酬更高);拉长的只是拥塞时段的兜底线。

问:客户端确认规则受什么影响? 答:确认规则本就假设证明终会被包含,7045 让该假设在最坏情况下成立,属于地基加固。

问:错过投票会因此少罚吗? 答:不会。缺席计罚规则未变,本提案只延长已投出证明的可包含期。

风险提示:质押参与涉及锁仓与罚没规则理解,请以当期官方文档为准;本文不构成投资建议。