我們應(yīng)該怎樣去挖礦
對(duì)于剛剛接觸比特幣的用戶來(lái)說(shuō),感覺(jué)最不可思議的術(shù)語(yǔ)就是“挖礦”了, 一個(gè)運(yùn)行在網(wǎng)絡(luò)上的數(shù)字大賬本,還需要?jiǎng)佑猛诰驒C(jī)嗎?實(shí)際上“挖礦”只是一種類比,與黃金的挖掘方式相類比,黃金的開(kāi)采費(fèi)時(shí)費(fèi)力,而且黃金資源有限。比特幣的挖取也是費(fèi)時(shí)(需要大量的計(jì)算)、費(fèi)電(專業(yè)礦機(jī)需要充足的電力),而且BTC資源也有限,總量2100萬(wàn)個(gè),每四年新幣數(shù)量減半。
在第上一章介紹“交易”的概念時(shí)提到,BTC是通過(guò)交易鏈一層一層傳遞的,而最初的幣是從哪里來(lái)的?就是通過(guò)“挖礦”來(lái)的,而且所有的幣沒(méi)有其它來(lái)源,全部都是通過(guò)“挖礦”得來(lái),沒(méi)有任何一家機(jī)構(gòu)可以無(wú)緣無(wú)故增發(fā)貨幣。
▍礦工(Miner)與礦池(Pool)
挖礦任務(wù)的實(shí)施者叫“礦工(Miner)”,不像挖黃金里的礦工,這里的礦工是一臺(tái)冰冷的計(jì)算機(jī)(通常配有專業(yè)的挖礦芯片,還有挖礦軟件),它們靠電力支撐其復(fù)雜的計(jì)算,單個(gè)礦工的力量畢竟有限,它們則采用集團(tuán)作戰(zhàn)的方式,組成“礦池(Pool)”,每個(gè)礦工按貢獻(xiàn)率分成。
挖礦的結(jié)果是產(chǎn)生一個(gè)新區(qū)塊,也就是在共享大賬本上增加一個(gè)賬本,想獲得這種記賬權(quán)并不容易,需要完成復(fù)雜的計(jì)算(專業(yè)術(shù)語(yǔ)叫工作量證明PoW,下一節(jié)介紹),第一個(gè)完成計(jì)算的才有資格在區(qū)塊鏈上增加一個(gè)新塊,新區(qū)塊中含有新幣獎(jiǎng)勵(lì)(最早為50BTC,每四年減半,2017 年已經(jīng)是 12.5 BTC);新區(qū)塊中還包含了網(wǎng)絡(luò)上廣播的數(shù)筆交易,這些交易中的手續(xù)費(fèi)也全由礦工拿走。在 2009 年比特幣剛誕生的時(shí)候,用一臺(tái)電腦就可以完成這些計(jì)算,當(dāng)時(shí)的Bitcoin Core 中還內(nèi)置了一個(gè)挖礦模塊。
從這里我們可以知道挖礦有兩個(gè)意義:一是驗(yàn)證交易的合法性,寫(xiě)入大賬本;二是發(fā)行新幣。由于這個(gè)行業(yè)的巨大經(jīng)濟(jì)誘惑,隨著時(shí)間推移,大量的計(jì)算機(jī)投入到這種計(jì)算中,通常的CPU被高性能的GPU顯卡取代,再后來(lái),專用的挖礦芯片ASIC問(wèn)世,運(yùn)算效率是CPU計(jì)算的上萬(wàn)倍。如果你現(xiàn)在想用自己的臺(tái)式機(jī)挖礦,就相當(dāng)于你用一雙手挖黃金,而別人用專業(yè)團(tuán)隊(duì)+全副武裝的挖掘設(shè)備來(lái)挖,你忙活幾百年也別想挖到 1 個(gè)幣。
現(xiàn)在比特幣挖礦的入門(mén)裝備也得上百萬(wàn)的投入,需要購(gòu)進(jìn)專門(mén)的設(shè)備,在一個(gè)電費(fèi)低廉的地方找塊空地,配上技術(shù)人員,才可以玩得轉(zhuǎn)。所以說(shuō),普通人就想通過(guò)挖礦來(lái)獲得你人生的第一枚比特幣幾乎是不可能的。
登錄到這個(gè)網(wǎng)站看看最新的區(qū)塊都是哪些礦池挖出來(lái)的。
▍雙重支付(Double-Spend)區(qū)塊鏈中解決了數(shù)字貨幣中的一項(xiàng)關(guān)鍵技術(shù),稱為“雙重支付”,即double-spend。即一筆數(shù)字資產(chǎn)既支付給了A,又支付給了B。有些書(shū)或網(wǎng)絡(luò)文章中也把double-spend直譯為“雙花”,讓人費(fèi)解,千萬(wàn)別理解為兩朵花。
在去中心化交易技術(shù)之前,這類問(wèn)題通過(guò)中心化的機(jī)構(gòu)來(lái)解決,比如:銀行。你給A支付了一筆錢(qián),把余額變動(dòng)一下,想多花也不可能。當(dāng)然信用卡賬戶允許你余額還可以支付一定數(shù)量的資金,那都是銀行說(shuō)了算。
比特幣的創(chuàng)始人中本聰設(shè)計(jì)了一套完整的體系解決了這個(gè)問(wèn)題,共享大賬本(區(qū)塊鏈)、去中心化的網(wǎng)絡(luò)(比特幣協(xié)議)、交易驗(yàn)證系統(tǒng)(交易腳本)、貨幣發(fā)行(挖礦)等。
大家可能會(huì)想,又是挖礦、又是工作量證明,為什么把新區(qū)塊的產(chǎn)生搞得那么復(fù)雜?一個(gè)主要原因就是解決在沒(méi)有建立信任關(guān)系的網(wǎng)絡(luò)中的雙重支付的問(wèn)題,當(dāng)然這種挖礦機(jī)制還能夠解決虛假交易、垃圾交易等問(wèn)題。
這種技術(shù)也可以解決“拜占庭將軍問(wèn)題”,即一支分散在多處的軍隊(duì)里混入少數(shù)叛徒,如何才能通過(guò)一致的行動(dòng)來(lái)保證戰(zhàn)爭(zhēng)的勝利。關(guān)于這個(gè)問(wèn)題,在進(jìn)階篇會(huì)作更詳細(xì)解釋。
假如你在兩臺(tái)安裝有Bitcoin Core的電腦上分別發(fā)出了2筆交易(同一筆BTC輸入,支付給A和B),這些交易都會(huì)向全網(wǎng)廣播,礦工在收到這些交易時(shí),不會(huì)將兩個(gè)交易都打包。
萬(wàn)一不小心把A和B都打包了,還有許多其他節(jié)點(diǎn)要進(jìn)行驗(yàn)證,仍會(huì)拒絕承認(rèn)這個(gè)區(qū)塊, 也就是說(shuō)這筆交易的確認(rèn)數(shù)會(huì)一直為。小額交易等待1次確認(rèn)就行,大額交易等待6次以上的確認(rèn)就足夠的安全。
整個(gè)比特幣系統(tǒng)中的每一個(gè)節(jié)點(diǎn)都可以查詢每一筆交易的情況,且它們是有時(shí)間順序的(時(shí)間戳機(jī)制),有一個(gè)公認(rèn)的交易序列,只有當(dāng)大部分節(jié)點(diǎn)都認(rèn)同這筆交易時(shí),這筆交易才是可信的。想破壞這種機(jī)制,需要擁有51%的算力。
在比特幣世界里想透支,是不可能的。除了創(chuàng)世區(qū)塊中的50個(gè)BTC是憑空出現(xiàn)的,以后的BTC都是挖礦獲得的。你是否擁有1個(gè)BTC?通過(guò)比特幣地址可以查個(gè)底朝天,一直追蹤到這筆資金的誕生記錄。這筆錢(qián)是不是你的?通過(guò)加密和簽名算法來(lái)保證,無(wú)法偽造。
解決雙重支付,必須對(duì)于每筆交易建立共識(shí),就是大家都同意的機(jī)制,無(wú)法達(dá)成共識(shí),就會(huì)分叉。