我們知道在比特幣網(wǎng)絡(luò)中采用PoW來解決如何獲得記賬權(quán)的問題,采用“最長鏈共識”解決如何記賬的問題。
但是在理論上,利用比特幣網(wǎng)絡(luò)中的“最長鏈共識”,可以發(fā)動51%攻擊。
什么是51%攻擊
51%是指算力占全網(wǎng)算力的51%,比特幣網(wǎng)絡(luò)需要通過哈希碰撞來匹配隨機(jī)數(shù)從而獲得記賬權(quán),算力衡量的是一臺計(jì)算機(jī)每秒鐘能進(jìn)行哈希碰撞的次數(shù)。
算力越高,意味著每秒鐘能進(jìn)行越多次的哈希碰撞,即獲得記賬權(quán)的幾率越高。在理論上,如果掌握了50%以上的算力,就擁有了獲得記賬權(quán)的絕對優(yōu)勢(意味著可以更快地生成區(qū)塊),也擁有了篡改區(qū)塊鏈數(shù)據(jù)的權(quán)利。
所謂51%的攻擊,就是利用比特幣網(wǎng)絡(luò)采用PoW競爭記賬權(quán)的特點(diǎn),使用算力優(yōu)勢生成一條更長的鏈“回滾”已經(jīng)發(fā)生的“交易行為”。
如何進(jìn)行51%攻擊
假設(shè)小明擁有51%的算力,在區(qū)塊高度2019時,小明轉(zhuǎn)給小華1BTC的記錄被礦工及時打包。
待交易確認(rèn)后,小明依靠51%的算力優(yōu)勢在區(qū)塊高度2018后重新生成了一條“更長的鏈”,并在區(qū)塊高度2019處又將該BTC轉(zhuǎn)給小紅且該交易記錄被打包,即該鏈包含了小明將1BTC轉(zhuǎn)給小紅的記錄。
根據(jù)“最長鏈共識”,包含給小紅轉(zhuǎn)賬記錄的鏈成為主鏈,則小明轉(zhuǎn)給小華的1BTC則為“無效支付“。
51%算力的影響
若掌握了51%的算力,除了可以修改自己的交易記錄外,還可以阻止區(qū)塊確認(rèn)部分交易,以及阻止部分礦工獲得有效的記賬權(quán)。在極端理想情況下,擁有51%算力的節(jié)點(diǎn)將獲得所有的挖礦獎勵和轉(zhuǎn)賬手續(xù)費(fèi)。
不論是篡改數(shù)據(jù)還是壟斷記賬權(quán),都會減少社區(qū)成員對系統(tǒng)的信任,也嚴(yán)重影響社區(qū)的穩(wěn)定。擁有51%的算力也不是萬能的,因?yàn)闊o法修改其他人的交易記錄,也不能阻止交易的發(fā)出,更不能憑空產(chǎn)生BTC。
51%算力的攻與防
從理性角度考慮,發(fā)動51%攻擊是為了“雙花”逐利,前期需要巨額的投入來提升算力和囤積用于“雙花”的BTC,后期需要承擔(dān)BTC價值下跌的風(fēng)險。
整個過程下來,未免有些得不償失。BTC白皮書在第6節(jié)(Incentive)和第11節(jié)(CalculaTIons)已經(jīng)指明了本本分分挖礦能獲得更多的利益,因此在這個前提下,“雙花”逐利的動機(jī)就不復(fù)存在了。
即使不進(jìn)行51%攻擊,只是長期持有51%算力,都足夠引起社區(qū)恐慌,行情震蕩,最后反噬自身。故從理性角度考慮,51%攻擊的可能性較小。
從非理性角度考慮,發(fā)動51%攻擊是為了攻擊而攻擊,不考慮任何后果(動機(jī)無法揣測,可能性也無法衡量),這種做法最終會失去共識,其他社區(qū)成員可以通過硬分叉重新建立共識(比如采用新的證明機(jī)制),最終51%的攻擊也將變成“一個人的游戲”。