今日实时汇率

1 美元(USD)=

7.3043 人民币(CNY)

反向汇率:1 CNY = 0.1369 USD   更新时间:2025-04-19 08:02:31

作者: Coin MetricsTom Brand, Uri Kolodny &Avihu Levy

翻译 & 校对:闵敏& 阿剑

来源:以太坊爱好者

编者注:原标题为《观点 | 用 Nonce 分布追踪挖矿设备变化

ASIC 引起巨大的争议

自比特币诞生初期开始,社区就一直在讨论是否要与日益强大的挖矿硬件作斗争。

刚开始的时候,用 CPU(大多数计算机采用的标准处理单元)来参与比特币挖矿还能赚到钱。在这种情况下,几乎每个人都有机会参与到比特币挖矿中,因为不需要使用定制的计算机硬件。

久而久之,一些矿工为了在挖矿竞赛中获得优势,开始使用越来越强大的硬件。后来,矿工开始使用 GPU ,即,更加强大的 “图形处理单元”。GPU 通常用于游戏和 3D 渲染,不过也可用于很多一般用途。虽然 GPU 在价格上比 CPU 贵得多,但是也在普通人的经济能力范围内。

之后又出现了 ASIC 。ASIC 是 “application-specific integrated circuit(专用集成电路)” 的首字母缩写。它是一种专用型挖矿硬件,经过优化以适应特定的挖矿哈希算法。这些挖矿用的 ASIC 是为数字货币挖矿专门设计的,只能用来挖数字货币。在纯哈希算力方面,它比 GPU 强大得多。

ASIC 改变了挖矿的经济形态。简言之,那些生产新型 ASIC 矿机的公司在整个挖矿行业占据了很大优势,因为这些公司在算力上占据优势(至少在被其他 ASIC 生产商超越之前是如此),而且控制着市场上新发布的 ASIC 矿机的供应。由于生产一款新的 ASIC 硬件需要在前期投入巨额资本,只有少部分人能够加入这行。大矿工可以享受规模经济带来的额外效益,普通矿工很难与之竞争。

因此,已经有很多项目在尝试与 ASIC 对抗了。尤其是在 2018 年年初,比特大陆等矿机生产商宣布正在开发一款专挖门罗币的 ASIC 之时,项目方实行硬分叉来抵御 ASIC ,尽可能确保挖矿活动的去中心化。自此以后,项目方又进行了几次硬分叉,努力走在 ASIC 前面,以此阻碍 ASIC 的进一步开发。

以太坊自诞生以来,也在不断与 ASIC 作斗争(自 1.0 版本发布以来,以太坊的哈希算法 Ethash 已经被设计成抗 ASIC 型的了),然而 ASIC 生产商现在正在努力追赶中。结果,以太坊社区内有很多人都在支持 ProgPow 实现。ProgPow 是对 Ethash 算法的修改版,可以帮助以太坊抵御 ASIC 。

尽管这些项目在坚持不懈地抵御 ASIC ,但是很难保证不被 ASIC 追上。在利益的驱使下,大矿工都在积极开发 ASIC ,因为在抗 ASIC 的区块链上,专用型挖矿硬件会带给他们比小矿工更大的优势。这就意味着,ASIC 矿工和区块链开发者之间永远在玩猫捉老鼠的游戏。

走近 Nonce

令人激动的是,检查区块 nonce 分布可以了解在特定区块链上 ASIC 挖矿的兴起情况,以及后续的抵御措施所产生的影响。

PoW 挖矿就是反复对一个区块的区块头进行哈希计算,直到算出的哈希值小于协议定义的目标值为止。具体来说,就是将区块头作为一个输入值,然后代入某个密码学哈希算法进行计算,例如,比特币采用的是安全哈希算法 256 (Secure Hash Algorithm 256,SHA-256),而且是连续执行两次。

为确保每一次进行哈希计算时都会得到一个不同的哈希值,同时又不需要重新创建一个区块头,区块头为矿工提供了一个特殊的字段:nonce 。nonce 是一个可由矿工任意修改的数值,以便不断更改区块头来进行哈希计算,直至找到一个低于目标值的哈希值为止。nonce 是一个数字,其范围可以从 0 到由各协议设置的上限。

从理论上来说,根据任何 nonce 算出有效哈希值的概率都是一样大的,因此可以认为 nonce 是经随机选择,并均匀分布的。然而,对许多区块链的数据分析表明,真正符合这一预期的区块链非常少。对此的解释有很多种,但是,因为 nonce 分布上的变化往往可以跟新矿机联系在一起,这表明不同的挖矿硬件往往会有不同的 nonce 挑选策略。

关于比特币区块链的 nonce 分布模式,似乎最早是推特用户 @100TrillionUSD 在 2019 年 1 月初发现不对的。进一步的分析表明,门罗、以太坊和莱特币等区块链的 nonce 分布模式也存在一些奇怪之处。

比特币

比特币的 nonce 分布模式是最著名的。在早期发展阶段,比特币采用了一种常见的模式:很多 nonce 都接近于 0 。这种分布对应的策略很简单,就是来通过不断增加 nonce 来计算哈希值。因为在早期的时候,比特币区块链上的算力很低,挖矿都是用的 CPU ,通常在遍历所有可能的 nonce 值之前就能算出一个有效的哈希值。Sergio Lerner 据此事实对确定中本聪的比特币归属作了最为严肃的尝试。

在引入了 GPU 之后,nonce 字段看似是随机的。但是在大约 400000 的区块高度上,莫名出现了一种新的模式,形成了几条很细的 nonce 值分布带,这些都是矿工选择频率较低的 nonce 值。

BitMEX 研究撰文详细描述了该模式,但是没有找到清晰的解释。

来看一下(整个历史交易过程中)比特币区块 nonce 的直方图,明显可以看出在新的模式下,nonce 值出现了几个低谷。

-红线代表了均匀分布的 nonce 值情况-

想要更细粒度的分析可以仔细看看 bit 的分布情况。比特币中的 nonce 字段是由 4 个字节或者说 32 个 bit 组成的。对每个长度为 32 比特的 nonce 的平均值进行分析之后,会发现一些很有趣的现象:

-颜色越深的地方代表 nonce 中的数位被设置成 1 而非 0 的频率越高,X 轴表示区块高度-

在比特币刚诞生的时候,较高的数位通常被设置成 0 ,因为矿工的 nonce 选择策略就是简单地增加 nonce 值。较低的数位(上图底部的最后 8 个数位)似乎一直遵循某种模式,但是直到最近才发现较低数位的模式发生了变化。

门罗

适合进行 nonce 分析的最有趣的资产之一就是门罗。它也是被分析得最多的一种资产,有很多文章和工具都对其进行了分析。

门罗每 6 个月就会进行一次硬分叉升级,在过去的几次升级中还对 PoW 算法进行了一些调整,从而抵御专用型挖矿硬件。第一次硬分叉引发了争议,因为它分叉出了好几个项目/资产。

因此,我们可以研究这些变化对 nonce 分布的影响。

乍一看,我们可以注意到几个有趣的现象。不过当我们在上图的基础上叠加网络难度值和硬分叉时间表的时候,就会发现更有趣的东西。

-红线代表了硬分叉的时间,而黑线代表了网络难度值-

我们可以看到,所有三次 PoW 升级都造成了难度值降低,其中还有两次改变了原先的 nonce 分布模式。有趣的是,通常都是在网络难度值骤增的情况下,才引入了 新的 nonce 模式。

在网络难度值发生了改变,并且通过硬分叉对 PoW 机制进行调整之后,我们可以从 nonce 分布模式的变化中观察到,第一次分叉有效地抵御了第一代矿机。此外,我们还可以看到,一些矿工在第二次分叉之后迅速带着第二代矿机卷土重来,却在第三次分叉中折戟沉沙。

以太坊

乍一看,以太坊的 nonce 分布几乎没有显示出任何奇怪之处。

再看得仔细一点,我们可以看到在区块高度 7,000,000 之后,nonce 分布图的底部有一些深色的水平线。如果你放大看的话,你就会看到从区块高度 2,000,000 开始到 4,000,000 之间,nonce 分布图的底部有一些斜线。这些线很有可能是由简单的 nonce 选择策略导致的:在反复进行哈希运算的过程中, nonce 是从 0 开始向上递增的。

根据区块 nonce 分布直方图所示,较低的 nonce 值在一段时间内占据了优势:

但是,仔细观察一下 nonce 中每个数位的平均值随时间变化的情况,会注意到一个很有趣的情况(请注意,以太坊的 nonce 是由 64 个数位组成的,不像比特币是由 32 个数位组成的。)

-颜色越深的地方代表 nonce 中的数位被设置成 1 而非 0 的频率越高,X 轴代表了区块高度-

大概从第 1380000 个区块开始,nonce 的中间数位被设置成 0 的频率远高于其他数位。久而久之,其他数位的随机性也下降了。有趣的是,粗略看一下整体的 nonce 分布情况或直方图,并不能发现这种模式,因为调整中间数位对 nonce 直方图的影响并不明显。

有趣的是,ETC(以太坊经典)的 nonce 数位分布也显示出了相同的模式。

-颜色越深的地方代表 nonce 中的数位被设置成 1 而非 0 的频率越高,X 轴代表了区块高度-

从位于上图顶部的白色垂直条画带可以看出,一些矿工惯于从 0 开始增加 nonce。

比特大陆于 2018 年 4 月宣布公开发布了第一款 Ethash ASIC 矿机,并表示将于 2018 年 7 月中旬交付第一批产品。将这两个日期在上图中标注出来后,我们会发现很有意思的东西:

-红色虚线:E3 矿机官宣时间;红色实线:首批 E3 矿机交付时间-

乍看之下,在蚂蚁矿机 E3 官宣之时,以太坊和以太坊经典区块 nonce 中第 41 位的平均值都下降了。只关注这个数位的话,nonce 分布模式就会更加明显:

-红色虚线:E3 矿机官宣时间;红色实线:首批 E3 矿机交付时间-

在 2018 年 3 月中旬之前,第 41 位的平均值在 0.5 上下(下图中的灰色水平虚线表示的是 nonce 呈均匀分布情况下的预期值)。但是,在以太坊和以太坊经典这两条链上,第 41 位被设置成 0 的频率越来越高,而且都是以相同的速度。在矿机按计划首次交付之时(即 2018 年 7 月 16 日,以红色实线表示),平均值急剧下降,但这仅发生在以太坊区块链上。在以太坊和以太坊经典区块链上,第 41 位的平均值在 2018 年 6 月中旬(即,首批 E3 矿机交付前的一个月)就已经下降了,之后只在以太坊区块链上进一步下降。

-红色虚线:E3 矿机官宣时间;红色实线:首批 E3 矿机交付时间-

来看一下当时排名前 5 的以太坊矿池,第 41 位的平均值均开始下降,但是自 7 月 16 日首批 E3 矿机交付之日起,中国的两家矿池 SparkPool 和 F2Pool 挖出的区块内,nonce 第 41 位的平均值进一步下降了。

斗争不止

随着 ProgPow 算法的逼近,再加上门罗团队还在坚持不懈地通过硬分叉来抵御 ASIC ,这场与专用硬件之间的战争可能还会持续下去。随着战争的持续,我们会密切关注下去,并且继续从 nonce 中寻找蛛丝马迹。

(完)