以太坊质押奖励为什么没有自动到账:先分清0x01和0x02

验证者提款凭证:自动扫出阈值不同:机制示意,不按长度比较;第三方资金池用户另看服务规则

验证者提款凭证:自动扫出阈值不同。机制示意,不按长度比较;第三方资金池用户另看服务规则
机制示意,不按长度比较;第三方资金池用户另看服务规则

查看完整图表 ↗

以太坊质押奖励没有自动到账,先看验证者的提款凭证是 0x01 还是 0x02。0x01(Type 1)的有效余额上限为 32 ETH,超过 32 ETH 的奖励由共识层定期自动扫出到提款地址,不需要运营者发交易,也不消耗 gas;0x02(Type 2)的有效余额上限为 2048 ETH,奖励留在验证者余额中参与复利,只有超过 2048 ETH 的部分才自动扫出,想取出 2048 ETH 以下的奖励,需要从执行层手动发起部分提款,这笔交易要付 gas。

两种凭证的规则差异

项目 Type 1(0x01) Type 2(0x02)
有效余额上限 32 ETH 2048 ETH
奖励处理方式 超过 32 ETH 的部分不计入验证者权重,等待自动扫出 奖励留在验证者余额中,用于提高有效余额和验证者权重
自动扫出条件 余额超过 32 ETH 的部分 余额超过 2048 ETH 的部分
阈值以内如何取出 不适用,规则本身就是超额即扫出 需从执行层手动发起部分提款并支付 gas
自动扫出是否要 gas 不需要 不需要(仅指超过 2048 ETH 的自动扫出)

由此可以判断:0x01 验证者的奖励会以“超出 32 ETH 的部分被扫出”的方式进入提款地址;0x02 验证者的奖励在 2048 ETH 以内不会自动离开验证者,而是继续留在余额里。看到钱包没增加,先确认是不是后一种情况。

用假设余额说明两条路径

假设一个验证者总余额为 40 ETH,提款地址已经设置,且没有退出质押。对 0x01 验证者,有效余额按上限计为 32 ETH,超出部分属于可扫出余额,共识层扫到它时会把超出部分转到提款地址,运营者不用做任何操作。对 0x02 验证者,40 ETH 远低于 2048 ETH 的自动扫出线,不会触发自动扫出;奖励继续留在验证者余额中,若持有人希望把其中一部分提到钱包,需要手动发起部分提款并支付 gas。

需要说明的是,这个例子只用于区分两条路径,不代表 40 ETH 余额一定对应 40 ETH 的有效余额。有效余额如何随奖励更新、以什么步进调整,是另一层规则,不能用手动计算的余额直接替代。0x02 的奖励用于复利,也不意味着有效余额会在某一时刻立刻按全额增加。

容易混淆的三种情况

把 32 ETH 当成所有验证者的上限。 32 ETH 是 0x01 的界限。0x02 允许有效余额在 32 至 2048 ETH 之间,奖励在其中累积。余额超过 32 ETH 却没进钱包,对 0x02 而言可能是正常状态,不应直接按异常处理。

把自动扫出和手动提款混为一谈。 自动扫出由共识层循环处理,不要求用户提交交易,因此不消耗 gas;0x02 在 2048 ETH 以下的部分提款走执行层交易,需要 gas,也要等待打包。两者费用和触发方式都不同。

把节点运营者和资金池用户当成同一类人。 自己运行验证者的人,关注的是链上凭证类型、提款地址和是否退出;把 ETH 存入质押池或持有质押凭证的人,看到的是服务商设定的分配和提取规则。服务商何时把奖励记入账户,与链上验证者适用 0x01 还是 0x02 不是同一问题。后者应查服务商说明,不能只按验证者阈值推算。

按凭证类型逐项核对

第一步,查验证者的提款凭证前缀,确认是 0x01 还是 0x02。第二步,对照阈值:0x01 看余额是否超过 32 ETH,0x02 看余额是否超过 2048 ETH;没有超过对应阈值,就不会发生自动扫出。第三步,确认验证者是否已经完全退出并进入可提款状态,全额提款与质押期间的奖励扫出是不同场景。第四步,区分自动与手动:自动扫出不需要用户发交易,0x02 阈值以内的部分提款需要执行层交易和 gas。

进度方面,扫出按验证者索引顺序循环推进,网络验证者数量和漏块情况都会影响推进速度,因此不宜给出统一的到账天数。能确定的是机制上的“会不会自动扫出”,而不是某个固定日期。

回到最初的问题:奖励没有自动到账,先分清 0x01 和 0x02。0x01 的超额奖励会自动扫出;0x02 的奖励在 2048 ETH 以内留在验证者中复利,想提前取出要手动发交易并付 gas。节点运营者看链上凭证,资金池用户看服务商规则,两条判断线不要混用。

参考资料