一种基于划分的比特币最大算力攻击可能

2018-01-16 12:34郭惠芳
科技视界 2018年28期
关键词:划分比特币算力

郭惠芳

【摘 要】比特币已成为最主要数字货币代表。学术界也对比特币安全做了大量研究。根据比特币白皮书中所说的“大多数”的决定表达为最长的链,如果想要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。基于以上说法和现在比特币实际总算力超过单个人或单位能力的现实,一种普遍认识是攻击者需要拥有超过全网51%的算力才能完成攻击。通过研究发现这种认识有一定局限,过高地估计了攻击者的门槛。提出一种可行的攻击方案。在一定条件下,攻击者只需要具有比所有诚实节点算力之和小得多的算力,就可以完成一次攻击。这将影响大家对攻击者算力门槛重新评估。

【关键词】比特币;算力;工作量证明;划分;攻击

中图法分类号 TP309;TP311.13 文献标识码: A 文章编号: 2095-2457(2018)28-0065-002

DOI:10.19694/j.cnki.issn2095-2457.2018.28.028

0 引言

在“比特币白皮书:一种点对点的电子现金系统”一文中有关工作量证明机制按如下模式起作用:该工作量证明机制还解决了在集体投票表决时,谁是大多数的问题。如果决定大多数的方式是基于IP地址的,一IP地址一票,那么如果有人拥有分配大量IP地址的权力,则该机制就被破坏了。而工作量证明机制的本质则是一CPU一票。“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的CPU为诚实的节点控制,那么诚实的链条将以最快的速度延长,并超越其他的竞争链条。如果想要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量[1]。2009年比特币诞生的时候,每笔赏金是50个比特币。诞生10分钟后,第一批50个比特币生成了,而此时的货币总量就是50。 随后比特币就以约每10分钟50个的速度增长。当总量达到1050万时(2100万的50%),赏金减半为25个。当总量达到1575万(新产出525万,即1050 的50%)时,赏金再减半为12.5个[7]。一方面,图[1]是2016 年到2018 年5 月16日比特币的市值图[2]。世界上比特币上限只有2100万个,如今超过三分之二都被开采出来分布在了公众手里。2018年5月16日,比特幣总市值为1400亿美元[2],每枚比特币大致为8300美元。比特币现有市值及单枚价格对攻击者有很强的吸引力。另一方面,图[2]是比特币算力变化图,从图中可以看出到2018 年5 月16 日比特币算力已经达到30EH/S[3]。这种情况下,攻击者纯粹依靠自身算力增加,达到比所有其它节点算力之和更大的算力来攻击比特币几乎不可能(1EH/s=1000PH/s,1PH/s=1000TH/s, 1TH/s=1000GH/s,1GH/s=1000MH/s,1MH/s=1000KH/s, 1KH/s=1000H/s,1H/s=每秒一次哈希运算)。文献[6]中对比特币算力和分布进行了说明。文献[4]提出了针对比特币路由攻击的分类方法,并对每种类型的攻击进行了描述。文献[5]提出了基于包头和内容的攻击方法。

本文的主要贡献如下:

(1)我们提出了一种基于算力划分的比特币攻击方案,在该方案中攻击者仅需要拥有算力大于网络上的任一节点算力,即可发起攻击;

(2)本文列出了发起攻击的三个条件,并对其中算力分割存在性进行了证明;

(3)本文对攻击过程及有效性进行了论述.

2 攻击方案

根据“比特币白皮书”可以得到以下推论:设在网络中有n个节点,每个节点的算力为CFi(0≤i

基于以上推论,利用比特币的规则,可以设想攻击者在满足以下条件下时发起对比特币的攻击:

(1)自身拥有算力大于网络上的任一节点算力。即设攻击者为节点0,拥有算力CF0,则CF0>max{CFi},(0

(2)攻击者可以任意分割其它节点,使得被分割的节点之间无法相互投票;

(3)可以获知任一节点的算力。

其次,在以上条件成立下,攻击者根据事前获得的节点算力信息,将节点分割为满足上述条件的m个子区域。这m个区域会独立发展各自的链。由于攻击者所在子区域算力最大,所以攻击者能够生成最长链。对生成最长链中的区块影响最大的如图[4]所示target_bits。正常情况下,该值参考上两周产生的区块的平均生成时间而定。两周内如果平均10分钟产生一个区块的话,两周会产生2016个区块,软件会计算最新的2016个区块生成的时间,然后做对比,随之调整难度,使得接下来产生的区块的预期时间保持在10分钟左右。因为最近的2016个区块已经确定,所以这个数字也是确定的[8]。但在攻击过程中,一方面由于攻击都对节点根据算力进行了划分,所以每个子区域的实际算力与正常情况相比会大副度下降。由此被划分的子区域中的结点都会比正常情况更慢地生成区块。与之相比,攻击者是知道这个难度值,可以直接设定该值为不小于自己算力的合适值。从而比其它不知道该真实值的节点更快地生成区块。另一方面由条件知,攻击者所在子区域的算力是所有子区域中算力最大值也保证了攻击者生成区块的可能速度大于其它子区域。综合以上的优势,攻击者能够保证更快地生成足够长的链。

最后,在保证生成的链足够长后,攻击者就可结束攻击行为。由于以下原因,该包含有利于攻击者区块的链会被全网接受为合法链,并永久记录在比特币链中。

因为攻击开始后全网被分为m个子区域,同时这些区域间无法相互投票,则由比特币的运行特性,这些子区域会各自生成比特币的一条链。每条链具有的算力为RCFj(0≤j

至此,攻击者在自身拥有算力大于網络上的任一节点算力的条件下完成了一次对比特币的攻击。并不需要象"比特币白皮书"书中所说攻击者需要拥有 全网“大多数”(>50%)算力才能完成攻击。

3 结论

本文利用比特币的特性,结合网络攻击的常用手段,提出了一种对比特币可能的攻击方案。虽然这种方案的实施依赖于两大基本条件,(1)攻击者需要拥有算力大于网络上的任一节点算力;(2)攻击者可以任意分割其它节点,使得被分割的节点之间无法相互投票。第一个条件的意义在于:与“比特币白皮书”书中所说攻击者需要拥有全网“大多数”(>50%)算力才能完成攻击相比,有着非常大的下降。如果达到"比特币白皮书"中的要求,攻击者需要与所有参与比特币节点竞争。如果达到本文中的方案,攻击都只需与最大算力节点竞争。对于第二个条件,现阶段通过网上的报道可知,通过控制大量网络设备,如网络主机、摄像头、物联网设备、路由器等就可以满足第二个条件。如果能够满足第二个条件,满足第三个条件,只需要耐心和信息的收集。由以上分析可知,现阶段本文提出的攻击方案具有现实可行性。

【参考文献】

[1]Satoshi Nakamoto.Bitcoin:A peer-to-peer electronic cash system.[EB/OL](2008).https://www.bitcoin.org/bitcoin.pdf.

[2]Market Capitalization.Bitcoin.com[EB/OL].https://charts.bitcoin.com/chart/market-cap(2018).

[3]Hash Rate.Bitcoin.com[EB/OL].https://charts.bitcoin.com/chart/hash-rate(2018).

[4]Maria Apostolaki,Aviv Zohar,Laurent Vanbever.Hijacking Bitcoin: Routing Attacks on Cryptocurrencies[J]. IEEE Symposium on Security and Privacy 2017.San Jose,CA,USA(May 2017).

[5]Liang Wang, Kevin P.Dyer,Aditya Akella,Thomas Ristenpart, Thomas Shrimpton.Seeing through Network-Protocol Obfuscation[C].CCS '15 Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security Pages 57-69.(2015).

[6]Gencer A E,Basu S,Eyal I,et al.Decentralization in Bitcoin and Ethereum Networks[J].Financial Cryptography and Data Security (FC).arXiv:1801.03998[cs.CR](2018).

[7]达鸿飞.比特币:通缩货币的未来[EB/OL].第一财经日报2013-11-01 http://www.yicai.com/news/3077490.html.

[8]Rahul P.Naik.Optimising the SHA256 Hashing Algorithm for Faster and More Efficient Bitcoin Mining[D].London.University College London.(2013).

猜你喜欢
划分比特币算力
基于网络5.0的重叠网形态算力网络
卫星通信在算力网络中的应用研究
基于SiteAI算力终端的交通态势感知系统
全概率公式的应用