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





