以太坊在转用权益证明之前,难度调整公式里藏着一个不起眼的补丁:一个带叔块的区块,在计算下一个区块难度时会被当成大约两个区块来对待。这个改动来自EIP-100,由Vitalik Buterin在2016年4月提出,状态是Final,随2019年的拜占庭升级进入主网。它解决的问题用一句话说就是:不能让矿工靠操纵叔块率来变相降低难度、抬高自己的发行份额。
原公式只看时间差,叔块成了漏算的账
工作量证明链的难度调整本质上是一个反馈回路:出块快了就调难,慢了就调易。以太坊当年的公式只对比相邻两个区块的时间戳,用时间差除以一个常数得到调节因子。这个设计有一个盲区:叔块。在以太坊的规则里,没有成为正史主链头块、但被后来的区块收录的合法区块叫叔块,叔块的矿工也能领一部分奖励。既然叔块有奖励、也消耗了全网真实算力,它们理应算进“全网这段时间产出了多少块”。原公式不含叔块,等于让一部分产出差悄悄漏了账。更糟的是它可以被投机利用:矿工故意压着刚挖出的区块不发,等其他矿工先出,制造大量“几乎同时到达”的竞争区块,自己既保住主链位置又收割叔块奖励。叔块率被抬高后,按时间差反馈的难度会系统性偏低,发行速度超出协议本意。提案引用的分析文章在2016年4月就记录了这类利用空间。
一处改动:分母从十改成九,带叔块的块算两块
EIP-100的规格只改公式第一行:调节因子里的常数从1改成“有叔块取2、没叔块取1”,除法分母从10改成9。带k个叔块的区块,数学上几乎等价于认为k+1个区块在同一时刻出现,这个近似只需要区块头就能算,不用看完整区块。分母改九是为了让目标出块时间基本不变——按当年大约百分之七的叔块率,平均出块时间只会略降几个百分点。整条提案没有任何激进设计,就是给反馈回路补上漏掉的那本账。
这条账现在归谁管
2022年合并之后,以太坊主网不再运行工作量证明,按出块速度反馈的难度调整连同难度炸弹一起退出历史舞台,EIP-100成了一段PoW工程的收尾补丁。但它的教训没有过期:任何按“产出节奏”自我调节的机制,先要问清“产出”的定义包不包括所有拿了奖励的区块。叔块奖励本身就是以太坊为容错付出的发行成本,节奏核算若与发行规则口径不一致,就会留下可套利的缝隙。对照比特币更能看清这一点:比特币的孤块不领任何奖励、完全不参与发行核算,所以它的难度调整可以放心地只数主链区块,每两千零一十六个区块调一次;两种链对孤块的处置哲学不同,难度公式的结构自然不同。
一笔直觉账
把叔块率想成一台打印机的废页率。正史区块是合格页,叔块是印歪了但仍计费的废页。旧公式相当于只按合格页数量校准墨盒供应,纸卡得越多、账面消耗越显得少,墨盒就越换越勤;而纸钱照付不误。把废页计进用量,校准才回到真实负荷。所谓“操纵叔块率抬高发行”,拆开就是这个道理:不改任何交易规则,只改发纸的时机,就能让账本低估产量。
快速问答
问:EIP-100改的是出块时间目标吗? 答:不是。目标平均时间基本保持原样,改的是“怎么数块”——把叔块折算进反馈量,堵的是可被操纵的口径漏洞。 问:比特币需要类似的提案吗? 答:不需要。比特币孤块没有奖励、不进发行,孤块率高低不改变发行核算口径,所以不存在同一条套利路径。 问:这条提案还影响今天的以太坊吗? 答:主网已没有工作量证明难度,它属于协议历史的完整一章;今天读它的价值是理解共识参数之间口径要自洽。
风险提示:本文回顾协议机制历史,不构成任何投资建议,也不涉及任何资产的买卖时机判断。协议细节以EIP原文与以太坊官方文档为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。