淺談最近流行的三起區塊鏈51%算力攻擊

FLy_鵬程萬里發表於2018-06-19

很多人可能早就聽說過 51% 算力攻擊,但更多的可能源於各種媒體渠道中“比特幣的缺陷”文章之流。實際上,這個說法並不準確,根據比特幣百科上所描述,這種攻擊被稱為多數人的攻擊(Majority attack),攻擊者在控制全網較多算力時,他將可以做這些事情:

1.逆轉已發出的交易,也就是雙花交易;

2.阻止其他交易的確認;

3.阻止其他塊的挖出。

並且在攻擊者控制全網大於50%算力時,攻擊的成功率將達到100%,而當攻擊者擁有40%算力,在需要6個確認的情況下,攻擊的成功率為50%。近期有三個幣種分別在不同程度上遭到了 51% 算力攻擊,分別是 MonaCoin, Bitcoin Gold 和 Verge ,很碰巧的是,這三個幣種都不同程度地分叉自比特幣。


下面將分別介紹三種貨幣的攻擊詳情。

一、Monacoin

5月18日,Reddit 網友發帖稱 Monacoin 遭受了 51%算力攻擊、自私挖礦攻擊與時間戳攻擊,確切時間發生在5月13日至5月15日 一些支援 Monacoin 交易的交易所,比如 Bittrex, Livecoin 已經關閉了 Monacoin 的充值。行為描述:

自私挖礦攻擊 ( Selfish mining)

根據 Vitalik Buterin(就是釋出了以太坊的那個俄羅斯小夥)在2013年11月4日釋出的文章稱,比特幣網路存在一種自私挖礦攻擊,能讓礦工在理論條件上獲得更高的收益。首先,由於比特幣網路的規則,每個(誠實的)節點只能挖並且傳播它看到的第一個塊,這就是說,如果節點當前有一個塊正在挖,而收到了別人廣播的已成功挖到的同一高度的塊,那麼該節點將立即放棄正在挖的這個塊並繼續跟隨新的塊後面挖掘。自私挖礦攻擊中,當惡意礦工挖到了一個新的塊 B1,不立即廣播,而是接著這個塊挖下一個塊 B2。在這期間如果別人挖出來了,就馬上廣播 B1 到全網,如果挖出了第二個,那就直接廣播出去,這樣惡意礦工的收益就是連續兩個塊,而別人顆粒無收,由於這種攻擊需要攻擊者擁有25%以上的算力才能將數學期望拉高到與正常挖礦相同或者更高,所以這次攻擊同時也採用了這種行為。

雙花攻擊

攻擊者在公鏈中籤名並廣播一筆交易傳送 Monacoin 到交易所,並同時在自己的私有鏈上廣播一個將 Monacoin 傳送到自己錢包的交易,然後使用大量算力挖掘私有鏈,當交易所確認存款後,立即廣播私有鏈。由於攻擊者擁有大量算力,私有鏈長度總是比共有鏈長,所以最後那些發往交易所的 Monacoin 被回滾了。

出塊變得異常的快

這可能是由於 Monacoin 的異常難度處理機制導致的,攻擊者在短時間內挖出了大量的塊,遠遠大於原來的1.5分鐘出塊時間。


總結

攻擊者將可以回滾充值到交易所的 Monacoin,並且掠取那些原來是誠實礦工的獎勵,此次攻擊導致約導致 90000 美元的損失。

解決方案

Monacoin 的官方開發組建議,將入賬次數提高為 100 個確認數。

二、Bitcoin Gold

5月18日,Bitcoin Gold 交流社群中,MentalNomad 發文稱有人在嘗試進行鍼對交易所的雙花攻擊。

攻擊時間為 高度 528735, 5 月 16 日 10:37:54 UTC 到 高度 529048,5 月 19 日 5:25:40 UTC。

雙花攻擊

攻擊者的兩個錢包:

資金錢包 GTNjvCGssb2rbLnDV1xxsHmunQdvXnY2Ft

挖礦錢包 GXXjRkdquAkyHeJ6ReW3v4FY3QbgPfugTx 

與 Monacoin 類似的,Bitcoin Gold 中攻擊者也將這筆交易同時發給交易所和自己,併成功將自己的私鏈變成最長鏈,從而使得這條鏈重新變為公鏈。值得注意的是,有一筆經過了 22 個確認的交易被成功地雙花攻擊了。

總結

本次攻擊據不完全統計損失了 388,201 個BTG,約為 1860 萬美元,創始人稱已向FBI報案。

解決方案

Bitcoin Gold的開發組稱,正在開發新的 PoW 演算法以替代原有的 Equihash 演算法,他們認為,攻擊的原因之一是因為顯示卡礦機的算力可以被短時間地集中。

攻擊者的鏈

被逆轉的鏈

被逆轉的鏈長度為22

攻擊者向自己的錢包傳送了一筆交易,這筆交易回滾了原來向交易所充值的交易

三、Verge

自從 Verge 在4月4日被爆出遭到 51% 攻擊後,開發組已經緊急更新修復了時間戳攻擊加上51%算力攻擊導致算力下降的漏洞。(詳細分析請看站內文章:http://www.freebuf.com/column/169210.html )然而,攻擊者在5月22日發現了一種新的利用方法——反覆橫跳。


行為描述

攻擊者將4月4日原有攻擊的模式(修改時間戳+算力攻擊)改為交替使用兩種演算法 Scrypt 與 Lyra2re 來重複之前的攻擊。Verge 的難度再次變為幾乎為 0 。


驟然降低的算力

總結

受攻擊的區塊為 2155850 到 2206272,所有塊收益 36808060 XVG 都發給了攻擊者,大約為 1525252 美元。

解決方案

開發組將 2218500 塊後的時間間隔調整為 10 分鐘。

從上面這些攻擊中,我們不難發現,針對這些 PoW 工作量證明進行挖礦的數字貨幣,攻擊者可能已經有一套自己的攻擊體系。然而,這些攻擊的實施都需要大量的算力與成本,有理由相信,攻擊者有一個龐大的團隊,並且做了非常充分的準備,路線規劃與方案實施。

所以,筆者大膽預測,近期發生的攻擊只是試水。在未來攻擊者將會使用相同的方法進行更多的攻擊。由於去年12月火爆的數字貨幣市場誕生的比特幣分叉幣們由於缺乏算力與技術支援,將可能更快地遭到 51% 算力攻擊。一旦遭到攻擊,幣價必然大幅下降,算力見無力可圖必然會撤離,最後導致攻擊者更加容易地攻擊這個幣種,這種惡性迴圈會使得該虛擬貨幣迅速歸零。可以預見的是,在未來,運用其他共識的幣種,比如 PoS 或者 DPoS 必然也會遭受到類似的攻擊,一旦有人開了先例,見到有利可圖的後來者必定蜂擁而上。因此,區塊鏈安全值得大家關心。


相關文章