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





