自私挖矿vs诚实挖矿的盈利能力

[复制链接]
14930 |0
发表于 2018-11-20 15:00:17 | 显示全部楼层 |阅读模式
译者前言:自私挖矿是一种针对比特币等工作量证明(PoW)机制区块链的挖矿策略,简单说就是挖到区块先不公布,而是继续挖矿,然后根据策略择机公布。而这种策略,根据研究者们的探讨,实际上会降低网络验证区块的速度,同时会削弱诚实矿工的盈利能力,而在难度调整之前,这也会对自私矿工本身带来不利影响。
可以说,在这种情况下,自私挖矿相当于是“杀敌一千 自损八百”的“七伤拳”。而只有在难度调整之后,自私挖矿才可能是有利可图的。
由此,我们认为自私挖矿是针对比特币协议的一种攻击方式,这种攻击利用了比特币难度调整公式的缺陷。它在实际情况下虽然难以实现,但较51%攻击而言却是更可行的。对此,研究者CYRIL GRUNSPAN和RICARDO PEREZ-MARCO\’提出了一种新的难度调整公式,它虽然无法消除自私挖矿的可能性,但即使是在发生难度调整的情况下,自私挖矿较诚实挖矿也不会具有优势。


201811200445187847.jpg

201811200445187847.jpg

(图片来自:pexels.com
论文标题:关于自私挖矿的盈利能力
论文作者:CYRIL GRUNSPAN和RICARDO PEREZ-MARCO\’
译者:洒脱喜
摘要:我们探讨了比特币网络当中可能存在的自私挖矿策略,并正确评估其攻击成本及盈利能力。预期的攻击持续时间,在很多相关文献中被忽略掉了,但这是关键的。我们证明了,这种策略只有在网络调整难度后才能够盈利。因此,这是一种针对难度调整算法的攻击。我们提出了一种改进协议,可使比特币网络免受自私挖矿攻击的可能。

一、简介
比特币协议[7]的稳定性, 依赖于其规则符合网络参与者的自身利益。它的基本规则之一是,区块一旦得到验证,矿工们就会选择公布它们。而“自私挖矿”则是一种异常的挖矿策略 [5],其中主要的矿工运营者选择扣留挖矿区块,并采取定时策略将其公布,以使网络其余矿工开采的最大数量区块无效。文献[5]的作者毫无根据地称自私挖矿策略会破坏比特币协议 [4],但在实践当中,我们并没有观察到这种现象。
其他研究人员则提出了其它被认为是“最佳的”自私挖矿策略[9]。自私挖矿策略以课程和教科书的形式,呈现在比特币书籍当中,例如 [1](该书籍的第5章内容,被称为“临时扣块攻击”)或者[10]。
然而,这些文献都没有对自私挖矿攻击的成本进行适当的分析,并且,更重要的是,它们忽略了时间考虑。更确切地说,这些论文中使用的马尔可夫模型,从一开始就是存在缺陷的,因为它没有纳入攻击持续时间分析。而本文的主要目标,是实现分析自私挖矿的盈利能力,这是在文献当中没有的。事实证明,在没有难度调整的情况下,这种自私挖矿策略是靠不住的。

二、自私挖矿策略
我们描述了文献[5]中提出的自私挖矿策略。自私矿工通过验证和不广播区块实施攻击,然后继续在这个区块的顶部秘密地进行挖矿。然后这名矿工会如下进行操作:
(1)如果自私矿工的优势是1个区块,当诚实的矿工发现了一个区块,然后自私矿工立即偷偷地广播他已秘密挖到的区块。然后接下来就是一场竞赛,自私矿工在他公布的区块上进行挖矿任务。自私矿工与网络的其它参与者是有充分联系的,因此,诚实网络的0 ≤ γ ≤ 1占比部分会接受他的区块提议,并开始在他的区块上进行挖矿任务。
(2)如果自私矿工的优势是2个区块,当诚实矿工发现了一个区块,然后自私矿工立即偷偷地广播他已秘密挖到的区块。然后,整个网络就会切换到他所在的分叉链。
(3)如果自私矿工的优势大于2个区块,当诚实矿工发现一个区块时,则自私矿工可公布区块,以释放一条子链,与新的诚实区块进行竞争。而自私矿工可在他的秘密链上继续挖矿。
(4)除了(1)之外,自私矿工都可以在他的分叉链上偷偷地进行挖矿。
请注意,如果自私矿工的优势区块大于2,那么在某个时刻,他的优势将等于2个区块(因为我们假设他的算力小于50%,或者其它更有效的攻击是可能的),然后,根据第2点,整个网络最终采用自私矿工提出的分叉链。因此,当他的优势区块总是大于2时,自私矿工所公布的区块,总是会被网络所接受。而第3点则是有些无关的,因为当自私矿工占据优势时,重要的是强迫他验证的区块被纳入到区块链当中。他可以忽略掉诚实矿工的区块验证,除非当区块优势只有2时,然后自私矿工只能释放整个秘密分叉链。
在文献[5]中,作者们假设了γ占比始终保持不变。这是不准确的,因为γ取决于网络新区块被挖掘的时间,因此它是无法保持不变的。但在[5]中所运用的马尔可夫链模型,就需要假设γ是不变的,因此,这些作者提出了这种假设。这种分析是不准确的。但是,更重要的是,他们没有核算这种攻击的成本。对于这样的流氓策略而言,计算盈利能力是十分重要的。时间分析对于估计盈利能力而言,也是至关重要的,但这些作者也都选择了忽略。

三、自私挖矿vs诚实挖矿的盈利能力
3.1. 文献中的盈利能力。大多数关于自私挖矿策略的文章,都没有考虑挖矿成本因素,或只是含蓄地进行了表达。在 文献[5]中,这个因素干脆被忽略掉了。而在 文献[3]等文章当中,我们可以看到令人惊讶的陈述:
成本。每个矿工m都有可配置的参数Cm, 即表示矿工m进行挖矿任务的成本(即电力)。对于我们的模拟结果而言,我们总是设置Cm = 0,因为我们不会看挖矿的这方面。

显然,如果挖区块没有任何能源成本的话,任何人都可尝试逆转比特币交易的历史,并尝试双花攻击,也不会有尊重比特币协议的经济激励。能源成本使得伪造区块链是昂贵的,这是比特币安全的基础!
其他作者,如[2],则以以下方式来描述自私挖矿:
“自私挖矿确实在短期内会减少攻击者的收入,但它确实会大大减少其他人的收入,因此中立节点就有动力加入攻击者的联盟,以增加自己的收入。最终,攻击者的联盟将扩大到50%以上的规模,可能会使攻击者对网络造成很大的控制影响力。”

换句话说,根据这种解释,一个损失钱的矿工会被攻击吸引,然后加入到另一个损失钱矿工的队伍当中。而这仅仅是因为攻击者矿工损失的钱更少,所以攻击者能够说服那些诚实矿工!撇开诚实矿工无法确切知道双方盈利能力差异这一事实不谈,这种天真的情景,可以说是令人难以置信的。
从这个角度来看,自私挖矿仅仅是作为控制网络的51%攻击的一种预备行为。实际更可能的结果是,诚实矿池会注意到某些矿工在做自私挖矿,他们将采用明显的防御策略,并开始自己的自私挖矿,这会使网络停滞不前。这个结果对于所有人而言都会是不利的。纳什均衡的一种形式正在发挥作用,这避免了上述描述的场景。
除了这些创造性的解释之外,文献中的真正缺乏的,是对自私挖矿攻击成本的正确核算和理解,以及适当的时间分析。
3.2 挖矿成本。为了正确评估自私挖矿盈利能力的关键思路,是将其与诚实挖矿的盈利能力进行对比。我们假设矿工从事挖矿业务,是因为运营成本(设备和能源),是可由新生成的比特币区块奖励 交易费用得到补偿的。
因此,如果算力是以满负载运行的,单位时间的挖矿成本与策略是无关的。所以我们就有了CS = CH,其中CS 和 CH是自私挖矿以及诚实挖矿策略每单位时间的挖矿成本。我们表示C0 = CS = CH. 请注意,此成本不仅独立于策略,但也表示挖到的区块,会还是不会被网络所接受。
3.3 收益和损失。我们的目标是评估损益情况(PnL),并对比自私挖矿和诚实挖矿的PnL。损益(PnL)的算法是收入R减去成本C:
PnL = R − C .
我们采取一种保守,但足够的设置,其中区块奖励被减少到(b > 0) 新生成的比特币(因此,我们不考虑交易费用)。除非另有说明,我们假设我们没有接近奖励减半,所以奖励b是保持不变的。
对于任何业务而言,重要的是每单位时间的P nL,而不是每区块解决或被网络接受的P nL。值得注意的是,每区块或每单位时间的P nL是不相等的,这是由于采用的自私挖矿策略,延迟了网络中区块的验证速度。
3.4 每单位时间的损益。一种不间断的攻击策略,如自私挖矿,包括了一系列连续的“攻击周期”。
在自私挖矿的情况下,它是当自私矿工和诚实矿工都在同一区块链上进行工作时发生的。自私矿工的目标是利用他们秘密挖取的区块链。如果,一开始,诚实矿工找到了新区块,则进入一个新的周期。如果自私矿工成功建立了优势,然后周期会持续至诚实矿工追赶上进度,并强迫自私矿工释放他们秘密挖取到的区块。然后开始新的循环。对于这种具有重复效应的策略游戏,每单位时间的渐进P nL ,P nLt∞ ,是可以进行评估的。而这是下列定理当中的内容。

201811200351514851.jpg

201811200351514851.jpg


201811200351576951.jpg

201811200351576951.jpg


201811200352033944.jpg

201811200352033944.jpg


201811200352111287.jpg

201811200352111287.jpg


201811200352154615.jpg

201811200352154615.jpg


201811200352214191.jpg

201811200352214191.jpg


201811200352373249.jpg

201811200352373249.jpg


201811200352414368.jpg

201811200352414368.jpg


201811200352454012.jpg

201811200352454012.jpg


201811200352494173.jpg

201811200352494173.jpg


201811200352544907.jpg

201811200352544907.jpg


201811200352585311.jpg

201811200352585311.jpg


201811200353022447.jpg

201811200353022447.jpg


201811200353068605.jpg

201811200353068605.jpg


201811200353104305.jpg

201811200353104305.jpg


201811200353154945.jpg

201811200353154945.jpg


201811200353204929.jpg

201811200353204929.jpg


201811200353255857.jpg

201811200353255857.jpg


201811200353298148.jpg

201811200353298148.jpg






六、阻止自私挖矿的提案
6.1. 问题的根源。基本上,这种攻击利用了难度调整规则。当前的比特币协议低估了网络中的实际算力,由于其仅考虑了被纳入(官方)区块链的区块。 在存在自私矿工的情况下,孤块会不断增长,大量诚实算力会丢失。网络用于验证的平均时间会增加。在2016个区块之后,自动完成的难度调整会无视孤块的生产。尽管网络总算力是保持不变的,但新的难度会低于应有的水平,并且区块验证时间会减少。所以,单位时间的自私挖矿收入会增加,并使得攻击变得有利可图。
6.2. 一个新的难度调整公式。为了减轻这种攻击,一种想法是在难度调整公式中加入孤块数量的因素。这可通过矿工们来实现,即指示他们挖到的区块中存在“uncle”(通过包含它们的区块头,及对等节点中继这些数据)
只要诚实矿工发出信号就足够了。节点就不需要广播整个孤块,而只是广播它们的区块头。这有可能会激励矿工在他们的区块中纳入uncle存在证明(通过一个规则,在两个具有相同高度区块之间竞争的情况下,节点应该始终广播拥有最多工作量证明的区块,即包含最多uncle存在证明的区块)。根据[11],这一规则在诚实矿工与自私矿工发生竞争时,它也是对诚实矿工有利的。在n0 = 2016 区块验证周期结束后,难度调整的新公式将会是



其中n\’是在这段时间内挖到的孤块总数,而Sn0是网络用于验证n0区块的时间 (并使用公式Sn0 = Tn0-T1,其中Ti表示区块 i区块头的时间戳。)
6.3. 分析公式 . 设 ω 是在τ0= 600秒时间段内被观察到的孤块平均数。所以,平均而言,每τ0时间,都会有ω孤块和(1 – ω)非孤块。只有最后一个会被添加到官方区块链。网络用于增加区块链的时间为




七、结论
自私挖矿是一种减慢网络并减少挖矿难度的一种技巧。这种攻击会削弱诚实矿工的盈利能力,而在难度调整之前,这也会对自私矿工本身带来不利影响。而只有在难度调整之后,自私挖矿才会变得有利可图。自私挖矿是针对比特币协议的一种攻击,但很多相关文献中的论点没有正确地证明这种攻击的合理性。他们缺乏对攻击成本和每单位时间的损益进行适当的分析。
为了比较不同挖矿策略的盈利能力,我们就需要计算它们的周期平均长度和收入比率,这是本文中提到的新概念。
这种攻击利用了难度调整公式的缺陷。用于更新挖矿难度的参数,应该是衡量网络的实际算力。而当前的参数,在存在自私矿工的情况下,是不再适用的。我们提出了一个公式,通过考虑这一点来纠正这种生产孤块的异常现象。我们建议,协议应指定官方区块链包含的是最多工作量证明(带有最多uncle存在证明)的区块。如果这一拟议公式得到采用,虽然它不会消除自私挖矿的可能性,但即使是在发生难度调整的情况下,自私挖矿较诚实挖矿也不会具有优势。因此,这会使得个人激励措施与协议规则保持一致,而这符合比特币最初成立时的意图[7]。

参考文献
[1] J. Bonneau, E. Felten, S. Goldfeder, A. Miller , A. Narayanan. Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction, Princeton University Press, NJ, USA, 2016.
[2] V. Buterin. Selfish mining: a 25% attack against the bitcoin network, bitcoinmagazine.com/ articles/selfish-mining-a-25-attack-against-the-bitcoin-network-1383578440, 2013.
[3] M. Carlsten, H. Kalodner, A. Narayanan , S. M. Weinberg. On the instability of bitcoin without the block reward, Proc. ACM SIGSAC Conf. Comp. and Comm. Sec., p.154-167, NY, 2016. 14 C. GRUNSPAN AND R. PEREZ-MARCO ´
[4] I. Eyal, E. G. Sirer. Bitcoin is broken, hackingdistributed.com/2013/11/04/bitcoin-is-broken/ (accessed 1/2018), 2013. [5] I. Eyal, E. G. Sirer. Majority is not enough: bitcoin mining is vulnerable, Int. Conf. Financial Cryptography and Data Security, Springer, p.436-454, 2014.
[6] C. Grunspan and R. P´erez-Marco. Double spend races. ArXiv:1702.02867, 2017.
[7] S. Nakamoto. Bitcoin: a peer-to-peer electronic cash system. Bitcoin.org, 2008.
[8] S. Ross. Introduction to Probability Models 10th Edition. Academic Press Inc, 2012
[9] A. Sapirshtein, Y. Sompolinsky , A. Zohar, Optimal selfish mining strategies in bitcoin, International Conference on Financial Cryptography and Data Security, Springer, p.515-532, 2016.
[10] R. Wattenhofer. Distributed Ledger Technology: The Science of the Blockchain, 2nd Ed., Create Space Independent Publishing Platform, 2017.
[11] R. Zhang, B. Preneel. Publish or perish: a backward-compatible defense against selfish mining in bitcoin. In Topics in Cryptology – The Cryptographers Track at the RSA Conference 2017, Springer, p.277-292, 2017.
作者
Cyril Grunspan 电子邮件地址:[email protected]
Ricardo Perez-Marco 电子邮件地址:[email protected]

发文时比特币价格: ¥32455.79版权信息
原文:https://arxiv.org/pdf/1805.08281.pdf
作者:CYRIL GRUNSPAN 和 RICARDO PEREZ-MARCO
编译:洒脱喜

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门版块
快速回复 返回顶部 返回列表