CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

區塊鏈火了!10月24日,中共中央政治局就區塊鏈技術發展現狀和趨勢進行第十八次集體學習,明確區塊鏈技術的集成應用在新的技術革新和產業變革中所起到的重要作用。

頂層信號剛剛釋放,區塊鏈的代表技術比特幣迅疾衝破10000美元大關,線上線下關於區塊鏈的討論鋪天蓋地,週一開盤,區塊鏈概念股火速井噴,超百隻區塊鏈概念股漲停!包括人民日報在內的大量媒體都在科普區塊鏈這項技術。

我不是區塊鏈專家,就不在這裡再做贅述,本文將探討數字貨幣背後的礦工:芯片。

CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

什麼是挖礦

很多媒體都用一些通俗易懂的形式在解釋比特幣、挖礦等各種技術,公眾號俠客島的文章中將比特幣比作打麻將,我覺得這個比喻非常符合比特幣挖礦的彩票賭博性質。

CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

如果把比特幣挖礦比作打麻將,麻將桌上四個礦工隨機摸牌,拼湊出可以胡牌的牌面,誰先胡牌,誰就擁有了比特幣的記賬權。因為發牌是隨機的,胡牌的過程也存在一定的隨機性,礦工就是要做的是開動腦筋,用一定的計算策略,組合手中的牌。與打麻將一樣,比特幣挖礦其實就是一個賭博的過程。

現有的比特幣礦機為了贏得記賬權,需要使用一個算法不斷生成一個256位的隨機數,生成的隨機數要比當前規定的目標數字小才算“胡牌”。隨著時間的推進,目標數字也在變化,現在大約兩星期變化一次,每次變化,將導致礦機成功的概率變小。目標數字會隨著新比特幣的產生而發生變化,這導致了挖礦難度隨著時間而越來越難。這種機制保障了貨幣總量永遠不會被超量發行,也就不會出現通貨膨脹的問題。

例如,目標是形如下面的256位數字:

000000000000000000148edf0000000000000000000000000000000000000000

比特幣礦工要做的就是使用一個名為SHA-256的隨機數生成算法,計算出一個隨機數,與一個目標數字比較,如果小於目標數字,這位礦工非常幸運,他將獲得記賬權。但絕大多數情況,隨機數都比這個目標數字大,所以礦工只能重新計算一遍。為了能獲得更多的記賬權,礦工就這樣一遍遍的重複再重複。

比特幣之所以設計這個不斷重複計算隨機數的過程,是為了製造一定的獲取門檻,讓礦工解決隨機數難題後才能獲得數字貨幣價值。就像現實世界中的工人計件發工資一樣,在虛擬世界中,衡量一個礦工是否賣力幹活,需要這樣一個工作量證明(Proof of Work,PoW)。

工作量證明的算法早在比特幣出現之前就被提出,該算法主要解決資源濫用的問題,但是會消耗時間、計算力和相應的電能。算法的初衷是製作一些費時費力費錢的門檻,將那些不勞而獲分子拒之門外。但隨著資本推動比特幣價值的飆升,人們開始投入極大的電力和計算資源來進入這個賭博遊戲,挖礦機芯片也隨之不斷演進。

從CPU到ASIC

CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

2009年,第一桶比特幣按照上述的挖礦算法產生。在初期,比特幣和區塊鏈技術非常小眾,使用普通的筆記本電腦和CPU處理器就可以挖礦。隨著區塊鏈技術的推廣,資本入局,比特幣價值飆升,如果繼續使用CPU,資本無法承擔礦機所需的硬件成本和電能費用,挖礦難度也越來越大,人們開始使用一些更高效率的芯片,開始是GPU,後來是FPGA。2013至2014年,大規模礦機已經逐漸從FPGA開始全面轉向了ASIC。10年,比特幣礦機由CPU變為GPU和FPGA,最終被ASIC一統江湖,從比特幣礦機的發展,我們可以一窺芯片算力領域的演進過程。

CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

那麼,CPU、GPU、FPGA和ASIC這些芯片有哪些區別呢?

CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

CPU

CPU芯片大家都比較熟悉,其英文全稱為Central Processing Unit,是計算機的中央處理器。CPU名字中的“中央”二字也確實名副其實,計算機中很多芯片,包括GPU、FPGA等等,只有CPU是這些芯片的統一管理者。我之前的文章中介紹了現代CPU的工作原理。

如果把計算機比作一個大工廠,CPU就像經理一樣將管理工廠中的方方面面。

CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

GPU

GPU全名為Graphics Processing Unit,又稱視覺處理器、圖形顯示卡。GPU負責渲染出2D、3D、VR效果,主要專注於計算機圖形圖像領域。後來人們發現,GPU非常適合並行計算,可以加速現代科學計算,GPU也因此不再侷限於遊戲和視頻領域。因為深度學習和人工智能的興起,GPU聲名鵲起,大紅大紫。我之前的系列文章詳細介紹了GPU運行原理和編程入門教程。

比起CPU經理的身份,GPU就像是工廠中的一個班組的基層工人,每人只專注做一件事,整個小組一起可以做非常多的工作任務。我之前的文章中專門寫過GPU的一些基礎知識。

ASIC 與 FPGA

ASIC:專用集成電路(Application Specific Integrated Circuit,ASIC),針對單一用途而設計的集成電路產品。ASIC名字中的“Application Specific”表示這種芯片是為某個應用專門設計的。

FPGA,現場可編程門陣列(Field Programmable Gate Array),它是ASIC領域中的一種半定製化的芯片。

CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

ASIC和FPGA都是針對特定任務的芯片,這些芯片解決特定任務的速度非常快。上面這張GIF圖很形象地演示了“特定任務”。專用芯片拋棄了CPU通用計算中大部分對其特定任務無用的部分,只專注一件事情,而且通過“芯海戰術”,在特定任務上的他們表現被髮揮到極致。

FPGA名字中“可編程”意味著可以把FPGA當成一個程序。原來設計芯片的傳統做法要設計完電路,再把電路轉換成版圖,版圖做成掩膜版,再去生產封裝測試,這樣才可以用。一般週期沒有三到六個月是不可能的。有了FPGA,電路設計完以後不需要做版圖了,把這個電路圖直接灌到FPGA裡面去了。FPGA可定製化,且生產交付速度快,因此可為某種特殊的計算任務單獨定製。

CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

與FPGA的區別在於,ASIC已經固定了,無法快速定製化,需要花很長時間完成從設計電路到生產交付的過程。ASIC的缺點是擴展性差,優點是計算速度更快。芯片領域,一般都會用FPGA先做驗證,證明這個芯片的所有的功能都是對的。進入量產階段時,再將電路做成ASIC,因為ASIC各方面的成本更低。

前文提到,挖礦就是在計算隨機數,這個計算過程高度固定化,所以為了完成這個特定的計算任務,使用ASIC的計算速度更快,電能消耗都很低,反而是使用CPU這樣的通用處理器有些大材小用。著名區塊鏈創業公司比特大陸就是在大規模生產銷售這種礦機ASIC。除了用於挖礦,還有很多芯片公司針對人工智能這個市場,設計生產專用芯片,解決某個領域的特定問題,比如Google的TPU、寒武紀、地平線等。

可以說,區塊鏈礦機發展史也是計算機芯片技術的進化史,礦機是當前最先進算力的忠實代言人。

資源浪費與ASIC免疫


CPU、GPU、FPGA、ASIC,區塊鏈挖礦技術哪家強?

需要注意的是,礦機ASIC芯片只能進行挖礦,無法做其他任何事情。挖礦中涉及到的隨機數生成其實是一種無任何社會和經濟意義的活動,它除了能挖出數字貨幣外,沒有其他任何功效。

可怕的是,大量人力、芯片和電能資源都投入到了挖礦之中,2018年比特幣挖礦的電能消耗和整個匈牙利的電能消耗相當。而且礦機ASIC只能處理某個特定的任務,比如解SHA-256哈希算法,換做另外任何一個算法,這款ASIC將沒有任何價值。CPU和GPU這種通用性更強的芯片還可以用來解決很多其他更有意義的計算任務。還記得共享單車潮水退去,那些堆積如山的廢舊單車嗎?區塊鏈社區上流傳著一個小視頻,某個礦場堆滿大量廢棄的礦機,工人們用手推車將礦機扔到這堆垃圾之上。因為不能做別的任何計算,這些礦機已經成為了電子垃圾。

面對這種資源浪費行為,一些人提出了ASIC免疫(ASIC Resistance)的思想,旨在抵抗之前那種消耗大量資源來挖礦的行為。ASIC Resistance的初衷主要包括:

  1. 使用更為通用的芯片,避免專用芯片橫行,造成芯片資源的浪費。
  2. 避免幾家寡頭控制了專用芯片技術,獨享挖礦成果,與區塊鏈去中心化思想背道而馳。

一些人提出了新的工作量證明方法,以避免比特幣那種暴力賭博的行為,比如Proof of Stake(PoS)、Proof of Authority(PoA)等。道高一尺,魔高一丈。新算法提出後,投機的芯片廠商總能製作出一種ASIC硬件來求解這個算法。ASIC Resistance似乎成為一個待解的難題。


分享到:


相關文章: