【區塊鏈科普】如何在區塊鏈世界掘金——挖礦
初識區塊鏈的朋友可能都會對這樣一個詞產生疑惑——挖礦。挖礦?區塊鏈不是一個數據庫嗎?怎麼還挖上礦了?今天,我們就給大家詳細解釋一下區塊鏈世界里的挖礦以及一些相關概念。
什麼是挖礦
大家對於挖礦的第一印象,想必都是從地底下開採出某些礦產資源,比如煤、黃金、鑽石等等。同樣道理,區塊鏈世界里的挖礦,指的也是將數字貨幣「開採」出來手段。
我們在《共識篇——區塊鏈世界的法律》里做過這樣一個比喻:
某所學校由於老師們工作繁忙,決定將考勤任務交給學生,並決定對當天進行記錄的學生給予學分獎勵。學生們通過解開難題(PoW)、抽籤(PoS)、猜答案(PoC)等手段爭取當天考勤權,完成考勤就可以獲得學分獎勵。
如果將這個例子中的學分視為數字貨幣,那麼我們可以分析一下「學分幣」的產出過程。「學分幣」需要通過「完成考勤」這一動作才能產出,而完成考勤的前提是學生們用種種手段爭取考勤權。按完成動作的先後順序就是」爭取考勤權「——」完成考勤「——」幣產出「,其中「爭取考勤權」和「完成」屬於「幣產出」的手段,也就是我們所說的「挖礦」。
出塊和難度調整
我們在《特性篇——區塊鏈如何顛覆世界》中為大家介紹過區塊鏈的塊鏈式結構:
所謂塊鏈式結構,就是將一段時期內的數據打包到一個區塊中,再將這些區塊按時間順序串起來。在記錄數據時,區塊鏈系統會先採用一些密碼學手段對數據內容進行加密再記錄到區塊中,而在區塊鏈上,後一個區塊的內容會包含前一個區塊的內容。
也就是說,如果我們把區塊鏈看成一個數據大賬本,所謂的區塊就是組成大賬本的一個個小賬本。其中,「將數據打包到一個區塊中」的動作,我們通常稱之為「出塊」。每個區塊鏈系統的出塊速度一般是相對固定的,具體速度在設計之初就已經規定並封裝在共識層之中。
以比特幣為例,比特幣採用的是PoW(工作量證明)共識機制,也就是「解難題」模式。解難題模式存在一個問題:隨著加入網絡的人越來越多,系統題目被破解的速度也會越來越快並導致出塊速度過快,不利於系統運行。
為此,中本聰設計了難度調整機制。比特幣網絡每產生 2016 個區塊(大約是兩周時間)後,會根據之前 2016 個區塊的計算時間以及算力進行數學難題的難度調整,通過提高或降低數學題的難度,將出塊速度控制在大約10分鐘/塊左右,而這個數學題的難度就是我們所說的比特幣的「網絡難度」。
區塊獎勵和減半
顧名思義,區塊獎勵就是對於礦工產出單個區塊的獎勵。區塊獎勵與出塊速度一樣,都是由系統設計者規定,稍有不同的是,區塊獎勵封裝在激勵層中。
如果2020年區塊鏈世界評選一個熱門概念,那「減半」毫無疑問會榜上有名,這裡所說的減半,指的就是比特幣區塊獎勵的減半。
比特幣系統在設計之初規定了2100萬的總量恆定不變,分多個週期挖礦產出。每210000個區塊為一個週期,按10分鐘/塊的速度算就是大約4年一個週期。第一個週期的區塊獎勵為50 BTC,後面每個週期的區塊獎勵較上一個週期減半:第二個週期區塊獎勵25 BTC,第三個週期區塊獎勵12.5 BTC,...,依次類推。2020年5月12日,比特幣完成第三次減半,進入第四個週期,區塊獎勵從原先的12.5 BTC降至6.25 BTC。
礦工費
在現實生活中,我們通過銀行系統進行跨境轉賬往往會被收取手續費。同樣道理,當我們在區塊鏈上交易時,我們也需要支付礦工費,只是相對於銀行手續費,礦工費往往會便宜許多。
區塊鏈上的每一筆交易都需要礦工進行記錄、打包成塊並向全網廣播才能完成。礦工打包、廣播、傳送交易是需要耗費一定資源,如算力、電力等,因此用戶需要向礦工支付一定的報酬,這就是礦工費。
我們可以將礦工費類比為現實世界中的快遞運費,只不過礦工們搬運的是交易信息而不是貨物。
舉個例子,「淘寶城」的居民們在雙十一當天發起了10筆「快遞」訂單,礦工們可以自行選擇先執行那筆訂單。一般來說,礦工們都會選擇性價比較高的訂單先進行搬運。如果你很著急,想讓礦工早點搬運你的「快遞」,你可以出更高的礦工費吸引礦工。
此外,快遞越重(交易佔用字節越多),需要支付的快遞費(礦工費)越高。但和快遞運費不同的是,礦工費是不固定的,完全由市場決定。一般來說,網絡堵塞(快遞太多,搬不過來)時礦工費上升,網絡順暢時礦工費下降。