提议者加分是什么?分叉选择给新块四十个百分点的临时优势 图 1
提议者加分是什么?分叉选择给新块四十个百分点的临时优势 · 图 1

分叉选择规则里藏着一个少有人细看的参数:PROPOSER_SCORE_BOOST,主网规范常量为 40。它给刚出块的新提案者临时加上一笔可观的”票数”,让全网在几秒内向新区块头靠拢。这个机制是什么、分数从哪来、什么时候消失,本文按规范仓库的分叉选择文档逐段拆开。

权重公式里的两项

规范把每个区块节点在分叉选择中的权重写成两项之和:验证分数加分议者分数。验证分数好理解——统计把最新表态投进该节点后裔的所有验证者的有效余额。提议者分数则来自主动加的那一笔:只有当 store 里的 proposer_boost_root 被设置,并且检查点状态里的对应节点是当前节点的祖先时,才追加 compute_proposer_score 算出的分量。该分量的算法是:先用全网活跃总余额除以每时隙委员会数得到委员会权重,再乘 40 除 100,也就是委员会权重的百分之四十。委员会权重本身约等于活跃总余额的三十二分之一(每时隙 32 个委员会的口径),所以这笔加分在量级上接近一个委员会的余额规模。

提议者加分在新块与旧块之间倾斜天平的抽象示意

它解决什么问题

没有加分时,验证者面临一个”先看再投”的博弈:新区块刚广播,先观望谁的分支赢面大,再跟着投,理性个体的收益更高,但集体后果是头块在时隙里迟迟定不下来,重组窗口被拉长。加分机制把当前时隙出块者预先支持的那一支垫高:只要你的验证指向的分支是提议者块的祖先,这一支就白得一笔大票。对个体验证者来说,押注新块成为即时最优解,观望优势被削平,头块收敛速度显著加快。它本质上是对”下一任出块者发言权”的定价。

加分什么时候消失

加分不是永久属性。store 只维护一个 proposer_boost_root 指针,指向”当前该被抬一手”的那个块;时隙推进、验证陆续到达后,指针会随最新表态更新。加分只加成一条分支,且很快被真实验证票淹过——四十个百分点的委员会权重只是给收敛起步助推,无法长期对抗多数派。规范同时定义了重组保护相关的截止节点:提议者在本时隙重组旧头时,加分与重组截止线共同约束什么样的头值得切换,防止加分被用来支持无谓的回头重组。

加分与委员会权重的换算

把公式代进主网常量能得到直觉:委员会权重等于活跃总余额除以每时隙委员会数(32),加分是它的百分之四十,折合约全网总余额的百分之一点二五。听起来不大,但单时隙委员会合计权重也只有总余额的三十二分之一(约百分之三点一),一笔加分接近整个单时隙委员会票量的四成,这就是为什么刚收到却还没验证的块在权重图上会立刻压过同深度的旧头:它不是被真实投票抬起来的,而是被规则垫起来的。也解释了攻击层面的一个常识:加分能被任何诚实出块触发,但它不放大恶意分支的票——加分只挂一条链,多数派的真实验证仍然主导中期权重。

排障与观察角度

运行层面,加分解释了几类现象:为什么网络传播慢半拍的区块即便合法,也常输给先到的兄弟块;为什么重组大多发生在时隙开头的几秒内,而不是时隙中段;为什么多中继、多源广播的策略要争的是”最早进入验证视野”。观察工具上,分叉选择可视化会显示某个节点权重里有一小段来源不同的台阶,那通常就是提议者分数被计入的痕迹。

边界与版本口径

第一,40 是规范记录的主网常量,历史上围绕该比例与委员会权重口径有过讨论和调整提案,跨版本比较时不要假定常量恒定,一切以规范仓库当前分支的常量表为准。第二,加分影响的是”头怎么看”,不改变区块有效性,也不改变任何余额。第三,分叉选择是各客户端按同一规范各自计算的实现,细节时序可能略有差异。

本文为协议机制解释,不构成投资建议;涉及共识安全边界的描述以官方规范为准。