1. 程式人生 > >51%算力攻擊

51%算力攻擊

這也 情況 阻止 網絡 情況下 高度 控制 依賴 歷史

雖然比特幣的體系在設計上已經大大降低了雙重支付的可能,但沒有絕對安全的系統。在攻擊者擁有超過整個網絡一半算力的情況下,就有能力推翻原有已經確認過的交易,使惡意的雙花成為可能,業內形象地稱之為51%算力攻擊。攻擊者掌握了全網51%的算力後,可以用這些算力來重新計算已經確認過的區塊,使區塊產生分叉,完成雙花並獲得利益。攻擊者如果發動攻擊,則能做到:

1)控制自己的交易,一筆發給接收者,另一筆發送給自己,讓最終發給自己的交易成功而接收者的失效,欺騙接收者,實現雙花成功。

2)阻止別人的交易被打包到區塊,讓交易不能確認。

3)阻止別人生成新的區塊,獲得區塊獎勵。

不能做的事情如下:

1)控制別人發送的交易。

2)阻止別人發送交易。

3)更改每個區塊的獎勵數量。

4)憑空產生幣。

5)發送不屬於他自己的幣。

通過上述內容可很容易看出,攻擊者實施51%算力攻擊時唯一對自己有利的就是,完成對自己交易的雙花,騙取交易接收方的利益。

而從經濟學的角度去看這個攻擊問題,攻擊者通過攻擊來獲取利益,但這是需要成本的(算力成本),只有當攻擊獲取的收益大於成本,也大於他誠實工作所獲取的收益時,攻擊者才會自發動攻擊的意圖。假定的有理性的人,即為了獲得更大收益而發起攻擊的人,實際上是不會發動這樣的攻擊的。這樣就產生了51%攻擊的悖論,攻擊者發起攻擊要考慮自身利益,出於較高的成本,算力擁有者都會選擇誠實的工作。

除了上述的攻擊成本之外,攻擊其實也依賴於社區的理性選擇,這也讓攻擊的成功率很低。歷史上,Ghash.io曾經出現過算力接近於51%的情形,造成了社區恐慌,礦工選擇撤離,最終讓Ghash.io的算力急劇下降。而國內4家礦池也曾出現整體算力接近51%的情形。2015年,國內礦池聯盟合作,而且並未遵守社區軟分叉的協議,產生新版本號的區塊,造成區塊高度為36731~36736的相關區塊不符合社區的協議。另外,其他礦池基於36731產生新版本的區塊,而未選擇在國內產生的新區塊的鏈條上挖礦,此事件也同樣引起社區的熱議。最終,違背社區協議的國內幾大礦池將所挖的區塊作廢,在遵從社區協議的鏈條上挖礦產生新版本號的新區塊。歷史上的諸多事件證明,除了共識算法,社區成員的理性選擇,也同樣是維護整個區塊鏈體系安全的保障。

51%算力攻擊