首页 >> 区块链日排行 >>日排行 >> 美国国家标准技术研究所:自私挖矿策略如何影响比特币等减半币
详细内容

美国国家标准技术研究所:自私挖矿策略如何影响比特币等减半币

时间:2020-02-13     作者:链闻【转载】

随着加密货币新周期的到来,矿工们已经迎来了春天,而摆在他们面前的,无非是挖哪个币,以及怎么挖才能获取更多收益的问题。

是的,本周的学术内容,就是跟挖矿这件事有关啦。

而我们要分享的,是来自美国国家标准技术研究所 (NIST) 的一篇论文,其讨论了自私挖矿策略对比特币、莱特币、比特币现金(BCH)、达世币(Dash)、门罗币(Monero)以及大零币(Zcash)的影响。

美国国家标准技术研究所:自私挖矿策略如何影响比特币等减半币图片来自:tuchong.com

自私挖矿策略对各大减半币的影响

理论上,自私挖矿攻击可以让矿工获取超额份额的区块奖励,同时降低支付的整体安全性。关于这种恶意策略应用于比特币的研究,目前已经有很多了,但对该策略如何影响其他加密货币的关注却要少得多。

这是因为,自私挖矿是对加密货币难度调整算法(DAA)的一种攻击,因此在针对使用不同难度调整算法(DAA)的加密货币时,可能会产生截然不同的效果。

而在美国国家标准技术研究所 (NIST) 发布的新论文《基于多难度调整算法的自私挖矿收益率研究》中,研究者 Michael Davidson 和 Tyler Diamond 对多个 PoW 加密货币的自私挖矿要求及收益率进行了评估,这些币种包括比特币、莱特币、比特币现金(BCH)、达世币(Dash)、门罗币(Monero)以及大零币(Zcash)。

研究发现,考虑中的其他加密货币要远比 BTC 更容易受到自私挖矿的影响,此外,研究还表明,通过不诚实地报告区块时间戳,对于一些难度调整算法(DAA)而言,自私挖矿策略可以为非诚实矿工带来不成比例的收入,这要比他们通过诚实挖矿的收入高出 2.5 倍。

1 自私挖矿的概念

通常,当一个矿工开采一个新区块时,他们会将该区块广播给他们的对等节点,这样做目的是使该区块尽快传播到网络的其余部分,而矿工只有在自己的区块被接受之后才能获得区块奖励,因此,在通常情况下,迅速将任何新的区块提交给竞争者,是符合矿工最大利益的。

然而,在某些情况下,偏离策略将允许具有全网 x% 算力的矿工获得超过 x% 比例的区块奖励。

这一策略的工作原理是自私矿工广播其扣留的区块,然后迫使诚实矿工在这些区块上进行开采。

下图显示了自私矿工用来确定是否发布其区块的算法:

美国国家标准技术研究所:自私挖矿策略如何影响比特币等减半币图:最初的自私挖矿策略

然而,仅此一点是不足以让自私挖矿的矿工盈利的,只要挖矿难度保持不变,那么使用自私挖矿策略的矿工就会遭受损失,当然,诚实矿工的损失会更为惨重,因此,在这种情况下,理性的参与者是不会使用自私挖矿策略的。

而只有在网络难度向下调整时,自私挖矿策略才可能会盈利。

下面的公式给出了自私挖矿矿工在拥有多少比例的算力时,其能够提高挖矿相对收入的情况:

如果γ =1/2,则当α ≥1/4 时,自私挖矿是有利可图的,而如果γ = 0,则当α ≥ 1/3 时,自私挖矿是有利可图的。(其中α是自私矿工控制的总算力比例,而γ则是诚实矿工选择在自私矿工发布的区块上挖矿的比例)。

美国国家标准技术研究所:自私挖矿策略如何影响比特币等减半币

2 难度调整算法(DAA)

由于工作量证明(PoW)加密货币没有中央机构来确定谁可以挖矿,以及以什么速率进行挖矿,因此网络算力总量会随时间而发生变化。

然而,为了保持有计划的货币政策以及更好的用户体验,不管算力如何,都应该在可预测的时间内找到新的区块(例如,比特币的目标是 10 分钟的区块间隔)。而如果没有难度调整算法(DAA),算力的增加会使区块的发现越来越频繁,从而导致货币通胀率提高,并且使支付变得不那么可预测和安全。而难度调整算法(DAA)的作用是改变挖矿难题的难度,以适应算力的变化,以相对恒定的速度生成区块。

虽然难度调整算法(DAA)的主要目的是在算力波动的情况下,长期保持区块时间的一致性,以便执行加密货币的货币政策,但在其设计中,可能会考虑到其它各种因素。

例如,当算力保持不变时,难度调整算法(DAA)应避免突然的难度变化,阻止算力和难度之间的反馈产生剧烈的振荡,并避免新区块之间出现异常的长间隔。

3 时间和时间戳

在分布式系统中,要保持精确的时钟是一个具有挑战性的问题,而相对准确的计时,则是难度调整算法所需要用到的。

一些加密货币具有不同的时间戳规则,但这里研究的规则大致是相同的。节点关心的时间有三个概念:系统时钟时间、区块时间戳以及网络调整时间。当节点连接时,它们会各自向对方发送一个时间戳。而门罗币是这项研究当中唯一不使用网络调整时间的加密货币。

由于区块时间戳是节点可客观达成一致的唯一时间,因此它是在难度调整算法(DAA)计算中使用的时间戳。有两个规则可确定节点是否会根据其时间戳将区块视为有效;

  1. 区块时间戳必须比网络调整时间早 2 个小时以下(或者在门罗币的情况下,则是系统时钟时间);
  2. 时间戳必须大于前 11 个区块的中间时间戳;

总之,这些规则应防止区块时间戳偏离实际时间超过几个小时,并为节点提供一个商定的时间概念,以便进行难度调整。

但是,如果难度调整算法(DAA)设计得不好(或实现得不好),恶意矿工就可能策略性地设置区块时间戳,以「迷惑」算法并迅速降低难度,从而更快地挖取到更多的奖励。

而这是一种被称为时间扭曲的攻击方式,并且已经有攻击者在几种加密货币上成功执行了,这使得这些币的产出较原计划大大提前了。

利用时间戳的另一种可能的攻击,是利用网络调整时间的时间劫持攻击。通过多次连接到目标节点并报告错误的时间戳,保持目标连接一半以上的攻击者,可以将受害者的网络调整时间向前或向后移动最多 70 分钟,这可用于强制目标节点临时认为区块是有效或无效的。

4 自私挖矿策略的进化及变体

我们需要知道的是,自私挖矿策略在难度调整之前是无利可图的,这已经得到了 Cyril Grunspan 和 Ricardo Pérez-Marco 的论证,这也是为什么当前我们没有在比特币网络观察到自私挖矿攻击现象的原因之一。

而 Nayak 等人的研究表明,各种「顽固挖矿」策略可以提高矿工的利润,此外,将这些策略与日蚀攻击(eclipse attack)相结合,就可以提高收益,甚至反直觉地使被日蚀攻击的「受害者」受益。而 Sapirshtein 等人则利用马尔可夫决策过程进一步改进了自私挖矿,得到了最优的挖矿策略,并表明使用其策略,矿工可以将攻击所需的算力要求从 25% 降低到 23.21%。

其他人则通过更详细的模型或现实环境来研究自私挖矿的性能。在这种环境下,自私的矿工往往会创建更大的区块,从而收取到更多的费用。Gervais 等人将区块传播时间、区块大小、预期区块时间以及日蚀攻击的可能性纳入他们的模型中,并表明较大的区块大小以及较短的预期区块时间,会增加自私矿工的相对收入,但是,先进的区块传播技术可以最小化这一问题。

以上的研究,只考虑了单个自私矿工存在的模型,而其它研究则展开到多个自私矿工同时作用的情况。

例如,Francisco J Marmolejo-Cossío 等人提出了多个自私矿工存在的情况下,加密货币的安全性反而会进一步退化,例如,当有两个独立的自私矿工,实现自私挖矿的算力门槛就可以下降到 21.48%。

与比特币不同,以太坊的「叔块」也是提供奖励的,而这在理论上降低了自私挖矿的门槛,因为这些区块仍然会给自私矿工一些回报,使得战略风险降低了。根据 Ritz 和 Zugenmaier 的研究表明,通过观察到的以太坊叔块比例,其自私挖矿的盈利阈值为α=0.185±0.012。 而 Niu 和 Feng 的马尔可夫模型发现,在α>0.163 的情况下,以太坊的自私挖矿是有利可图的,而在这个值以下,自私矿工的损失要低于他们在比特币上进行自私挖矿活动的损失。此外,由于叔块奖励,自私矿工和诚实矿工的收入都随α增加,从而可能导致以太币资产更高的通胀。

而在最近,Cyril Grunspan 和 Ricardo Pérez-Marco 更正式地分析了以太坊对自私挖矿的敏感性,并提出了新的变体策略。

而其它与自私挖矿有关,但又存在区别的挖矿攻击也逐渐多了起来。

例如,Yujin Kwon 等人提出的 FAW (Fork After Withholding)攻击,其涉及从攻击者所属的矿池中扣留工作量证明解决方案,然后仅在外部诚实矿工发布其解决方案时传播该解决方案,从而创建故意的分叉。这种策略总是有利可图的,实际上它就是大矿池攻击小矿池的一种方式。Coin-hopping 则是另一种攻击方式,攻击者从一个币跳至另一个币,让诚实矿工去面对更高难度的链,然后当难度降低时又转回来,这使得攻击者矿工能以尽可能低的成本挖矿。

5 应对策略

自私挖矿攻击方案的首次提出者 Eyal 和 Sirer 建议,当有两个相互竞争的链出现时,诚实矿工应该随机选择,而不是优先考虑第一看到的链。这相当于将γ设置为 0.5,因此,如果α<0.25,自私挖矿将无利可图。

Heilman 则提出了一种名为 Freshness Preferred 的技术,使用这种技术后,矿工并不是接受它们第一看到的区块,而是接受来自可信源最新时间戳的区块。他还建议对「不可伪造的时间戳」使用 NIST 随机 beacon,这将自私挖矿的盈利门槛提高到了 0.32。

ZeroBlock 则试图通过让矿工在其本地链的末端附加「仿造」区块来防止自私挖矿,前提是它们在一定时间内没有看到新的区块。Zhang 和 Preneel 则提出了一个向后兼容的防御措施,以防止自私挖矿,而该方案的主要缺点是,网络从分区中恢复需要花费更长的时间。

6 模拟器

据悉,该论文的研究者提出了一个使用蒙特卡洛 (Monte Carlo) 方法的模拟器,以确立针对各种难度调整算法(DAA)的自私挖矿的盈利能力。

模拟器代码库链接:https://github.com/usnistgov/SelfishMiningSim

研究所选的难度调整算法(DAA),是当前加密货币市场市值靠前的币种所采用的,而由于以太坊使用的 PoW 共识机制是更复杂的,因此超出了研究范围。这里考虑的币种是 BTC、BCH、LTC、XMR、Dash 以及 Zcash。

据悉,这一模拟器做了一些简化的假设:

  1. 持续的区块奖励;
  2. 恒定的算力(没有新矿工上线或消失);
  3. 区块没有传播延迟;
  4. 攻击发生后,加密货币的汇率依旧保持不变;
  5. 只有一个自私矿工(或矿池)存在;

此外,研究没有考虑诚实矿工在发现自私挖矿攻击时会做出何种反应。从理论上讲,诚实矿工可能会采取行动,以此降低自私挖矿者的效率。然而,现有的研究表明,当多个矿工同时应用这种策略时,自私挖矿往往更有利可图。

7 模拟结果

(需要强调的是,这里的结果是针对难度调整算法(DAA)本身,而不一定是指使用它的币,这是因为一些加密货币(比如 BCH 和 Dash)还采取了其他缓解措施,而这些措施可能会使自私挖矿变得更具挑战性,或者收益会更低。)

研究结果显示,比特币矿工要实现自私挖矿,其需要掌握很大一部分算力才能够盈利,并且在盈利的时候,要比其它币种的算法拥有更低的 TARG (时间调整相对收益)。

在拥有 40% 算力,且没有网络影响的情况下,自私矿工仍将是亏损的(超过 10000 个区块),而对于下一个最佳竞争对手门罗币(Monero),同样的自私矿工将其时间调整后的收入增加 19.15%。然而,随着自私矿工网络影响力的增加,这种差距趋于缩小。而 Dash 采用的暗黑重力波(DGW)算法以及 zCash 的 Digishield 则是另一种情况,其中 DGW 算法特别容易受到时间戳操纵的影响,而 BCH 的 D601 算法则介于两者之间。

美国国家标准技术研究所:自私挖矿策略如何影响比特币等减半币每种币默认参数的 TARG 结果

8 结论和未来的研究方向

这篇论文比较了自私挖矿策略对各种难度调整算法的攻击效果。此外,研究还证明了一些算法要比其他算法要更容易受到自私挖矿攻击的影响,自私挖矿矿工应该将区块时间戳操纵作为其策略空间的一个新组成部分。

在今后的工作中,还有很多问题是需要研究的,例如,挖矿者如何确定最佳时间戳,是否存在比天真地将时间戳设置为与挖矿者系统时间的偏移量更高级的策略?

timejacking 又是如何影响自私挖矿的盈利能力的?如果多个自私小矿工同时挖取一种加密货币,而时间戳操纵大大降低了盈利门槛,那会怎么样?

还有很多其它潜在的难度调整算法可以分析,包括简单的组合。最后,未来的研究工作还应该检查某些缓解措施的有效性,例如 BCH 和 Dash 目前所采用的措施。

洒脱喜简评:仅从难度调整算法来看,比特币似乎是最能抵抗自私挖矿攻击的,而实现盈利的要求(40% 算力),使得这类攻击发生的可能性是非常低的,而其它 PoW 币种的自私挖矿则相对更容易实现,当然,一些币种已经采取了缓解措施,而它们的有效性仍然是有待确认的。