租賃算力實施 51% 攻擊,中本聰沒能預見的流動挖礦市場問題
編者按:本文來自36氪戰略合作區塊鏈媒體 “Odaily星球日報 ”(公眾號ID:o-daily, APP下載 )
本文來自 Coindesk ,原文作者:Anthony Xie
譯者 | Moni
編輯 | 盧曉明
為了確保網路去中心化、避免出現“礦霸”,使用工作量證明(PoW)的加密貨幣一般不允許讓一家挖礦公司控制大部分算力。
但隨著全球算力池不斷增長,也更具流動性,加密貨幣可能需要抵制其他潛在威脅了,因為攻擊者可能會針對某個特定挖礦演算法租用全球算力,一旦他們因為想要獲利這麼做的話,就能在短時間內集中大量算力,然後實施 51% 攻擊。
過去加密貨幣挖礦市場會出現 51% 攻擊,主要因為有以下幾個情況:
1、基於特定演算法的礦工:許多礦機會針對某種挖礦演算法進行優化,如果切換到另一種挖礦演算法,比如從 SHA256 轉到 X11,這些礦機就會完全不起作用了;
2、非流動性挖礦市場:大多數全球算力資源都是非流動性的,並不能夠被租用。因此,需要大量的前期投資才能建立龐大的算力,為了實施 51% 攻擊而在前期投入大量成本顯然不是一筆劃算的“買賣”;
3、機會成本:加密貨幣通常會為優秀的網路參與者提供更大的獎勵來推動整個網路利益最大化,也就是說,誰貢獻的越多,誰就能獲得更多激勵,獲得的回報也就更大。任何攻擊都需要承擔失敗的風險,包括失去挖礦獎勵、聲譽損失、以及網路被破壞等。對於一家準備長期發展的挖礦公司來說,肯定不希望網路被攻擊影響市場信心,導致加密貨幣價格下跌來破壞未來的盈利潛力。
然而時代在發展,挖礦市場正在變得更具流動性。
為什麼流動挖礦市場能夠得到不斷髮展?
過去,計算機儲存市場一直存在流動性不足的問題,但現在已經變成了一種流動性極強的線上“商品”,算力市場也在發生同樣的事情,目前有兩個主要因素在驅動算力市場變得更具流動性:
1、加密貨幣價格的長期上漲將刺激礦工加大對算力的投入,直到他們最終獲得的收益等於成本。換句話說,如果加密貨幣價格繼續上漲,全球算力也會隨之增長。
2、不管是租用算力的買方,還是出租算力的買房,他們都能從算力租用交易中獲利,因此市場上的租用算力佔全網總算力的百分比一直在不斷增長。而隨著買方和賣方市場的分離,又導致了專業化程度更高的礦機出現,同時也為市場提供了更高的挖礦運營效率。這就是為什麼礦機硬體製造商願意直接出售礦機,而不是自己直接去挖礦的原因。如果算力租用方將所有時間都集中在尋找具有最高挖礦回報率的投資機會上,那麼他們就有可能在每單位算力上獲得最大價值。與此同時,出租算力的“貸方”也可以降低自己的業務風險,因為他們出租算力可以覆蓋到更多加密貨幣,也就是說沒有“把雞蛋放在一個籃子”裡。和世界上其他行業裡的“貸方”一樣,他們只關注租賃關係、以及出租資產的利用和維護。
租用算力實施 51% 攻擊現在已成為可能
Crypto51 網站計算了租用足夠算力以匹配指定區塊鏈網路一小時算力所需要花費的成本。NiceHash是全球知名的加密貨幣挖礦算力市場,可以根據需求買賣算力,但對於一些市值較大的加密貨幣,NiceHash仍然沒有足夠的算力予以支援,所以這些數字有時候理論上會超過 100%。
算力資料來自於 Mine the Coin,加密貨幣價格資料來自於 CoinMarketCapabilities,算力租賃價格資料來自於 NiceHash。這裡需要特別提出兩個需要關注的地方:
1、Crypto51 被引用的攻擊成本不包括礦工以區塊獎勵形式獲得的獎金,因此在許多情況下,真正的攻擊成本可能還會有進一步的降低;
2、Crypto51 引用了 NiceHash 上可用算力租賃的現貨價格,但是在實際情況下,由於受到供需關係影響,算力租賃的需求越多,價格就會越貴。
哪些加密貨幣容易受到租用算力的礦工攻擊?
如上圖所示,加密貨幣 ETP 在 CoinMarketCap 網站上按市值排名位列第 91 位,如果你想要攻擊這個加密貨幣,可以租用超過其 21 倍的全網算力,而且攻擊成本每小時僅有 162 美元(ETP 的價格資料來自 Bitfinex,該交易所提供了 ETP/BTC 和 ETP/USD 交易對交易服務)。
可租用算力規模提高兩倍,市值排名前四十的加密貨幣就很容易受到 51% 攻擊
現階段,對有些加密貨幣實施 51% 攻擊看似是遙不可及的,因為 NiceHash 上能夠租用的算力總量還不足以匹配全網算力。但是讓我們想象一下,如果 NiceHash 將他們的算力租用規模提高兩倍,那麼像以太坊經典(ETC,目前在 CoinMarketCap 上市值排名第 18 位),以及位元組幣(BCN,目前在 CoinMarketCap 上市值排名第 40 位)等加密貨幣就很容易受到攻擊。
可租用算力規模提高五倍,市值排名前二十的加密貨幣就很容易受到 51% 攻擊
如果 NiceHash 的可租用算力規模提高五倍,那麼像達世幣(DASH,目前在 CoinMarketCap 上市值排名第 15 位)和比特幣黃金(BTG,目前在 CoinMarketCap 上市值排名第 28 位)這樣的加密貨幣就會處於危險之中。
那麼如果這些加密貨幣真的遭受了 51% 攻擊,攻擊者又是如何通過攻擊賺錢呢?
雖然說攻擊者不可能為一個沒有私鑰的錢包建立交易,但是如果你控制了某個特定加密貨幣網路大部分算力,意味著可以通過還原分類賬上的某些交易來執行“雙重花費(double spend)”攻擊。
雙重花費攻擊機制
當礦工找到一個新區快時,他們應該將該區塊廣播給網路內的所有其他礦工,以便他們可以驗證該區塊,並在區塊鏈中新增一個新區快。但是,那些控制著全網算力的“腐敗”礦工可以偷偷建立自己的區塊鏈。
為了執行“雙重花費”,攻擊者會把自己的加密貨幣在真實區塊鏈上花費掉,但是會在自己偷偷建立的去看了是省略這些交易。一旦這個礦工有能力比網路上的所有其他礦工更快速地建立了最長鏈,那麼他們就可以把自己偷偷建立的區塊鏈廣播給網路的其他礦工。
由於區塊鏈協議遵循的時最長鏈原則,新廣播出來的那個最長鏈會變成“真正”的區塊鏈,而攻擊者之前所做的支出交易歷史記錄就會被刪除。請注意,即便礦工有能力控制全網 51% 的算力,也不意味他們總是能廣播最長鏈,因為其他礦工也有可能生成最長鏈。因此,為了能夠快速建立最長鏈,攻擊者通常會希望控制更大比例的網路算力,一般為 80%。
被攻擊的加密貨幣會花在哪兒呢?交易所很可能會成為受害目標
想要通過“雙重花費”來獲利,你需要找到一張方法來把那些實際已經用掉、但還沒有在區塊鏈中被記錄的加密貨幣用掉,如果你不能在第一時間花掉這些加密貨幣,實施攻擊也就變得毫無意義了。
攻擊者最有可能轉手加密貨幣的地方就是交易所,因為他們往往是各種加密貨幣的最大買家。在這種情況下,51% 攻擊的“套路”基本上是這個樣子的:
1、選擇一個看上去有利可圖的加密貨幣網路目標;
2、在該加密貨幣網路上囤積大量加密貨幣;
3、租用 NiceHash 算力並偷偷發展一個隱形鏈(stealth chain);
4、在交易所交易該加密貨幣,並兌換成另一種加密貨幣(比如比特幣);
5、將比特幣提取到另一個錢包;
6、將隱形鏈廣播到該加密貨幣網路上;
7、獲取目標加密貨幣;
8、接著換一家加密貨幣交易所繼續上述操作。
加密貨幣交易所將如何迴應?
正如我們所能想象的,加密貨幣交易所不喜歡被欺騙。如果攻擊者的這種行為增加了加密貨幣交易所的運營成本,那麼他們可能會做出一系列迴應來對抗 51% 攻擊者,比如延長提款和存款期限、提升賬戶驗證安全性等。
延長提款時間會讓攻擊者的攻擊成本變高,因為他們“統治“全網算力的時間也需要相應的延長,這意味著他們需要投入更多的資金去租用算力。但同時,這種方法也會給合法的交易者和交易所使用者帶來負面影響,繼而引發他們的憤怒,畢竟沒有人希望等待更多時間才能提取自己的加密貨幣。
當然,加密貨幣交易所還可能有其他方式來規避一些 51% 攻擊,比如在上架加密貨幣的時候進行仔細篩選,放棄一些容易受到攻擊的加密貨幣。然而,這種方式同樣存在問題,因為有些已經上架的山寨幣交易量和收入也會逐漸減少,意味著這部分即將下架的加密貨幣也很容易收到攻擊威脅。
一般來說,加密貨幣交易所基本上會把上述兩種方法結合起來使用,只要交易所越容易逃脫雙重攻擊,那麼攻擊者實施“雙重花費“的攻擊成本就會越高。從長遠來看,這兩股力量會在同一個市場上逐漸達到均衡。
加密貨幣將如何迴應?
對於山寨幣而言,或許可以通過以下幾個方式找到對抗 51% 攻擊威脅的解決方案:
1、使用更加“模糊”、並且沒有太多礦工使用的挖礦演算法。不過,這種方式充其量只能算是一種飲鴆止渴的解決方案,因為使用你挖礦演算法的礦工數量越少,意味著提升算力就會越困難,如果你想要讓自己的網路發展壯大,挖礦演算法就不能“模糊”。
2、把你的專案放在安全性更高的、規模更大的區塊鏈網路上,比如 ERC-20。
3、推動使用更具彈性的新公式演算法,比如權益證明(PoS),也能規避 51% 攻擊。當然,權益證明演算法本身也並不完美,也存在一些挑戰。
中本聰沒有想到流動算力市場的出現
未來,算力租賃市場將會增長多少呢?這個問題似乎現在還沒有一個明確的答案,100倍?200倍?這種幅度的增長並非不可能,那麼會有多少加密貨幣受到影響呢?
顯然,如果你的加密貨幣市值相對較高,同時攻擊成本很低,就很容易受到 51% 攻擊。這是否意味著市場需要淘汰一些不安全的加密貨幣呢?相反,這是否也意味著那些擁有龐大挖礦網路的加密貨幣未來可能會在 51% 攻擊的影響下不斷溢價呢?
在 Hacker News 網站上有這麼一段評論,也許比較適合作為本文的結尾:
“通過租賃算力實施攻擊可能是個非常有趣的例子,算力租賃市場已經出現了,它可能會直接破壞掉一個系統。中本聰預見到人們可能會試圖購買大量礦機來實施 51% 攻擊,因此他竭盡全力設計了一套協議,旨在確保不太可能實現中心化挖礦。但是,中本聰可能沒有預見到流動算力市場的出現,通過租賃算力可以在短時間內獲得實施 51% 攻擊的算力,這可比購買礦機實施 51% 攻擊容易 1000 倍。”