AsicBoost 是什么:省掉半截 SHA 的挖矿优化,公开版与隐蔽版 图 1
AsicBoost 是什么:省掉半截 SHA 的挖矿优化,公开版与隐蔽版 · 图 1

一、80 字节里的结构缝隙

比特币挖矿对区块头做两次 SHA-256。区块头恰好 80 字节,SHA-256 每 64 字节消化一块,于是计算天然分成两段:第一段吃掉前 64 字节(版本、前一区块哈希、默克尔根、时间戳的前半),第二段吃剩下 16 字节加填充(时间戳后半与随机数)。矿机循环更换的是末尾 4 字节随机数,意味着前 64 字节的内部展开结果在整个扫描循环里本可以只算一次。普通矿机照单全收地重算了两次压缩函数的全部展开,AsicBoost 论文(2016 年 3 月公开)指出的正是:如果能让很多个候选区块头共享同一个前 64 字节,就能把第一段的展开在多个工作项之间复用,理论上省下接近四分之一的功耗。省不省得成,取决于矿工能否廉价制造出”只在第一段有差异”的区块头集合。

AsicBoost 是什么:省掉半截 SHA 的挖矿优化,公开版与隐蔽版 图 2
AsicBoost 是什么:省掉半截 SHA 的挖矿优化,公开版与隐蔽版 · 图 2

二、公开版:拿版本号做文章

最省事的共享方式是动版本字段——它在第 1 段,改它不影响第 2 段。矿机固件在同一默克尔根、同一时间戳下轮转不同的区块版本号扫描,就叫公开版(overt)AsicBoost。它的优点是硬件改造几乎为零,缺点是全网一眼可见:正常节点的版本号受软分叉部署规则约束,一个矿池若持续吐出五花八门的版本值,链上数据里藏不住。2017 年前后围绕版本位部署的争论中,正是这类可观察的异常模式让”矿机是否在偷偷改写版本”成了公共议题。

三、隐蔽版:把默克尔根的尾巴捏住

另一条路是不碰任何显眼字段,而是凑出一批默克尔根”后 4 字节相同、前 28 字节各不相同”的候选:第 2 段只看前 64 字节的结尾,尾巴相同即等于共享了状态。找 4 字节碰撞按生日界限期望约 2 的 16 次方次尝试,本身可行;麻烦在于每换一次附加随机数都要重算整棵默克尔树,暴力磨根的开销会吃掉大部分收益。所以隐蔽版在实践中要靠精心设计的附加随机数与交易组合来摊薄成本,也因此难以在链上留下确凿指纹——指控方只能给出不合常理的统计形态,被指控方永远可以宣称是别的实现巧合。

四、隔离见证动了谁的奶酪

2017 年 8 月隔离见证激活后,矿工若使用见证承诺,块内就有了第二棵默克尔树,主树任何结构调整都必须同步反映到见证树,隐蔽版赖以摊薄成本的结构自由度大幅缩水,仅在非空块上接近失效。公开版则继续受制于版本位语义:当某段版本区间被软分叉部署征用后,滥用可部署区间的区块会被视为无效或可疑。换句话说,协议没有专门”封杀”AsicBoost,但每一次给区块头字段赋新语义的改动,都在收窄它的自由活动空间。

五、矿工视角的读法

对普通读者,AsicBoost 的价值在于示范了一个普遍规律:挖矿优化的战场往往不在”发明新哈希函数”,而在既有结构里抠掉重复计算。判断某项优化是否损害安全,看它是否改变了算力的边际成本分布——只省电费而不改变”没人能跳过哈希”这一点的技术,属于效率工程;只有能让参与者少干活多拿块的,才谈得上威胁。

六、链上能验与不能验的清单

对普通读者,最实用的是把”能验的”记牢:任意节点都能查某个区块的版本号是否落在协议允许的正常区间,能统计某个地址近期出块的版本分布是否异常,这些是公开版的直接证据。查不到的那半截也要心里有数:隐蔽版的全部操作都发生在合规字段内部,链上唯一异常只有出块间隔分布与孤块率的微小变化,而这两项受网络延迟、矿池调度等噪声支配,单独拿来说服不了任何人。判断矿池是否诚实,长期看更硬的信号是它是否在协议争议中持续按公开承诺出块、固件更新日志是否披露功耗优化细节——供应链透明度比链上取证的期望值高得多。