工作量證明(Proof of Work,PoW)是目前多數密碼貨幣的保持去中心化重要機制。
不過,隨著密碼貨幣市場逐漸成長,參與工作量證明的算力明顯較過去上升,同時,這些算力也因為可以被「租借」而具備流動性。
舉例其中兩款密碼貨幣為例,目前以太坊(Ethereum)約擁有15萬 GH/s 的全網算力,而從以太坊區塊鏈硬分叉產生的以太經典(Ethereum Classic)僅有約9000 GH/s 的全網算力,雖然算力差異巨大,但兩者的挖礦生態大多採用GPU(圖形處理器)進行挖礦。
這時候若出現一個算力租借平台,透過付費租借讓算力出現另一種轉移的動機,在兩者間重新分配,將會造成不一樣的改變。也就是說,若經濟上的套利空間成立,有心人可以透過算力租借市場來獲取以太坊區塊鏈上的算力,並對以太經典區塊鏈造成51%攻擊。
以太經典(ETC)在今年一月份遭到51%雙花攻擊,最後價值1.1億美金的以太經典雖歸還了,而該事件也讓51%雙花攻擊的成本再次浮上檯面。
原本的情況
工作量證明(Proof of Work,PoW)為了要去中心化,必須仰賴節點的分散。而隨著密碼貨幣價格的升高,挖礦會形成完成競爭市場,即使會形成集中化的礦池,也會因為以下三點讓51%雙花攻擊的成本遠高於所得獲得的利潤:
- 礦機算力屬非流動性資源,而且沒有媒合市場可以租借。
- 想要51%雙花攻擊的人必須自己買龐大數量的礦機,耗費的成本太高;或礦機公司、礦池等業者考量到機會成本,一旦社群對這個密碼貨幣的網路不信任,價格也會隨之崩解,影響未來獲利與發展,因此並不願破壞該區塊鏈網路的生態(即使這些公司可以做到)。
- 而目前的礦機大多是針對某種 PoW 共識的密碼貨幣所開發的,例如SHA-256→X11即不可行,差異性限制了某些密碼貨幣被挖掘的算力規模。
算力租借服務的出現
隨著密碼貨幣的市值逐漸升高,各種密碼貨幣如雨後春筍般地出現,連帶的也出現了許多的算力。在算力高到一定的水平之後,供需彈性也會逐漸調整。
跟早期挖礦的人不同,現在挖礦的都抱持著要一年回收多少的心態,導致在面臨市場下跌,或是獲利不如預期的情況就會產生租借情形,因為新進場的人也不願意在購買新的礦機。甚至也開始有企業提供類似雲端運算、算力租借的服務,像是 NiceHash。
上述的條件改變造成了「算力開始出現流動性」,也促成了潛在區塊鏈51%攻擊的風險。
可粗估成本
Crypto51 是一個評估針對各密碼貨幣區塊鏈進行51%攻擊的成本計算網站。
其以Mine the coin 的資料去評估算力、 NiceHash 查算力成本、CoinMarketCap 查該密碼貨幣的市值,得出各幣種每小時51%攻擊的成本。
以上次受到攻擊的以太經典為例,一小時的攻擊成本是4,094美金,市值為463萬美元,NiceHash 能提供的算力佔總網路69%,這也確定了執行攻擊的可能性。
不過攻擊成本也非固定,圖表一小時費用是指可以執行51%攻擊的最低算力。
駭客要確保成功可能會租借到70%-80%左右,而租借越高的算力比例的費用會指數成長,例如算力佔全網20%的時候,可能需要1000美金,但是到40%的時候可能需要4000美金。
該網站也列出其他採用工作量證明(PoW)挖礦演算法的小型密碼貨幣,其通常具有更低的攻擊成本,像是 Bitcoin Private 每小時成本才25美金,不過市值較低,而且又比較少交易所提供交易對,交易深度也不夠。自然駭客攻擊的誘因就較少。
攻擊者會怎麼做?
一般來說,多數人會擁有最常鏈,所以只有最長鏈的交易才會受承認。而通常工作量證明會隔幾個區塊才確定某一個區塊裡的交易,譬如說比特幣一般要隔七個區塊才會確認交易。所以 Block#151 要到 Block#157才會確認。所以正常的情況,區塊的礦工,不會在孤塊(非最長鏈)上做白工。
而進行51%攻擊的攻擊者,會以算力優勢私自挖掘的區塊,成為最長鏈。並針對較短的鏈上進行雙花攻擊,將大筆的密碼貨幣轉到另外一個帳號。在區塊確認以後,再拿去市場上買成其他貨幣,最後再向全區塊鏈網路廣播自己的區塊,成為最長鏈。而在自己的鏈上,是沒有這筆交易的,所以原來的代幣還是在攻擊者的帳戶。
攻擊的SOP
交易所扮演交易市場的角色,往往會成為這種攻擊手法的受害者,在1月份以太經典(ETC)遭受51%雙花攻擊時的Coinbase與Gate.io這兩間交易所即是如此。
與取得贓款相同,執行51%雙花攻擊的攻擊者必須在第一時間找到地方脫手,否則等到最長鏈向大家發佈的時候,一切就會失去意義;交易所也成了最佳的脫手場域,因為交易所在密碼貨幣市場中具有較為龐大的交易量。
整個過程的 SOP 看起來會是這樣子:
- 選定獲利最高的標的。
- 先收一大批這個公有區塊鏈的密碼貨幣。
- 租借算力,狹帶算力優勢開始私下挖掘區塊創造最長鏈。現在就會形成有兩條鏈,一條是自己私下挖的最長鏈,一條是其他礦工的鏈。
- 交易A:在其他礦工的鏈上把持有的大批密碼貨幣存入交易市場中,換成其他密碼貨幣。
- 交易B:在自己挖的區塊鏈上將持有的密碼貨幣轉入另外一個錢包
- 先不宣布自己的最長鏈
- 將換到手的其他密碼貨幣從交易市場轉至另一個獨立錢包,立刻向全區塊鏈網路廣播自己的最長鏈。
- 此時交易A會回滾,而交易B會成立。
- 如此一來就同時用擁有在交易所欺騙得來的密碼貨幣還有原本收的該鏈的密碼貨幣。
- 重複相同的過程。
以後要怎麼辦?
一旦問題浮現,我們可以想像讓市場機制來調整工作量證明的算力分配。
針對算力租借,交易所也開始出現一些相應的方式。在面對這種情況時,交易所便會開始審慎評估,哪一款競爭幣的51%攻擊是很容易的,就會將這些風險較高的密碼貨幣下架交易所。
諷刺的是,評估的標準跟駭客評估雙花攻擊是一樣的。這樣一來,這些花較低成本就可以執行雙花攻擊的密碼貨幣的攻擊誘因就會大大減少。長遠來說,對整體市場也是好事。
或者,交易所可以提高區塊確認數量增加51%攻擊的成本,提升安全性;不過這也相對會造成區塊鏈鏈上交易遲緩,用戶體驗不佳的問題。
若算力流動性造成的風險不可避免,51%雙花攻擊一多,市場也會開始選擇拋售風險較高的密碼貨幣,通常這類的密碼貨幣市值都較小,發展也相對受限,一旦這類的情況發生,資金會較為集中在市值較大的密碼貨幣,算力也會回到主流密碼貨幣,而算力的市佔率提高,攻擊成本即會增加,其他市值較大的密碼貨幣也會變得更加安全。
針對小型密碼貨幣,則可以採用較複雜的演算法執行工作量證明(PoW),一旦用更複雜的演算法,表示市場上的礦機會變得更少。但是這是治標不治本的方法,因為一旦網路開始成長,價值開始增加,針對這種算法的礦機也會開始普及。
另外一種可能的做法則是開始採用新的共識演算法,像是權益證明(PoS)、委任權益證明(DPoS)等,這樣一來,已經飽和的工作量證明市場資金就會流向其他挖礦演算法中,對未來區塊鏈或是密碼貨幣市場來說也是很好的發展。
最後,也有社群提出,透過像是早期狗狗幣(Dodgecoin)因算力不足而與萊特幣(Litecoin)進行「合併挖礦(Merge mining)」的方式,來增加整體網路算力,提升安全性。
(更新:編修51%雙花攻擊SOP的具體流程)
?相關報導?
「漫談2013年開始的挖礦之路,到建立台灣最大的以太坊礦池」——GPUMINE創辦人.朱昱翰
實施「ProgPoW」將降低ASIC礦機挖礦產能,以太坊礦機商「林芝」呼籲:請以太坊制定ASIC規格
《BlockTempo動區動趨》LINE官方號開通囉~立即加入獲得第一手區塊鏈、加密貨幣新聞報導!