郭惠芳
【摘 要】比特幣已成為最主要數(shù)字貨幣代表。學(xué)術(shù)界也對比特幣安全做了大量研究。根據(jù)比特幣白皮書中所說的“大多數(shù)”的決定表達(dá)為最長的鏈,如果想要對業(yè)已出現(xiàn)的區(qū)塊進(jìn)行修改,攻擊者必須重新完成該區(qū)塊的工作量外加該區(qū)塊之后所有區(qū)塊的工作量,并最終趕上和超越誠實(shí)節(jié)點(diǎn)的工作量?;谝陨险f法和現(xiàn)在比特幣實(shí)際總算力超過單個(gè)人或單位能力的現(xiàn)實(shí),一種普遍認(rèn)識(shí)是攻擊者需要擁有超過全網(wǎng)51%的算力才能完成攻擊。通過研究發(fā)現(xiàn)這種認(rèn)識(shí)有一定局限,過高地估計(jì)了攻擊者的門檻。提出一種可行的攻擊方案。在一定條件下,攻擊者只需要具有比所有誠實(shí)節(jié)點(diǎn)算力之和小得多的算力,就可以完成一次攻擊。這將影響大家對攻擊者算力門檻重新評估。
【關(guān)鍵詞】比特幣;算力;工作量證明;劃分;攻擊
中圖法分類號 TP309;TP311.13 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號: 2095-2457(2018)28-0065-002
DOI:10.19694/j.cnki.issn2095-2457.2018.28.028
0 引言
在“比特幣白皮書:一種點(diǎn)對點(diǎn)的電子現(xiàn)金系統(tǒng)”一文中有關(guān)工作量證明機(jī)制按如下模式起作用:該工作量證明機(jī)制還解決了在集體投票表決時(shí),誰是大多數(shù)的問題。如果決定大多數(shù)的方式是基于IP地址的,一IP地址一票,那么如果有人擁有分配大量IP地址的權(quán)力,則該機(jī)制就被破壞了。而工作量證明機(jī)制的本質(zhì)則是一CPU一票。“大多數(shù)”的決定表達(dá)為最長的鏈,因?yàn)樽铋L的鏈包含了最大的工作量。如果大多數(shù)的CPU為誠實(shí)的節(jié)點(diǎn)控制,那么誠實(shí)的鏈條將以最快的速度延長,并超越其他的競爭鏈條。如果想要對業(yè)已出現(xiàn)的區(qū)塊進(jìn)行修改,攻擊者必須重新完成該區(qū)塊的工作量外加該區(qū)塊之后所有區(qū)塊的工作量,并最終趕上和超越誠實(shí)節(jié)點(diǎn)的工作量[1]。2009年比特幣誕生的時(shí)候,每筆賞金是50個(gè)比特幣。誕生10分鐘后,第一批50個(gè)比特幣生成了,而此時(shí)的貨幣總量就是50。 隨后比特幣就以約每10分鐘50個(gè)的速度增長。當(dāng)總量達(dá)到1050萬時(shí)(2100萬的50%),賞金減半為25個(gè)。當(dāng)總量達(dá)到1575萬(新產(chǎn)出525萬,即1050 的50%)時(shí),賞金再減半為12.5個(gè)[7]。一方面,圖[1]是2016 年到2018 年5 月16日比特幣的市值圖[2]。世界上比特幣上限只有2100萬個(gè),如今超過三分之二都被開采出來分布在了公眾手里。2018年5月16日,比特幣總市值為1400億美元[2],每枚比特幣大致為8300美元。比特幣現(xiàn)有市值及單枚價(jià)格對攻擊者有很強(qiáng)的吸引力。另一方面,圖[2]是比特幣算力變化圖,從圖中可以看出到2018 年5 月16 日比特幣算力已經(jīng)達(dá)到30EH/S[3]。這種情況下,攻擊者純粹依靠自身算力增加,達(dá)到比所有其它節(jié)點(diǎn)算力之和更大的算力來攻擊比特幣幾乎不可能(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=每秒一次哈希運(yùn)算)。文獻(xiàn)[6]中對比特幣算力和分布進(jìn)行了說明。文獻(xiàn)[4]提出了針對比特幣路由攻擊的分類方法,并對每種類型的攻擊進(jìn)行了描述。文獻(xiàn)[5]提出了基于包頭和內(nèi)容的攻擊方法。
本文的主要貢獻(xiàn)如下:
(1)我們提出了一種基于算力劃分的比特幣攻擊方案,在該方案中攻擊者僅需要擁有算力大于網(wǎng)絡(luò)上的任一節(jié)點(diǎn)算力,即可發(fā)起攻擊;
(2)本文列出了發(fā)起攻擊的三個(gè)條件,并對其中算力分割存在性進(jìn)行了證明;
(3)本文對攻擊過程及有效性進(jìn)行了論述.
2 攻擊方案
根據(jù)“比特幣白皮書”可以得到以下推論:設(shè)在網(wǎng)絡(luò)中有n個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)的算力為CFi(0≤i 基于以上推論,利用比特幣的規(guī)則,可以設(shè)想攻擊者在滿足以下條件下時(shí)發(fā)起對比特幣的攻擊: (1)自身擁有算力大于網(wǎng)絡(luò)上的任一節(jié)點(diǎn)算力。即設(shè)攻擊者為節(jié)點(diǎn)0,擁有算力CF0,則CF0>max{CFi},(0 (2)攻擊者可以任意分割其它節(jié)點(diǎn),使得被分割的節(jié)點(diǎn)之間無法相互投票; (3)可以獲知任一節(jié)點(diǎn)的算力。 其次,在以上條件成立下,攻擊者根據(jù)事前獲得的節(jié)點(diǎn)算力信息,將節(jié)點(diǎn)分割為滿足上述條件的m個(gè)子區(qū)域。這m個(gè)區(qū)域會(huì)獨(dú)立發(fā)展各自的鏈。由于攻擊者所在子區(qū)域算力最大,所以攻擊者能夠生成最長鏈。對生成最長鏈中的區(qū)塊影響最大的如圖[4]所示target_bits。正常情況下,該值參考上兩周產(chǎn)生的區(qū)塊的平均生成時(shí)間而定。兩周內(nèi)如果平均10分鐘產(chǎn)生一個(gè)區(qū)塊的話,兩周會(huì)產(chǎn)生2016個(gè)區(qū)塊,軟件會(huì)計(jì)算最新的2016個(gè)區(qū)塊生成的時(shí)間,然后做對比,隨之調(diào)整難度,使得接下來產(chǎn)生的區(qū)塊的預(yù)期時(shí)間保持在10分鐘左右。因?yàn)樽罱?016個(gè)區(qū)塊已經(jīng)確定,所以這個(gè)數(shù)字也是確定的[8]。但在攻擊過程中,一方面由于攻擊都對節(jié)點(diǎn)根據(jù)算力進(jìn)行了劃分,所以每個(gè)子區(qū)域的實(shí)際算力與正常情況相比會(huì)大副度下降。由此被劃分的子區(qū)域中的結(jié)點(diǎn)都會(huì)比正常情況更慢地生成區(qū)塊。與之相比,攻擊者是知道這個(gè)難度值,可以直接設(shè)定該值為不小于自己算力的合適值。從而比其它不知道該真實(shí)值的節(jié)點(diǎn)更快地生成區(qū)塊。另一方面由條件知,攻擊者所在子區(qū)域的算力是所有子區(qū)域中算力最大值也保證了攻擊者生成區(qū)塊的可能速度大于其它子區(qū)域。綜合以上的優(yōu)勢,攻擊者能夠保證更快地生成足夠長的鏈。 最后,在保證生成的鏈足夠長后,攻擊者就可結(jié)束攻擊行為。由于以下原因,該包含有利于攻擊者區(qū)塊的鏈會(huì)被全網(wǎng)接受為合法鏈,并永久記錄在比特幣鏈中。 因?yàn)楣糸_始后全網(wǎng)被分為m個(gè)子區(qū)域,同時(shí)這些區(qū)域間無法相互投票,則由比特幣的運(yùn)行特性,這些子區(qū)域會(huì)各自生成比特幣的一條鏈。每條鏈具有的算力為RCFj(0≤j
至此,攻擊者在自身擁有算力大于網(wǎng)絡(luò)上的任一節(jié)點(diǎn)算力的條件下完成了一次對比特幣的攻擊。并不需要象"比特幣白皮書"書中所說攻擊者需要擁有 全網(wǎng)“大多數(shù)”(>50%)算力才能完成攻擊。
3 結(jié)論
本文利用比特幣的特性,結(jié)合網(wǎng)絡(luò)攻擊的常用手段,提出了一種對比特幣可能的攻擊方案。雖然這種方案的實(shí)施依賴于兩大基本條件,(1)攻擊者需要擁有算力大于網(wǎng)絡(luò)上的任一節(jié)點(diǎn)算力;(2)攻擊者可以任意分割其它節(jié)點(diǎn),使得被分割的節(jié)點(diǎn)之間無法相互投票。第一個(gè)條件的意義在于:與“比特幣白皮書”書中所說攻擊者需要擁有全網(wǎng)“大多數(shù)”(>50%)算力才能完成攻擊相比,有著非常大的下降。如果達(dá)到"比特幣白皮書"中的要求,攻擊者需要與所有參與比特幣節(jié)點(diǎn)競爭。如果達(dá)到本文中的方案,攻擊都只需與最大算力節(jié)點(diǎn)競爭。對于第二個(gè)條件,現(xiàn)階段通過網(wǎng)上的報(bào)道可知,通過控制大量網(wǎng)絡(luò)設(shè)備,如網(wǎng)絡(luò)主機(jī)、攝像頭、物聯(lián)網(wǎng)設(shè)備、路由器等就可以滿足第二個(gè)條件。如果能夠滿足第二個(gè)條件,滿足第三個(gè)條件,只需要耐心和信息的收集。由以上分析可知,現(xiàn)階段本文提出的攻擊方案具有現(xiàn)實(shí)可行性。
【參考文獻(xiàn)】
[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]達(dá)鴻飛.比特幣:通縮貨幣的未來[EB/OL].第一財(cái)經(jīng)日報(bào)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).