合并挖矿

新手Nov 22, 2023
本文详细概述了合并挖矿的历史、技术和应用等,阐释了如何利用合并挖矿来增强区块链安全性,从而让读者深入了解其在区块链生态系统中的关键作用。这是一份综合指南,适合那些专注于利用合并挖矿来保证区块链安全的人。
合并挖矿

工作量证明(PoW)是中本聪共识(Nakamoto Consensus)的基本组成部分。它有两大功能:一是用于选择区块生产者的女巫抵抗机制,一是提供了恢复区块链的基线和不断增加的成本。这就是为什么说 PoW 保证了比特币区块链的安全。

合并挖矿是一种将保护一个区块链所付出的努力同时重复用于保护另一个区块链的技术。就像 PoW 为中本共识提供动力一样,合并挖矿也可为不同区块链的共识提供动力。合并挖矿链的共识协议也可以是中本共识,也可以是它的变体,例如GHOSTDECOR。应用合并挖矿技术的行为通常被称为“合并挖矿”。合并在两个区块链上挖矿的唯一要求是它们要使用相同的块头哈希函数(和难度检查)来获得 PoW。

合并挖矿的工作方式很简单。首先,我们假设有一个主区块链(假设是比特币)和一个辅助区块链S。设hB和hS分别是比特币和S的两个新区块头。令 H 为任意加密哈希函数。要开始挖矿,合并后的矿工必须构建 hB 模板,使其明确引用 H(hS)。采矿过程变化很小。在挖矿时,矿工试图找到导致 hB 工作量证明的随机数,该随机数满足比特币网络照常确定的难度(即 SHA256D(hB) < targetB)。然而,如果矿工找到一个比特币区块头,其工作量证明与合并挖矿链的难度相匹配(SHA256D(hB) < targetS),那么 hB、hS 以及一些附加区块头链接信息将成为合并挖矿区块的有效的工作量证明。完整的合并挖矿区块将包含 PoW 和其他剩余链特定数据(即 hS 引用的交易)。该区块被发送到辅助区块链网络以添加到辅助区块链。通过合并挖矿,可以用一个工作证明的价格创建两个不同的工作量证明。

历史

合并挖矿几乎有着和比特币一样悠久的历史。 2010年,中本聪本人提议使用合并挖矿来保护假设的 BitDNS 侧链,该侧链将存储去中心化域名。这个想法很快得到实施并作为 Namecoin 山寨币推出。 2011年,Namecoin开始与比特币合并挖矿,以实现更高的安全性。

在此期间,其他区块链也效仿这一趋势,开始与比特币进行合并挖矿。但并非都尽如人意。2012年,LukeJr 对 Coiledcoin 发起了 51% 攻击,当时 Coiledcoin 正在与比特币进行合并挖矿。该事件表明,合并挖矿并不是每个区块链的安全灵丹妙药,新的合并挖矿链与之前的链之间必须存在高度的激励一致性,才能确保该机制的安全。

2014年,还发生了一件重要的事件。狗狗币(Dogecoin)和莱特币(Litecoin)使用相同的挖矿功能,矿工开始在两个区块链之间集体切换。当狗狗币利润更高时,他们都会转而开采狗狗币,从而加速区块生产。当狗狗币难度调整开始并使挖矿变得难以盈利时,他们就会集体转向莱特币,以最大限度地提高盈利能力,循环如此重复。这导致了算力不稳定、区块率和代币发行不稳定。此后,狗狗币算力变得太低而不被认为是安全的。狗狗币社区决定开始接受与莱特币合并挖矿的区块。截至今天,一个社区中没有任何矿工试图攻击另一个社区。没有发生攻击的原因有几个:首先,合并挖矿对两个社区都有利,因为通过合并挖矿,区块难度和区块率可以再次稳定。其次,这对矿工来说也是有利的,他们可以暂时将收入翻倍(直到区块链难度向上调整结束这个宽限期)。第三,具有相当的算力,没有一个矿工可以轻易攻击另一条链。第四,莱特币和狗狗币社区之间不存在意识形态之争(我们自问一下,这些社区是否有归属感)。矿工只会挖掘最赚钱的链。

独立区块链

合并挖矿历来受到青睐的原因之一是,它能够创建完全独立的区块链。所谓独立,是指即使主链由于技术问题而暂停或在没有社区支持的情况下直接停工,这些二级链也能继续工作。在没有主链的情况下,辅助链仍然可以继续从合并矿工那里获取工作。早年,就连比特币也没有确定的未来。Rootstock 侧链选择合并挖矿作为其共识协议(而不是像 Liquid 那样的联合共识)的原因之一是,Rootstock 是在区块大小战争期间创建的,并且存在比特币被攻击者破坏或被分裂社区分裂的真实风险。

区块率

与其他继承比特币安全性的替代方式相比,人们更喜欢合并挖矿的一个重要原因是,在合并挖矿下二级链具有更高的出块率。

在比特币之后,创建的所有区块链都是为支持更高的区块率(更低的区块间时间)。人们认为这会对去中心化产生负面影响,因为它可能导致单一矿工产生更多的孤立块,迫使他们加入更大的矿池以维持竞争力。高区块率有几大好处,最明显的一个是用户交易的确认速度更快。较高区块率的一个自相矛盾的好处是支付奖励变化幅度减少,但这反过来又减少了加入大型矿池的激励,从而提高了去中心化。出块率代表了可用性与去中心化之间的权衡,而理想的出块率很难找到。

因此,设计者在设计与比特币合并挖矿的合并挖矿区块链时应谨慎考虑区块率。如果不采用更普惠的共识协议,平均出块间隔低于10秒可能会给合并矿池带来额外的带宽压力,导致成本增加,以至于它们与非合并矿池相比时会处于不利地位。

合并挖矿的竞争者

与中本聪合并挖矿类似,还有其他方法可以继承其他链的安全性。第一个已知的方法是由 Mastercoin/OMNI 协议实现的,第二个是 Counterparty 协议。RGB等新项目也采用了这种方法。该方法基于在比特币交易中嵌入替代账本的交易数据。在 RGB 中,这种嵌入仍然存在,但它完全隐藏在 Taproot 树中。然而,Mastercoin/Counterparty/RGB 账本历史都没有形成单独的区块链。账本历史仅是比特币区块中嵌入的特殊交易的顺序列表。还有其他方法可以创建从主链继承安全性的单独区块链,通常是尝试完全或部分同步两个区块链。所有这些都基于在 OP_RETURN 输出中的发布数据。这样的例子有 VeriblockPoXSyncchains。通过这些“同步”链,主链区块的反转会自动反转随后出现的次链区块。一个不足之处是,它们迫使二级区块链节点也运行主链节点。虽然链接的区块链可以提供共享的安全性(以及快速的跨链传输),但如果不引入另一个交换共识协议(即比特币 NG 的微区块),同步共识就无法为辅助区块链提供更快的区块率。相反,合并挖矿链可以使用任何区块率,尽管如前所述,有一个阈值限制,如果超过阈值,由于高带宽要求,合并挖矿将不再经济。

评判与发展

已有人分析了中本聪共识中的合并挖矿,并也产生了一些支持反对这一机制的研究论文。然而,现有的研究都集中在合并挖矿对去中心化的实际效果上,而仍然缺乏方法的形式化研究。学术研究还没有涉及Namecoin合并挖矿方法以外的方法。但Namecoin这种方法已得到了很大的改进。2018年,Rootstock 比特币合并挖矿侧链的推出重振了这一研究,导致发现了更安全的合并挖矿协议,例如分叉感知变体(fork-aware variants)。其中一些改进是在 Rootstock 的连续网络升级中实施的。然而,新的理论研究仍然分散存在于在线文章和 RSKIP(砧木改进提案)中,应进一步纳入文档记录。合并挖矿的新变种(将在下一篇文章中讨论)可以抵御一些已知的攻击。例如,人们普遍认为,当合并挖矿算力较低(即,<主链算力的10%)时,合并挖矿侧链无法抵御双花攻击,而对于一些新的协议变体,它可以抵御双花攻击(基于稍微不同的安全性和活性假设)。

Namecoin 合并挖矿设计

Namecoin 与比特币合并挖矿的方式很简单。在生成交易的 coinbase 字段的末尾,矿工写入 4 个字节,表明后面有一项 AuxPow 记录。这 4 个字节称为魔术字节,Namecoin 使用它来轻松查找 AuxPow 记录。接下来,我们找到 AuxPow 记录,矿工必须在其中存储 Merkle 树的根哈希摘要,其中包含正在合并挖矿的不同区块链的块哈希。接下来是treeSize字段,它指定树中包含的不同区块链的合并挖掘块的数量,以及一个treeNonce字段,该字段应有助于避免链ID的冲突,但设计有缺陷,并且该值未被使用。下图描绘了一个带有 AuxPow 记录的比特币区块,该记录链接到来自 4 个不同的合并挖矿区块链的4个区块(W、X、Y 和 Z):

Namecoin 合并挖矿设计

为了使 Namecoin 节点验证 Namecoin 区块的工作证明,该区块必须包含包含以下内容的数据字段:

  • 证明 Coinbase 交易包含在比特币区块交易树中的 Merkle 路径
  • coinbase 交易本身,包含 AuxPow 树根。
  • 在 AuxPow 树中查找 Namecoin 区块哈希的 Merkle 路径。

Namecoin 共识有一个规则来验证合并挖矿证明和比特币块投的工作量证明(忽略所有其他字段)。

主链/次级链的区别

我们通常将单个主区块链与所有合并挖矿的二级区块链区分开来,因为二级区块链块需要额外的 Merkle 证明来允许验证工作量证明。但从博弈论的角度来看,不存在主链。所有这些都为安全预算做出了贡献。如果主区块链算力下降到合并挖矿总算力的10%,那么人们可能会说辅助区块链已成为主区块链,因为现在该区块链可能是支付大部分安全预算的区块链。这种区别可能更加令人困惑,因为合并挖矿的“二级”区块链可以从多个“主”链中获取工作量,就像 Rootstock 的情况一样。虽然 Rootstock 的算力大部分来自比特币矿工,但有时也有一小部分算力来自比特币现金矿工,因此 Rootstock 继承了两个主链的算力。

即使出于哲学原因,人们也不希望从比特币 SV 等获得算力,但这也无法轻易阻止。从 Rootstock 共识的角度来看,比特币和比特币 SV 区块头看起来相同(父区块或难度字段可用于根据区块难度试探性地对它们进行区分区分它们,但这并不精确)。因此,通过结合所有基于 SHA256D 的区块链(包括比特币)的算力,Rootstock 可能拥有比比特币更高的算力。

因此,我们遵循语法定义:主链是具有较短合并挖矿证明的链,通常具有单个块头,而辅助链是那些需要附加块头及其嵌入在第一个块头中的哈希的链。

区块链中立

2011到2013年期间,bitcointalk.org 论坛上发布了多项提案,要求执行比特币硬分叉,将比特币工作量证明提取到单独的“主”块头链中,并使所有合并挖矿的区块链区块(包括比特币)源自此主块头链。所有区块链块哈希都将成为单个 Pow Merkle 树的一部分。然而,这些提案并没有得到关注(总的来说是没有任何比特币硬分叉提案得到关注)。

事实上,主块头根本不需要成为链的一部分。块头可以很小,只需指定链块哈希的 Merkle 树根以及改变块头以找到 PoW 所需的随机数。正如我们将在后续文章中看到的,在这个小块头中包含时间戳字段可以提高所有合并挖矿链的安全性,这个虚构的小块头如下图所示,其中 X 和 Y 指的是其他一些合并挖矿的区块链:

没有任何主区块链的合并挖矿设计

如果采用这种数据结构,比特币合并挖矿就不会有主链了。

在分析矿工使用相同的工作量证明来保护多个区块链的动机时,我们必须将所有这些区块链视为平等的链进行分析。为了分析合并挖矿激励,我们应考虑 SHA256D 矿工(实际使用的哈希函数)而不是比特币矿工。我们必须分析所有合并挖矿的区块链以及区块链为矿工提供的激励。

合并挖矿侧链

比特币侧链增加了比特币的效用,因此它们为比特币的价值做出了贡献。使用侧链,比特币持有者可以执行私人支付、创建 DAO 并探索创新用例,而无需将比特币换成其他波动性更大的货币(有时被比特币至上主义者称为“垃圾币”)。目前存在 Liquid(采用联合共识)和 Rootstock(采用合并挖矿)这两种比特币侧链。

Rootstock 侧链提供更便宜的支付和更优惠的去中心化金融(DeFi)应用程序。对于比特币爱好者来说,有用的去中心化应用之一是由 rBTC 抵押的稳定币自贷服务。该解决方案允许比特币持有者使用以法定货币计价的代币,而不必因日常支出而被迫出售比特币。

人们普遍认为,比特币上的 DeFi 将在未来几年显著增长,并且未来将出现新的不可预见的用例。这就是为什么大多数比特币用户支持 Rootstock 并渴望看到它更快增长的原因。

Rootstock 侧链专门用于为比特币社区提供激励。它使用合并挖矿共识协议来激励比特币持有者,特别是激励比特币矿工参与。这种共享激励和共享社区让比特币和 Rootstock 可以成功合并挖矿。

在下篇中,我将介绍 Rootstock 合并挖矿共识模型,还将展示 Rootstock 社区创建的几项创新,这些创新大大提高了合并挖矿的安全性。我还将展示合并挖矿如何通过增加长期安全预算来使比特币受益。

总结

合并挖矿是基于 PoW 的共识协议的重要部分,它使区块链能够继承主链的安全性,而无需重复挖矿成本。与基于权威证明或权益证明的共识协议相比,使用合并挖矿的中本聪共识可以带来更高的去中心化程度。然而,只有在互惠互利的情况下,主链安全才会与合并挖矿链共享。因此,合并挖矿是比特币侧链的最佳选择,可为比特币网络添加巨大价值。Rootstock是第一个图灵完备的比特币智能合约侧链,由当前比特币算力的50%以上合并挖矿,并且其算力每年都在增长。因此,它成为了现有的最安全的智能合约网络之一。 Rootstock 使用了该协议的分叉感知变体,这将在下一篇文章中讨论。

声明:

  1. 本文转载自Bitslog,著作权归属原作者[Sergio Demian Lerner],如对转载有异议,请联系Gate Learn团队(gatelearn@gate.io),团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得覆制、传播或抄袭经翻译文章。
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!
Créer un compte