2018年6月15日 星期五

從 ASIC 礦機看數位貨幣的安全性

隨著以太幣、比特幣的價格上漲,在炒作的同時,也有許多人加入礦工的行列

而如果有去了解數位挖礦,就會知道有分成用顯示卡挖礦跟用礦機挖礦,而礦機一直是一個很有爭議的東西,而其中又以佔有最大市占率的比特大陸(Bitmain)最有爭議性

顯示卡挖礦就不說,先來解釋一下所謂的礦機,其通常是以 ASIC 晶片為架構,而早期則是以 FPGA 晶片為主
  • 殊應用積體電路(Application-specific integrated circuit,ASIC)
  • 現場可程式化邏輯閘陣列(Field Programmable Gate Array,FPGA)
早期多半是使用 FPGA 晶片,把演算法電路設計好後再燒錄進去晶片裡面,所以多半是從硬體開發板修改而來,後期才出現一張電路板上安裝多顆 FPGA 晶片的訂製礦機



像是 Earthsoft PV4 這張日本製色差擷取卡就是以 FPGA 晶片作為演算核心

以 Spartan-3 XC3S200 FPGA 晶片為核心的硬體開發板當作礦機

之後也出現這種使用雙實體 FPGA 晶片的開發板礦機

後期則是出現了這種訂製的,堆疊大量 FPGA 晶片的礦機

然而 FPGA 跟人類一樣,終究有其極限的,FPGA 的優點是它的電路都可以重新燒錄跟抹除,但如果開發用途不變時,那沒用到電路就是累贅了,如果挖比特幣只需要 SHA-256 的加密演算,那其他功能的電路就是佔據空間的累贅,如果要在單位面積內堆疊更多的演算力,那就會演變到 ASIC 晶片


南瓜博士設計的 Avalon 算是最早的 ASIC 礦機

初次接觸比特幣等數位貨幣大概是 2013 年中旬,那時候都是以開發板衍生的 FPGA 礦機為主,比特大陸剛剛成立,南瓜博士的阿瓦隆(Avalon)剛設計完成在作原型機測試,比特幣的價格是美金一百五十,折合約新台幣四千六百

那時一台 ASIC 礦機都要台幣十萬,要購買還有很大的麻煩(多半是跨國貨運跟付款的問題),重點是大家都不確定比特幣會不會改演算法,如果改了,那所有以 SHA-256 演算為特化的礦機會直接變成廢鐵

但最後比特幣並沒有改變演算法,它分歧出去的分叉幣也多半是沿用這個演算法

當初賭了一把買礦機的人也多半暴富,也開啟了 ASIC 礦機壟斷算力的不歸路



比特大陸的螞蟻礦機 T9,ASIC 礦機

有些人會不懂為什麼礦機會這麼討人厭,甚至會理解成一種仇富心態,但這其實是不正確的

礦機,尤其是ASIC 礦機造成的最大問題,是算力的集中化,這與數位貨幣的開放、公平理念違背,而更大的問題是安全性

數位貨幣的區塊驗證制度,以比特幣來說是要持有接近過半的演算力,因此有所謂的 51% 攻擊,只要有過半的演算力是由惡意攻擊者持有,他就可以竄改挖出來的新區塊(因為數位貨幣不可逆的特性,他沒辦法竄改已經挖出來的區塊,但可以竄改新區塊)

下面用五個節點來示範數位貨幣的驗證制度,當然現實中的節點不會這麼少,但如果你把礦池當作是一個單一節點的話也可以這樣解釋



正常情況下每個演算節點都是個別持有,且承認新挖出來的區塊

如果兩個演算節點被同一個惡意攻擊者持有,即使他竄改來搶先挖出新區塊,也會因為沒過半被駁回

但如果他持有過半的演算節點,那他就可以達成所謂的 51% 攻擊

由於 ASIC 礦機在單位成本上與 GPU/CPU 挖礦相比,佔有壓倒性的優勢,因此較少數量(比較之下)的 ASIC 礦機就可能達成 51% 攻擊,考慮到大部分的礦機都是比特大陸的螞蟻礦機系列,且大部分算力都是在比特大陸的螞蟻礦池之下,這又在安全性上造成了更多疑慮
  • 如果大部分 ASIC 礦機都是同一家公司製造,然後管理軟體有同樣的安全性漏洞或是後門可以劫持?
  • 如果大部分 ASIC 礦機都是同一家公司製造且在同一個礦池之下,然後礦池的控制權被劫持?
在這兩個假設下,你就會發現 ASIC 礦機是一個很危險的東西

也因此,開發社群抵抗的從來就不是誰、或哪家公司因為賣出大量的挖礦設備而大賺硬體財,而是抵抗算力的集中化,要讓算力分散化,最簡單的方式就是盡量讓大家都可以用手上都會有的硬體挖,不論顯示卡、處理器或是智慧型手機,乃至於硬體開發板

而在同樣的資本投入下,建立 GPU/CPU 礦場與建立 ASIC 礦場一比,後者的壓倒性算力優勢造成了很大的不公平,也產生了上述的安全性問題

目前採用 PoW 機制(Proof of Work,工作證明機制)的數位貨幣如果沒有發展出抗 ASIC 演算法,則多半有這個問題,除非改成 PoS 機制(Proof-of-Stake,權益證明機制),來透過價格跟持有量壓制達成 51% 攻擊的難度

簡單說?買以太幣就對了(欸?

沒有留言:

張貼留言