簡介
我們知道比特幣就是挖礦產生的,那么在比特幣網絡中,挖礦有什么特點呢?怎么分配挖礦收入呢?在這篇文章中你都能找到答案。
比特幣的節點構造
上篇文章我們提到了,比特幣是一個P2P網絡,P2P網絡中就有很多個節點,從P2P的定義來看,各個節點的地位是相同的,其實不然。比特幣網絡的節點各有作用。
我們先來看一個總體的圖,比特幣節點總共有4種類型:
這四種類型分別是錢包,挖礦節點,全節點,和網絡路由節點。
不同的角色組合成了一個龐大的比特幣網絡。根據功能的不同,不同的角色可能需要不同的類型。
上面我們介紹了7個常見的節點。
-
Bitcoin Core 這個是你在官方下載的bitcoin軟件,它包含了4中類型的功能。
-
Full Block Chain Node,這個節點包含了所有的比特幣區塊鏈歷史的信息,叫做全節點,全節點主要用來做歷史交易的驗證。
-
Solo Miner,這個是獨立的挖礦節點。
-
SPV wallet, 這個是我們之前介紹的輕量級的錢包。
-
Pool Protocol Servers, 這個是礦池連接比特幣網絡的網關。
注意,比特網網絡除了自身的P2P網絡協議之外,還有一個Stratum協議,Stratum協議被應用於挖礦、以及輕量級或移動端比特幣錢包之中。
-
Mining Nodes,這是連接到比特幣礦池的礦機節點。
-
SPV stratum wallet, 使用Stratum協議的輕量級錢包。
這些節點組合在一起,構成了龐大的比特幣網絡。
挖礦
挖礦是增加比特幣貨幣供應的一個過程。挖礦同時還保護着比特幣系統的安全,防止欺詐交易,避免“雙重支付”,“雙重支付”是指多次花費同一筆比特幣。礦工們通過為比特幣網絡提供算力來換取獲得比特幣獎勵的機會。
每10分鍾就會有一個新的區塊被“挖掘”出來,每個區塊里包含着從上一個區塊產生到目前這段時間內 發生的所有交易,這些交易被依次添加到區塊鏈中
礦工們在挖礦過程中會得到兩種類型的獎勵:創建新區塊的新幣獎勵,以及區塊中所含交易的交易費。為了得到這些獎勵,礦工們爭相完成一種基於加密哈希 算法的數學難題,這些難題的答案包括在新區塊中,作為礦工的計算工作量的證明,被稱為”“工作量證明”。該算法的競爭的機制以及獲勝者有權在區塊鏈上進行 交易記錄的機制,這二者比特幣安全的基石。
新比特幣的生成過程被稱為挖礦是因為它的獎勵機制被設計為速度遞減模式,類似於貴重金屬的挖礦過程。比特幣的貨幣是通過挖礦發行的,類似於中央銀行 通過印刷銀行紙幣來發行貨幣。
礦工通過創造一個新區塊得到的比特幣數量大約每四年(或准確說是每隔210,000個塊)減少一半。開始時為2009年1月 每個區塊獎勵50個比特幣,然后到2012年11月減半為每個區塊獎勵25個比特幣。之后將在2016年的某個時刻再次減半為每個新區塊獎勵12.5個比 特幣。基於這個公式,比特幣挖礦獎勵以指數方式遞減,直到2140年。屆時所有的比特幣(20,999,999,980)全部發行完畢。
換句話說在 2140年之后,不會再有新的比特幣產生。(通貨緊縮貨幣)
挖礦節點
在比特幣網絡中,一些節點被稱為專業節點礦工。
與其他任一完整節點相同,這些節點在比特幣網絡中進行接收和傳播未確認交易記錄。然而,這些節點也能夠在新區塊中整合這些交易記錄。
礦工間的競爭以新區塊的傳播而 結束,如同宣布誰是最后的贏家。對於礦工們來說,獲得一個新區塊意味着某個參與者贏了,而他們則輸了這場競爭。然而,一輪競爭的結束也代表着下一輪競爭的 開始。新區塊並不僅僅是象征着競賽結束的方格旗;它也是下一個區塊競賽的發令槍。
創幣交易
區塊中的第一筆交易是筆特殊交易,稱為創幣交易或者coinbase交易。
這個交易是由挖礦節點構造並用來獎勵礦工們所做的貢獻的。挖礦節點會創建“向XX的地址支付25.09094928個比特幣”這樣一個交易,把生成交易的獎勵發送到自己的錢包。礦工挖出區塊獲得的獎勵金額 是coinbase獎勵(25個全新的比特幣)和區塊中全部交易礦工費的總和。
與常規交易不同,創幣交易沒有輸入,不消耗UTXO。它只包含一個被稱作coinbase的輸入,僅僅用來創建新的比特幣。
創幣交易有一個輸出,支付到這個礦工的比特幣地址。
礦池收入分配
根據礦池的收入分配不同,可以分為兩種。
- PPLNS
全稱Pay Per Last N Shares,意思是說“根據過去的N個股份來支付收益”,這意味着,所有的礦工一旦發現了一個區塊,大家將根據每個人自己貢獻的股份數量占比來分配區塊中的貨幣。
- PPS
PPS礦池(類似於打工模式)PPS全稱為Pay Per Share。為了解決PPLNS那種有時候收益很高,有時候沒有收益的情況,PPS采用了新的算法。PPS根據你的算力在礦池中的占比,並估算了礦池每天可以獲得的礦產,給你每天基本固定的收益。
挖礦方向
從2009年開始,原來普通的計算機就可以“挖礦”,但是到了2014年,所有挖礦的計算機也變成由專業設計芯片公司為比特幣度身定制的“礦機”。
隨着參與挖礦的計算機變得越來越昂貴,比特幣生產的成本也水漲船高。截止到2014年10月,每個比特幣生產的成本已經達到接近3000元人民幣。這個生產包括計算機的生產制造成本,生產過程中產生的電費,以及人員費用和場地費用。也就是說在2016年年底之前,因為每天生產3600個比特幣,每天所投入的資金就達到1000萬元人民幣。並且隨着競爭越來越激烈,這個成本還在處於上升階段。
算力浪費
那么挖礦花了這么多電費到底做了什么事情呢?無他,就是算一個hash值而已。
所以這造成嚴重的浪費。當然也有人想出了一些解決辦法,使用這些算力去做些有用的事情:
- Sunny King的素數幣
- 質數幣(PrimeCoin代碼XPM)尋找質數
- 格雷德幣(GridCoin代碼GRC)分布式科學計算
算力調整
注意比特幣的挖礦難點並不是一定增加的。它是動態調整的。
如果在上個周期(2016個區塊)中平均區塊產生時間大於10分鍾,也就是全網算力下降的情況下,則在當前周期的難度就會下降,使得區塊產生時間加快。不過目前為止好像還沒有出現過全網算力下降的情況,難度是一直增加。
由於是基於事后統計,所以難度的變化會滯后於全網算力的變化1~2個周期。如果全網算力增加,則在這1~2個周期中挖礦速度加快,則挖礦收益增多;反之,收益減少。但是從長期來看還是保持平衡。
總結
本文介紹了比特幣網絡中挖礦相關的內容,希望大家能夠喜歡。
本文作者:flydean程序那些事
本文鏈接:http://www.flydean.com/bitcoin-mine-consensus/
本文來源:flydean的博客
歡迎關注我的公眾號:程序那些事,更多精彩等着您!