什么是比特幣挖礦 比特幣節(jié)點(diǎn)互相連接時(shí),會(huì)從對方處獲取自己沒有的交易。但由于比特幣長期積累天量的交易,兩個(gè)節(jié)點(diǎn)逐條對照你缺了哪些交易/我缺了哪些交易,是非常困難的事情。 為解決這一難題,中本聰發(fā)明了區(qū)塊鏈(Block chain)這一重要技術(shù)。節(jié)點(diǎn)借助區(qū)塊(block)來同步交易,保證了所有節(jié)點(diǎn)數(shù)據(jù)的統(tǒng)一性,并通過競爭區(qū)塊打包權(quán)(也就是挖礦)的方式,保證了區(qū)塊鏈的唯一性。 1. 區(qū)塊和區(qū)塊鏈 一段時(shí)間內(nèi)的交易打成的一個(gè)包稱為區(qū)塊,比特幣全網(wǎng)平均每10分鐘產(chǎn)生一個(gè)區(qū)塊,每一個(gè)區(qū)塊都鏈接到上一個(gè)區(qū)塊,依次相連形成區(qū)塊鏈。 2. 以區(qū)塊為單位同步交易數(shù)據(jù) 區(qū)塊從1開始編號,因此節(jié)點(diǎn)A連接節(jié)點(diǎn)B后,只要檢查雙方的區(qū)塊編號高度,就能方便地同步交易數(shù)據(jù)。例如節(jié)點(diǎn)A自己的區(qū)塊高度是100,發(fā)現(xiàn)節(jié)點(diǎn)B的區(qū)塊高度是110,則只要向B請求同步101~110這10個(gè)區(qū)塊即可。 3. 打包區(qū)塊的獎(jiǎng)勵(lì) 為保證有節(jié)點(diǎn)打包比特幣交易,比特幣規(guī)則規(guī)定:打包交易的節(jié)點(diǎn)將獲得比特幣作為酬勞。A、打包獎(jiǎng)勵(lì)的一部分來自交易創(chuàng)建者支付的交易手續(xù)費(fèi)(每KB交易大小100~1000聰手續(xù)費(fèi))。B、另一部分來自初始2100萬個(gè)比特幣的分發(fā),最開始獎(jiǎng)勵(lì)是每個(gè)區(qū)塊50比特幣,之后每經(jīng)過21萬個(gè)區(qū)塊(約4年時(shí)間)獎(jiǎng)勵(lì)將減半一次,直到2140年左右區(qū)塊獎(jiǎng)勵(lì)不足1聰為止,此時(shí)區(qū)塊獎(jiǎng)勵(lì)總和為2100萬比特幣,這就是比特幣2100萬總量的來源(準(zhǔn)確地說是 20999999.97690000個(gè))。2140年后打包獎(jiǎng)勵(lì)將只來自于交易創(chuàng)建者支付的交易手續(xù)費(fèi)。 4. 對區(qū)塊打包權(quán)的競爭 節(jié)點(diǎn)打包交易只需要消耗很低成本的網(wǎng)絡(luò)和計(jì)算資源,打包獎(jiǎng)勵(lì)的存在(目前每個(gè)區(qū)塊的打包獎(jiǎng)勵(lì)25比特幣約為4萬元),使得有大量節(jié)點(diǎn)想打包交易。為保證區(qū)塊鏈的唯一性,比特幣規(guī)則規(guī)定:節(jié)點(diǎn)使用類似“扔硬幣”的方法爭奪交易打包權(quán)。節(jié)點(diǎn)不斷地扔硬幣,誰首先扔出符合規(guī)則的結(jié)果,誰就能獲得這個(gè)區(qū)塊的交易打包權(quán),以及這個(gè)區(qū)塊的打包獎(jiǎng)勵(lì)。 5. 競爭交易打包權(quán)的方式 “扔硬幣”在實(shí)現(xiàn)上是計(jì)算機(jī)做一次哈希(SHA-256)運(yùn)算,并檢查運(yùn)算結(jié)果從第一位開始是否有足夠多連續(xù)的0(可以簡單理解為一次扔256個(gè)硬幣,然后看從第一個(gè)硬幣開始是否有足夠多的連續(xù)硬幣正面)。“扔硬幣”獲勝的唯一訣竅是提高每秒扔硬幣的次數(shù),一個(gè)每秒能扔100億次硬幣(做100億次哈希計(jì)算)的節(jié)點(diǎn),搶到打包權(quán)的概率是每秒扔1億次硬幣節(jié)點(diǎn)的100倍。 6. 獲勝節(jié)點(diǎn)打包交易并廣播 一旦有某個(gè)節(jié)點(diǎn)扔出符合系統(tǒng)規(guī)則的硬幣結(jié)果(例如區(qū)塊379543的哈希值 000000000000000008bdeb575056584429ea4be876ea7ca4ce70262d3edb8c8b),他就會(huì)立即將這段時(shí)間搜集到的交易打包成一個(gè)區(qū)塊,附上“扔硬幣”的結(jié)果、區(qū)塊序號379543、上一區(qū)塊關(guān)系等附加信息廣播出去,其它節(jié)點(diǎn)一旦收到區(qū)塊379543并驗(yàn)證無誤,就會(huì)停止“扔硬幣”搶這一區(qū)塊,轉(zhuǎn)而在這一區(qū)塊的基礎(chǔ)上開始“扔硬幣”搶下一區(qū)塊379544。 7. “挖礦”和“礦工”的由來 節(jié)點(diǎn)大量進(jìn)行哈希計(jì)算需要計(jì)算機(jī)設(shè)備,并消耗大量電力,這個(gè)過程在本質(zhì)上和金礦挖礦很相似(通過挖礦設(shè)備,消耗能源換取黃金)。比特幣總量恒定,產(chǎn)量越來越少的產(chǎn)生方式也和黃金很相似。因此人們形象地將比特幣搶打包權(quán)的過程稱為挖礦(mine),將搶打包權(quán)的比特幣節(jié)點(diǎn)稱為礦工(miner)。 挖礦設(shè)備的演變1. CPU:最早的礦工使用CPU進(jìn)行挖礦,挖礦速度在M級別(1M=1000K=10^6=每秒100萬次哈希運(yùn)算)。 2. 顯卡礦機(jī):顯卡有數(shù)百個(gè)計(jì)算核心(流處理器),因此速度相當(dāng)于數(shù)百個(gè)CPU,挖礦速度在百M(fèi)級別。由于ATI和NVIDIA顯卡的架構(gòu)不同,同檔次A卡流處理器數(shù)量遠(yuǎn)超過N卡,因此A卡在挖礦上有巨大優(yōu)勢,專業(yè)礦工往往用H61B等有6個(gè)PCI-E插槽的主板,插上5-6張ATI 7850等高端顯卡,組成礦機(jī)群挖礦。 3. 集成電路礦機(jī):隨著比特幣價(jià)格的不斷上揚(yáng),挖礦越來越有利可圖,集成電路礦機(jī)隨之出現(xiàn),礦機(jī)使用專門設(shè)計(jì)的,只能做挖礦哈希運(yùn)算的芯片,因此在挖礦速度和功耗上較CPU和顯卡這樣的通用計(jì)算設(shè)備有很大的優(yōu)勢,代價(jià)則是除了挖礦和做電暖器以外什么都做不了。CPU和顯卡在挖礦產(chǎn)出不夠電費(fèi)被淘汰后,還能當(dāng)普通電腦用;而礦機(jī)被淘汰后,除了少數(shù)人有免費(fèi)電可以繼續(xù)挖外,就只能當(dāng)電暖器或報(bào)廢了。 集成電路礦機(jī)經(jīng)FPGA礦機(jī)集成電路礦機(jī)經(jīng)FPGA礦機(jī)(FPGA:現(xiàn)場可編程門陣列,一種半定制電路)的短暫過渡(速度數(shù)百M(fèi)到G級別,1G=1000M),進(jìn)化到ASIC礦機(jī)(ASIC:專用集成電路)時(shí)代,速度亦從G級別逐步進(jìn)化到T級別(1T=1000G),其每秒能進(jìn)行萬億次哈希運(yùn)算,相當(dāng)于一百萬個(gè)CPU的計(jì)算能力。也就是說目前全球排名第二的天河二號超級計(jì)算機(jī)如果用于挖礦,其312萬個(gè)CPU核心的計(jì)算能力僅相當(dāng)于價(jià)值幾千元的T級別礦機(jī)。 5. 2013年起比特幣價(jià)格的飆升,上百萬臺(tái)ASIC礦機(jī)的大量部署,使得比特幣全網(wǎng)算力目前已達(dá)到驚人的435P(1P=1000T),下圖為KnCMiner在瑞典的大型礦場。 礦池由于有數(shù)以萬計(jì)的礦工競爭打包權(quán),單個(gè)礦工搶得打包權(quán)的概率非常小,產(chǎn)出非常不穩(wěn)定,有可能走狗屎運(yùn)1小時(shí)就搶到一次,也有可能一年都搶不到一次。為穩(wěn)定挖礦產(chǎn)出,礦工往往選擇加入礦池挖礦,礦池將大量礦工的算力整合在一起,在全網(wǎng)總算力中占據(jù)一定的份額,由此得到較穩(wěn)定的挖礦產(chǎn)出,礦池在收取2%~4%礦池手續(xù)費(fèi)后,將產(chǎn)出按礦工算力分配給礦工。這就好比一個(gè)人買彩票很難中獎(jiǎng),于是礦池把很多人組織在一起買彩票,中獎(jiǎng)了再按出資額分配給大家。 隨著礦池的發(fā)展,還出現(xiàn)了像萊比特(http://LTC1BTC.com)這樣的自動(dòng)切換礦池,俗稱機(jī)槍池。機(jī)槍池會(huì)在各種山寨幣收益高時(shí)切換到山寨幣挖礦,以此將礦工的收入提高5%~10%。 比特幣挖礦的意義——分發(fā)初始比特幣比特幣反對者指責(zé)挖礦白白消耗了大量資源去做無意義的扔硬幣,支持者則舉例黃金挖礦也是白白消耗了大量資源去做無意義的挖洞。對于比特幣系統(tǒng)而言,這種消耗大量資源挖礦的最大意義在于:公平地分發(fā)2100萬個(gè)初始比特幣,就像消耗資源挖黃金一樣,消耗資源獲挖比特幣是唯一公平的分發(fā)初始比特幣的方式。 比特幣由于其代碼開源,因此出現(xiàn)了數(shù)以千計(jì)的抄襲者、競爭者、改進(jìn)者。通常將只是簡單抄襲模仿比特幣的稱為山寨幣,在比特幣基礎(chǔ)上加入一定新特性的稱為競爭幣,有的幣在比特幣基礎(chǔ)上加入智能合約等其他功能模塊,并自稱“二代幣”。這些數(shù)以千計(jì)林林總總的幣嘗試了所有你能想象得到的初始幣分發(fā)模式,例如將初始幣平均分發(fā)給每個(gè)冰島人的冰島幣(Aurcoin),將初始幣分發(fā)給73個(gè)眾籌參與人的未來幣(Nextcoin),由開發(fā)者控制并緩慢分發(fā)大部分初始幣的瑞波幣(XRP)等等。 但所有這些分發(fā)初始幣的方式,其公平性都遠(yuǎn)弱于燒錢獲取初始比特幣的模式,而公平性又是一個(gè)貨幣系統(tǒng)的最核心問題,因此比特幣挖礦雖然消耗了大量資源,但和消耗資源挖金礦一樣是合理的經(jīng)濟(jì)行為。 |