引言
近期筆者對數字貨幣的挖礦比較感興趣,根據這段時間學習的內容,整理了本篇文章,算是一個梳理。
一。 為什么需要挖礦
首先解釋一下什么叫做挖礦。
以數字貨幣中的比特幣為例,挖礦就是打包比特幣的交易,獲得礦工費的過程。
用四個字來描述:記賬和收錢。
因為在數字貨幣的交易中,各個用戶的交易都需要在一個公共賬本上記賬,因此就需要有人來完成這個記賬的過程。
完成記賬的人就叫做礦工,首先完成記賬的礦工就會有數字代幣的獎勵。
正是由于有了經濟利益的刺激,挖礦已成為數字貨幣中的一個行業。
按照數字貨幣中共識算法分類,共識算法分為POW和POS。
POW:全稱Proof of Work,工作證明。你獲得多少數字代幣,取決于你對挖礦做出的貢獻。
POS:全稱Proof of Stake,股權證明。簡單來說,就是一個根據你持有貨幣的量和時間,給你發利息的一個制度。
用通俗的話說,POW就是誰勁大聽誰的,POS就是誰有錢聽誰的。
本文當中挖礦主要是針對POW,現在市值排行前兩名的比特幣和以太坊都是屬于POW。
二。 礦機的發展歷程
由于挖礦是一件有利可圖的事情,所以挖礦所用的礦機也經歷了一番演進。
最早是CPU挖,后來有人用GPU挖,再后來有人用FPGA(現場可編程門陣列)挖,礦機的最終形態就是用ASIC(專用集成電路)挖。
有人把礦機的發展歷程做了一個簡單的總結,CPU→GPU→FPGA→ASIC,越靠近左側就越靈活,但效率越低;越靠近右側就越專用,但效率要高很多。
所以針對BTC和LTC等市值很高的幣種,早就出現了以比特大陸為首的礦機廠商推出了專用的挖礦芯片,壟斷了BTC和LTC的挖礦產業。
最終BTC和LTC等挖礦就變成了一個資本比拼的市場,只有有錢可以買到足夠多的礦機。只要礦機挖礦所得的收益能夠支撐電費和礦機的維護成本,這就是一件可以賺錢的事情。就可以不停的加大投入。
所以在牛市的時候現貨礦機的價格居高不下,一機難求。
三。 為什么要抗ASIC
隨著越來越多數字貨幣的發行,很多幣種都逐步提出一個口號,叫做抗ASIC。
表面上的理由很簡單:由于數字貨幣一個很重要的特點就是去中心化,而ASIC礦機的出現恰恰打破了這個趨勢,造成了算力的壟斷。
有人做過統計,比特大陸控制的BTC礦池(下圖中用紅框標識)已占到了全網算力的40%以上,雖然沒有到達傳說中的51%(絕對多數),但實際上已經形成了壟斷。
但是抗ASIC真的可以去除中心化的影響嗎?往深一層想,即使沒有ASIC,只要挖礦是一件有利可圖的事情,就會吸引過來資本,大規模的采購礦機從中盈利,從而造成資源的集中。所以抗ASIC無法做到去中心化,二八現象肯定是存在的。
那么既然如此,抗ASIC的目的到底是什么?
后來筆者才明白,抗ASIC的本質實際上是開發者與礦工關于話語權的博弈。
本來開發者是數字貨幣中無可爭議的老大,代碼是我寫的,其他人當然要聽我的。但是隨著礦工實力的增強,如果后續數字貨幣的發展路線沒有得到礦工群體的認可,礦工可以用不運行新版本的代碼來進行抵制。
最壞后果就是出現了硬分叉,花開兩朵,各表一枝。你走你的陽關道,我走我的獨木橋。
歷史上以比特大陸為首的BCH就是這么從BTC里面硬分叉出來的。
四。 抗ASIC的方法
那現在到底有哪些常用的抗ASIC的方法呢?據觀察,現在至少有兩種方式:大內存和定期修改算法。
方法1:大內存
用大內存是一個抵抗ASIC比較通用的方法。下面分別舉ETH和GRIN的例子。
ETH
以ETH為例,ETH在挖礦時必須產生一個64M的數據塊,而在挖礦過程中需要隨機使用這個大數據塊的某幾個字節,所以即使你芯片運算的再快也沒有用,它需要用某些數據做計算。
記得看過一個數據,在GPU礦機運行ETH的挖礦算法時,其GPU利用率為60%多,而顯存的占用率接近了90%。
所以即使比特大陸研究出了針對ETH的ASIC礦機,也沒有給ETH的挖礦生態帶來致命的打擊,有兩點原因:一是礦機在運行過程中需要頻繁的讀寫內存,造成了效率不高;其次是ASIC礦機配置的大容量的內存芯片,也大幅拉高了整機的成本。
GRIN
GRIN是剛推出不久的一款匿名幣,號稱是比特幣的接班人,在一個月前剛剛上線時,吸引了很多人的眼球。
Grin 獨創性的提出了雙POW算法:
1. 面向GPU的CuckARoo算法,需要 6GB+ 的內存,初期挖出 90% 塊
2. 面向CPU的 CuckAToo算法,需要 11GB+ 的內存,初期挖出 10% 的塊
按照這個要求,初期GRIN要求礦機必須具備6GB以上的大內存才可以挖礦,而這個要求是明顯有利于顯卡挖礦的。
方法2:更新算法
上面舉的例子包括ETH和GRIN都是在算法設計之初就考慮了抗ASIC,但是很多幣種在最初沒有這方面的考慮,那么該怎么辦呢?
以門羅幣為例,它的算力很大一部分都被ASIC和FPGA把控,于是門羅幣想出來一招:更新算法。
大概的頻率是半年更新一次算法,這讓擁有ASIC和FPGA礦機的礦工們欲哭無淚。
因為ASIC是專用芯片,它只能針對特定的算法,如果算法更新,則芯片就沒有任何用處了!需要重新開發,而開發一款ASIC芯片是極其燒錢和費時的,僅僅其中流片的費用至少就需要幾十萬RMB。
相比之下,FPGA礦機會稍好一些,其可以通過更新以支持新算法。但是FPGA的開發周期往往也不短,有可能需要幾個月,等研制出來以后,可能沒有等多長時間,又要進行下一輪更新了。
五。 電子工程師的機會
在介紹完上面區塊鏈挖礦的概況后,針對電子工程師,到底有沒有什么機會可以從挖礦產業中分一杯羹呢?下面我從FPGA工程師和硬件工程師兩個角度進行分析。
機會1:FPGA工程師
FPGA礦機作為一種半定制產品,在某些無ASIC礦機的小幣種中,還能夠占有一席之地。
如果FPGA工程師可以在某個新幣種推出后,或者在某個老幣種更新算法后,短時間內用FPGA實現出相應的算法,并且運行效率可以明顯高于對應的顯卡礦機挖礦,那么這里面就有盈利空間。
這里補充一個小常識,針對顯卡挖礦,更新算法是一個很簡單的事情,官方都會提供算法,更新只需要一兩個小時就足夠了。而對FPGA來說,新算法需要重新研發,研發周期很可能會以月為單位。
機會2:硬件工程師
由于大內存礦機是后續數字貨幣挖礦的發展趨勢,如果在ASIC(專用芯片)礦機出來之前,硬件工程師能夠搶先使用通用芯片設計出礦機,預計也會很有市場的。
這里再補充一個小常識,現在的內存主要分為兩大類:CPU使用的DDR和GPU使用的GDDR。
為什么會出現兩種內存嗎?
因為隨著人們對于顯卡性能日益增長的需求,早先的DDR已不能滿足顯卡的需求,所以出現了專門為滿足顯卡GPU高速交互數據需求的GDDR。因為GPU沒有像CPU那樣設計有大容量L1、L2、L3緩存,而且GPU處理大容量的紋理貼圖,所以需要與顯存進行更加頻繁的數據交互,所以GPU所用的GDDR相比CPU所用的DDR有兩個特點:一是帶寬更寬,二是容量更大。
基于上面的背景介紹,大容量礦機可以衍生出三種設計思路:
①CPU+DDR
比特大陸做的以太坊礦機就是這種思路,缺點是DDR容量相比GDDR還是較小,訪問速度不夠快。相比顯卡礦機,優勢并不明顯。
②GPU+GDDR
這就是常規顯卡的設計思路,不過假使硬件工程師研發出了這樣的顯卡礦機,但是通常其產業鏈整合的能力PK不過傳統顯卡廠商,價格很可能沒有優勢。
③CPU+FPGA+GDDR
在方案③中,FPGA起到了一個橋接芯片的作用,讓CPU能夠連接大容量的GDDR,CPU完成管理維護協議處理等工作,而重復運算交給FPGA處理,看起來這是一個最優的方案,不過難點在于FPGA連接GDDR沒有現成的IP核可用,自行研發難度很大。
這里所說的IP核,是指在集成電路設計中,可重復使用的具有自主知識產權功能的集成電路設計模塊。
現在世界排名第一的FPGA廠商Xilinx還沒有開發出針對GDDR5或者GDDR6的IP核,不過看到有國內廠商已經做出來了GDDR6的IP核,真是厲害!
-
電子工程師
+關注
關注
252文章
767瀏覽量
95621
發布評論請先 登錄
相關推薦
評論