摘要:在本报告中,我们研究了比特币区块链上的合并挖矿。在过去一年左右,平均每个挖出的比特币区块都包含大约两个来自其他区块链的承诺哈希值,这表明大多数矿工正在进行多种形式的合并挖矿。目前,超过 90% 的比特币算力似乎正在从事一种或另一种类型的合并挖矿。在过去的几年中,合并挖矿已经有了可观的增长且基于其潜在的较小安全风险,以及挖矿中心化压力的增加,其对一些人的疑虑可能较小。如果采用这些较新的方案,风险大多可以通过盲合并挖矿来缓解。
什么是合并挖矿?
合并挖矿,有时也称为辅助工作量证明(auxiliary proof of work),是指同时对两条或多条链进行挖矿的过程。基本上同一个工作证明可以在多个系统上作为保证。此涉及到一个母链和一个子链,而子链基本上继承了母链的一些安全特性。我们在2017 年的文章 “2014 年莱特币与狗币的算力竞争及其对比特币与比特币现金的影响” 中首次谈到了这个概念。
本报告将重点讨论以比特币为母链,而另一条链的承诺哈希位于比特币区块链内部某处的情况。在这些情况下,不需要更改比特币,其无需意识到其他系统。然而,另一条链需要被构建用以接受和接收比特币区块头作为工作量证明。然后,矿工可以通过生产有效区块获得两种奖励,即一般的比特币奖励和在替代链上挖矿的奖励。
常规合并挖矿与盲合并挖矿
此外,还需要解释和识别两种理论上的合并挖矿:常规合并挖矿和盲合并挖矿。常规合并挖矿由比特币矿工进行,而盲合并挖矿通常可由任何人进行,然后向比特币矿工支付费用。
常规合并挖矿与盲合并挖矿的特征
常规合并挖矿 | 盲合并挖矿 | |
由谁进行挖矿? | 由比特币矿工进行 | 任何人都可以进行合并挖矿,这些第三方代理再向矿工支付比特币交易费用。 |
有效性 | 矿工被激励检查两条链上区块的有效性。 | 矿工通常仅检查母链区块的有效性,而不关心子链的有效性 |
挖矿激励措施 | 矿工获得每条链的原生代币作为奖励。 | 矿工因工作而获得比特币奖励,如果子链出现问题,也不会损失任何奖励 |
从安全角度来看,盲合并挖矿通常被认为优于常规合并挖矿,因为盲合并挖矿可以防止子链影响母链的风险。例如,在某些系统中,子链的错误或问题可能会导致母链的区块生产停止或区块链重组。常规合并挖矿的另一个潜在问题是,子链的验证成本可能非常昂贵(例如,由于区块太大),这可能会导致母链的挖矿中心化。遗憾的是,据我们所知,目前合并挖矿主要以常规方式进行,而盲合并挖矿相对较少见。
盲合并挖矿系统的示例包括两个相互竞争的提案:Paul Sztorc 较早期的提案(他发现了合并挖矿的许多理论问题),BIP301,以及 Ruben Somsen 较近期提出的升级提案,其可以避免 “特定的” 软分叉。而尽管 Veriblock 对比特币区块空间的使用使该机制存在一些争议,但也可以将其视为一种盲合并挖矿方案。
在本报告中,我们对常规合并挖矿感兴趣。替代链承诺哈希在区块头或 coinbase 交易中,而不仅是在任何交易中的情况。我们之所以选择这样做,是因为在coinbase 交易中寻找替代链哈希的证据比在所有交易中寻找容易得多。除此之外,正如我们先前所解释的,从安全的角度来看,常规合并挖矿可能更重要。因此,常规合并挖矿的盛行率可能很有趣。
承诺哈希位于何处?
至于矿工将替代链中的哈希包含在何处,它们必须位于特定的位置,以避免对哪个承诺为真的疑问。此类承诺的选择有限,由于块头空间几乎都用完了,因此使用 coinbase 交易。我们在 coinbase 交易中识别了两个替代链承诺空间:
- 作为 OP_Return coinbase 输出
- 在 coinbase scriptsig 中
在本报告中,我们尝试评估随着时间的推移,coinbase 交易此两部分中合并挖矿的盛行率。
Coinbase 输出
我们扫描了从 2009 年到 2020 年 10 月的整个区块链历史,并计算了 coinbase 交易中零值输出的频率,而几乎所有都是 OP_Return 输出。如下图 1 所示,这些输出的盛行率近年来已大大提高。在 2020 年初至今,平均每笔比特币 coinbase 交易中有 2.3 个 OP_Return 输出,而在 2017 年之前,该数字实际上为零。
正如我们在 2018 年 3 月所解释的,SegWit 升级的工作原理是在 coinbase 交易中添加 witness merkle tree 的 merkle root 。该承诺与替代合并挖矿链的许多承诺非常相似,因为它们都使用 OP_Return 输出。因此,SegWit 包含在下表中,采用率已接近 100%。 SegWit 不能被真正视为替代链,但是从 2018 年起,即使不包括 SegWit,OP_Return 输出在 coinbase 交易中也变得越来越盛行。这可能表明常规合并挖矿正变得越来越流行。
图 1 –比特币 coinbase 交易中零值输出的数量(1000 个区块周期的平均值)
如图所示,排除 SegWit ,我们将 RSK 区块链确定为增长的主要原因,并以红色重点标记。由于输出中存在与 RSK 相关的标签,我们能够识别出这些标签。在 2019 年的某个时候,其他 OP_Return 输出开始出现,但是我们尚未能够识别和标记这些项目。在下图 2 中,我们更详细地介绍了 RSK 的采用。该图显示了比特币矿工对 RSK 链的采用率现在处于 40% 到 50%。
图 2 – 在 coinbase 交易中具有 RSK 承诺的比特币区块的比例(1000 个区块周期的平均值)
如下图 3 所示,这些 OP_Return 输出的频率在各个矿池之间并不一致,其中某些矿池采用合并挖矿,有些矿池则否。例如,HuoBi 和 Binance 采用 RSK 的频率非常低,但是它们的 coinbase 输出包含额外的 OP_Returns,可能是其他项目产生的。另一方面,SlushPool 对 RSK 的采用率高达 88%,但其他 OP_Return 输出很少。最近,Binance 矿池似乎已采用 RSK,因此 RSK 合并挖矿将进一步增加。
图 3 – 各矿池比特币 coinbase 交易中零值输出的平均数量(自第 500,000 区块起的数据)
在 coinbase scriptsig 中合并挖矿
承诺哈希的另一个位置是 coinbase scriptsig,此处概述了这种类型的合并挖矿的规范。该方案描述了将多个替代链承诺的 merkle root 嵌入 coinbase scriptsig 的方法。因此,该系统通过避免在多个合并挖矿链的情况下需要多个承诺哈希来节省区块空间。 比特币之后的第一个合并挖矿币和第一个替代币 Namecoin 就采用了这种方案。
如上所述,我们扫描了从 2009 年至 2020 年 10 月的整个比特币区块链,以寻找此类合并挖矿的证据。如下图 4 所示,根据我们的分析,使用此方案的合并挖矿似乎是从 2011 年底开始的。采用率随后迅速上升到 75% 左右的算力,然后在 2016 年下降到接近零。此后,这种合并挖矿方案的采用率再次回升,目前约为 85%。
图 4 – coinbase scriptsig 中带有辅助工作量证明的比特币区块比例(1000 个区块周期的平均值)
至于这种合并挖矿方案在比特币历史上的受欢迎程度所发生的重大变化,我们无法提供简洁的解释。这可能与 Namecoin 的各种软件 bug 有关,这些 bug 可能导致不同时期矿工采用率的下降,也可能与不同矿池的受欢迎程度随时间的变化有关。下图 5 显示了 Namecoin 在这一时期的价格,其似乎在一定程度上与这种合并挖矿方案的使用情况相关,这也可能部分解释了比特币矿工采用情况的变化。因此,2017 年的复苏可能是由 ICO 价格泡沫所驱动,再加上基于当前的比特币核心(而不是非常老的比特币版本)的 Namecoin Core 发布,这可能使合并挖矿变得更加容易。
图 5 – Namecoin 价格(美元)
如下图 6 所示,在最近几年中,大多数矿池都采用了这种合并挖矿方案。在主要矿池中,唯一明显的离群值是 Antpool,其 71% 的采用率比其他低,而 BitFury 则似乎从未采用该方案。
图 6 – coinbase scriptsig 中合并挖矿承诺的百分比(自第 500,000 区块以来的数据)
结论
我们惊讶地发现近年来合并挖矿在比特币矿工间变得如此流行。特别是,矿工不仅使用一种方案,而是采用多个系统,并可能使用多个软件,这在理论上可能会出错并造成问题。每笔 coinbase 交易都包含对许多替代区块链系统的承诺哈希,有时甚至多达四或五个。鉴于比特币矿工的高度采用率,这可能会带来额外的安全隐患。例如,矿工为了保持经济竞争力可能需要运行复杂或资源密集型的合并挖矿计划,可能会增加挖矿集中化压力。除此之外,这些替代链中的 bug 或链重组也可能会对主链造成问题,但是,只要软件系统执行得当,这种风险应该很小。
上面提到的盲合并挖矿方案似乎减轻了大多数这些安全风险,因此采用这些较新的系统可能是可取的。但是,尚不清楚是否有任何重大的激励来升级到这些盲系统。至少到目前为止,我们还没有证据表明这些替代性合并挖矿链在区块奖励中占很大比例,因此,与合并挖矿相关的安全风险在实践中可能有限。同时,我们还没有任何证据表明合并挖矿会给比特币带来问题。但是,我们认为值得仔细监测相关情况。