挖礦怎麼組裝
『壹』 路由器挖礦,麻煩幫我看一下怎麼弄
確認這個是挖礦嗎?
礦機主要是由高規格的顯卡組合來進行運算挖礦的,跟路由器性能沒多大關系
這個路由器是小米MINI,外加一個自己利用筆記本硬碟組裝的移動硬碟,用途無非就是利用小米自家的路由器系統組件個人的NAS伺服器,遠程查看文件,遠程下載什麼的,和挖礦沒一點關系
之前小米路由器有一個出售自己閑置網速掙錢的路由器插件,但是回本比較慢,沒什麼用
綜合來說,你提供的圖和挖礦沒多大關系
『貳』 挖礦機怎麼挖比特幣
比特幣挖礦機,就是用於賺取比特幣的電腦,這類電腦一般有專業的挖礦晶元,多採用燒顯卡的方式工作,耗電量較大。用戶用個人計算機下載軟體然後運行特定演算法,與遠方伺服器通訊後可得到相應比特幣,是獲取比特幣的方式之一。
比特幣挖礦機的價格從一台兩三百元到20萬元不等。從2011年到2013年,高配置的比特幣"挖礦機"從1萬元漲到了30萬元,但性能也比此前好了不少。據業內人士介紹,以前的老機器100天才能挖到1個比特幣,如今(2013年)的機核譽器,100天就能挖到3.5個。按照國內組裝團隊公布的礦機資料,一台售價3000元的最低配置挖礦機,按照比特幣挖礦速度,30多天便可以回本。采礦速度10G/s的機器每天陵運24小時能挖到大約0.03個比特幣,而13G/s的機器按照2013年的全網算力和難度,每天24小時能挖大約0.035個比特幣。
『叄』 IPFS挖礦需要什麼硬體配置
目前根據官方給出的FIL收益方式來看,有三種,一是提供硬碟存儲獲得收益(存儲礦工),二是提供帶寬資源獲得檢索收益(檢索礦工),三是挖礦打包區塊收益(存儲礦工),基於以上規則,目前能符合三種收益的只有企業級和雲礦池。
配置方面基於挖礦規則,給出以下配置建議:
CPU:4核及以上,inteli系列為最佳,內存最低8G,若想獲得檢索收益,內存需要16G以上,硬碟空間建議4T以上用來獲得存儲收益
家用礦機(目前情況分析,有以下劣勢):
a.國內95%以上的IP地址不是靜態的,導致挖礦違約平台扣取質押代幣b.自己需要購買質押的代幣,額外花費一部分錢購買代幣才能啟動
c.斷網斷電聲音大,影響鄰居的事件導致沒有收益
d.剛好不幸你家處在二三四五線城市,基本上搶不到訂單
e.某瑩礦機宣傳的家用礦機不能挖礦可以做檢索,檢索需要上行帶寬至少10M以上,加上時空證明(IPFS防作弊機制)可能需要更高20M以上的穩定帶寬,試問誰家小區的網路24小時之內符合以上要求,所以檢索也很困難。
f.據說18年3月份開始被洗腦買了家用礦機的投資人都用了5-10幾倍的價格買了一個小盒子放到家裡當擺設,所以家用礦機是用來割韭菜的,因為它低門檻,隨之而來的是你買了也幾乎挖不了FIL
企業級託管礦機
a.就目前的IDC機房,私人機房,硬體配置方面五花八門,自己組建礦場成本相對比較高昂,租賃達到國家級應用條件託管的話,單台配置組合價格購買價大概是成本價的3-10幾倍左右,相對成本高昂
b.同一個機房一般是出租給多個企業來存儲和應用,會導致多個操作系統同時運行的狀況,缺乏統一性,易於被黑客攻擊
c.礦場內所有礦機惡性競爭,算力內耗,分單不均衡,造成部分機器搶到單,部分機器沒有單的情況,收益不均衡
d.獨立的IPFS礦機系統不同,難以實時統一調參搶單
e.無法抵禦區域政策性風險,比如國家政策性風險
f.企業級最大的好處是配置高,集中化基礎管理,機房條件相對家用礦機很有優勢,同時伴隨著的不過的是以上狀況
雲礦池雲挖礦
a.算力租賃,價格相對於託管礦機低廉,租賃時間可控
b.一般雲礦池的IDC機房都是國防級的可防黑客入侵
c.礦池產出全網共享,不會擔心某個購買的節點出現故障沒有收益
d.硬體投入全網分攤,個人投入產出比劃算
e.統一規模化管理,不存在單個節點單個調試,單個維護的狀況
d.節點一般是多個城市多個國家的節點布局,地域區域性政策風險
e.第三方實時監控,信息披露度很高,隨時知道礦池產出狀況
f.統一運維系統,實時統一調參,定價策略,搶單策略,存儲策略等
針對以上分析,目前國內現有的雲礦池,某貓雲礦池,某瑩雲節點,某際雲礦池,某鏈雲礦池在宣傳中號稱全球在布局的,經過實際驗證,他們的礦池要麼是自己組建的私人小型礦場,要麼是國內合作的專業礦機託管商,且范圍大多隻局限於國內,因為礦池礦場的搭建成本非常高昂,和國內雲級服務商合作的成本更加高昂,所以退而求其次,自己組建小型礦池,對外宣傳全球布局。
目前比較推薦了解的是「諾亞雲礦池」,經過驗證,諾亞雲礦池的渠道雲服務商目前在香港,新加波,德國,波蘭是有合作的,技術背景相對比較雄厚,其它相關信息請各自查詢。
『肆』 對於初次接觸礦機的,挖礦人怎麼去配置屬於自己的礦機呢不要太坑,還是實際點講。
如今各位挖礦的電腦愛好者沒有不知道的。想要在網上獲得高效並且快速的資源,那就需要挖礦,不過挖礦可是高端技術活,考驗的是電腦的CPU與GPU性能,如今的核心顯卡配置根本挖不動。對於喜歡挖礦的用戶來說,選擇一款專業級挖礦機配置就很重要了,
詳情如下:
礦機是需要一個好顯卡和充足的內存的,所以,在組裝之前一定要選擇好的顯卡和CPU,以太幣的發掘過程其實就是一個計算的過程,這樣的計算是非常耗電的,而且也是非常耗能的,尤其是對於顯卡的要求極高,配置越高的礦機所獲得的以太幣越多,獲得的利潤高也就越來越高。
組裝礦機需要注意兩點,1.PCIE插槽越多可連接的顯卡就越多,單個礦機的算力就越大。2.電源功率越大能帶動的顯卡越多。所以大家在選擇配置時一定要根據你的顯卡的數量與功率來選擇相應功率的電源,否則很有可能出現因為電源功率過低而導致顯卡算力不足甚至不工作的情況。
綜上所述,對於想要挖礦的投資者來說,最好還是去專業的網站購買至少一台礦機,而且要配置高的礦機,主要是看礦機的顯卡和CPU,這兩項是決定礦機工作效率的主要因素,所以,在挖礦之前一定要弄清楚這些事項。
配件名稱 品牌型號 參考價格(元)
處理器:Intel酷睿i7-4770k Haswell全新架構盒裝CPU ¥2369
散熱器:盒裝自帶
主板:技嘉Z87-HD3主板 (Intel Z87/LGA 1150) ¥899
顯卡:HIS R9 280X 冰酷版Boost ¥1799
內存:金士頓駭客神條 Blu系列 DDR3 1600 8GB 台式機內存(KHX1600C10D3B1/8G) ¥499
硬碟:西部數據藍盤 1TB SATA6Gb/s 7200轉64M 台式機硬碟(WD10EZEX) ¥419
固態硬碟:浦科特M5S系列 128G 2.5英寸 SATA-3固態硬碟(PX-128M5S) ¥699
機箱:游戲悍將 刀鋒1豪華JD雪裝 中塔機箱 (U3/SSD/風扇調速器/頂部易插拔/雙風扇) ¥239
電源:航嘉jumper500 電源(額定500W/80plus白牌/主動PFC/全電壓/智能溫控/背部走線) ¥299
處理器方面,i74770K處理器可以說是目前Inel最新四代Haswell平台最頂級的一款旗艦產品,性能上自然定位於新頂級高端。該處理器基於更新一代的22mm工藝,最新的LGA1150處理器插槽,基於四核八線程,默認主頻為3.5Ghz,並且還可以睿頻至4Ghz以上,加之還有8M三級緩存,支持自由超頻等特性,整體性能強勁,運算表現極強,可以很好地滿足比特幣挖礦需求。
主板方面,四代新Haswell系列處理器需要搭載8系列主板,鑒於我們已經選擇了性能極強的旗艦級超頻處理器,因此主板非Z87高端可超頻主板莫屬了。技嘉Z87-HD3主板是一款一線技嘉主板品牌高規主板,全高清支持4K超高解析度,是一款做工扎實,超耐久4PLUS主板,保證電腦可以長期穩定運行,這對於掛機挖礦的朋友來說,非常有必要。
顯卡方面,HIS R9 280X 冰酷版Boost顯卡基於AMD最新一代顯卡技術,採用最新28nm工藝,基於R9-280X核心。R9-280X其實就是HD7970GE的改進版,而HD7970GE屬於曾經的頂級產品,在性能方面基本無可挑剔。
事實上,HIS R9 280X 冰酷版Boost顯卡默認主頻達到了850Mhz/6000Mhz,具備3GB超大容量GDR5高速顯存,並且顯卡位寬達到了384bite,是時下相當頂級顯卡,在性能表現行極強,另外字散熱上採用,IceQ X冰立方上其中一款最安靜的散熱器。獨特先進的設計,比公版散熱器更靜,目前多數R9 280X頂級高端顯卡售價在2000元以上,而這款國際知名品牌HIS R9 280X 冰酷版顯卡售價僅1799元,性價比超高。
編後語:以上推薦了一台比特幣挖礦機,比特幣挖礦電腦配置是什麼?可以參考這個組合的相關配置。這套新一代比特幣挖礦機配置採用了Intel最細四代Haswell最頂級旗艦CPU平台,結合了AMD最最新一代高端獨立顯卡,實踐證明A卡在挖礦上表現要比N卡優秀不少,加之屬於新一代N卡,組建的挖光機表現會更為出眾,除此之外,本套配置還選用了HDD+SDD雙硬碟、23英寸大屏高清顯示器,保證了整機無任何硬體瓶頸,大型游戲、比特幣挖礦也均為游刃有餘,由於基本高性價比方面搭配新硬體,整機配置價位也僅8000元出頭,性能並不比曾經那套1.6萬頂級挖礦機配置差,顯然更值得推薦。
當然論配置其實官方的並沒有過多的介紹也沒有去推薦哪些類型但是根據雲立方網的經驗來總結的,具體有什麼需求可以登錄官網查看詳情哦。
『伍』 怎麼用礦機挖礦希望有詳細教程,謝謝!
選雲挖礦模式。礦機比較麻煩,要自己組裝、然後放到礦場,並且電費、維修費也很驚人,每月是筆不小的數目。雲挖礦就是有人員幫你把礦機託管在礦場,不用你自己弄。
『陸』 什麼叫顯卡挖礦
「顯卡挖礦」其實就是用顯卡去挖比特幣,讓顯卡高負荷工作挖,淘汰了的就成了礦卡,礦卡一般背面核心pc板嚴重變色。
對礦機來說,最重要的就是顯卡,一般入門挖礦可以選擇最基礎的支持6顯卡的主板,以後可以選擇支持12顯卡以上的復雜一些的主板,具體建議如下:
1、cpu——cpu可以選擇最基礎廉價的cpu,只要能把系統正常帶起來就可以了,一般可以選擇intel的G3900這類單價200元左右的cpu即可。
2、內存——配6顯卡的話至少需要4g的內存,如果是12張顯卡的話,windows操作系統至少需要8g以上的內存,否則系統會很卡然後無法正常工作挖礦,linux操作系統的話可以4g內存。
3、主板——主板這里推薦新手直接選擇映泰系列專門的挖礦主板,型號分別是6卡槽的tb250-btc和12卡槽的tb250-btcpro,也有華擎的h81系列主板等等可以選擇。
4、硬碟——硬碟需要ssd硬碟,因為讀取速度快,另外需要設置虛擬內存,ssd硬碟理論上能提升一些性能。如果是用windows系統的話至少需要64gb的,linux系統的話可以16gb。
5、操作系統——windows的話建議win10的系統,對應nvidia系列和amd系列的顯卡最多可以分別識別8張卡,如果12卡的主板需要n卡a卡混插挖礦才能充分利用主板顯卡插槽。
6、顯卡——主流挖礦顯卡型號分別是AMD系列顯卡RX470、RX570、RX580,Nvidia系列顯卡GTX1060、GTX1070等等,內存建議選擇4G以上,最好8G。
『柒』 如何組裝一台比特幣挖礦設備,自己裝個挖礦設備至少需要哪些硬體
挖礦設備首先就是杜絕NV顯卡。挖礦肯定是用顯卡挖礦。
CPU不是很重要。但是也不要低過I5,
挖礦設備的整體結構和普通PC機器不一樣的地方就是顯卡數量。
可以通過PIC擴展來安裝4,個或者8個。當然你覺得夠2個,1個也行。
擴展後,需要自己製作個擴展架。來固定顯卡等設備,架子上要弄些風扇給顯卡散熱的。
『捌』 區塊鏈挖礦是什麼區塊鏈如何挖礦
區塊鏈挖礦是什麼?區塊鏈如何挖礦
在區塊鏈興起之前,礦工專指挖煤礦的工人,群體印象是渾身沾滿了煤屑,衣服以外都是黝黑皮膚的男人。區塊鏈誕生之後,礦工不再只是煤礦工人的簡稱,有了一種全新的含義:從事虛擬貨幣挖礦的人。
對於沒有參與過挖礦的人來說,想要了解區塊鏈挖礦可能是比較難的,所以今天我們就從最基礎的問題說起:區塊鏈挖礦是什麼?區塊鏈如何挖礦?
區塊鏈挖礦是什麼?
新時代的挖礦有2種,第一種是挖比特幣。每一筆交易發生後,並不算完成,交易數據必須寫入資料庫,才算成立,對方才能真正收到錢。首先,所有的交易數據都會傳送到礦工那裡,礦工負責把這些交易寫入區塊鏈,完成挖礦獲得收益。
第二種則是挖山寨。零幣、門羅幣、以太幣、萊特幣、比特股等各種「山寨幣」。組裝好一台礦機後,連接指定的礦池,根據特定的演算法,開始滿負荷運算,完成一個計算周期即可獲得「一枚」虛擬貨幣。然後再將「這枚」貨幣放在網上交易平台,套現。
區塊鏈如何挖礦?
最初的時候,用電腦CPU就可以挖到比特幣,比特幣的創始人中本聰就是用他的電腦CPU挖出了世界上第一個創世區塊。然而,CPU挖礦的時代早已過去,現在的比特幣挖礦是ASIC挖礦和大規模集群挖礦的時代。
如果你想成為一名礦工,其實也比較簡單,購買一台專用的挖礦設備,就可以開始挖礦了,挖礦不需要親自動手,實際是由電腦在執行特定的運算,對於礦工來說只要保證礦機電力供應和網路連接就可以了。
區塊鏈挖礦還能賺錢嗎?
最初的時候,的確有人通過區塊鏈挖礦致富,但是隨著挖礦人數的增多,礦工之間也存在很大的競爭,利潤空間被壓縮得越來越小,加上挖比特幣一台機器上萬元,一年也挖不出一個幣,投入成本高,產出少,如果又遇上市場行情不利的話,礦工基本虧錢。
因此除了挖礦之外,越來越多的投資者選擇投資外匯賺錢,和挖礦不同,外匯的投資成本極低,如巨匯ggfx最低8美金即可交易,做多做空雙向操作,無論是漲勢還是跌勢,投資者都可交易獲利。對於時間繁忙又想投資賺錢的人來說也很方便,把巨匯ggfx的MT4交易軟體下載到手機上,就能隨時通過手機了解最新的市場行情和參與交易,最快秒速成交訂單,簡單快捷,賺錢的效率極高,所以除了挖礦,這也是不錯的致富途徑。
挖礦並不是一件容易的事情,挖礦非常消耗資源,因為虛擬貨幣生成的計算難度非常高,而且在不斷的變化,在全球范圍內每生成2016個數據塊之後,挖掘虛擬貨幣的難度就會增加一次,所以普通人在加入礦工行列之前,要從各方面多做考慮。
『玖』 比特幣挖礦電腦配置
按照國內組裝團隊公布的礦機資料,采礦速度10G/s的機器每天24小時能挖到大約0.03個比特幣,而13G/s的機器按照2013年的全網算力和難度,每天24小時能挖大約0.035個比特幣。
所以配置越好,挖礦速度越快。
處理器:Intel酷睿i7-6700K(盒裝),參考價格:2588元
散熱器:盒裝自帶
顯卡:技嘉GV-N98TG1 Gaming,參考價格:5299元
內存:光威DDR4 2133 8GB台式機內存條,參考價格:336元
主板:華碩 Z170-AR 黑金限量版,參考價格:1199元
硬碟:三星850EVO 500GB固態硬碟,參考價格:1299元
機箱:航嘉MVP機箱標准版,參考價格:159元
電源:航嘉Jumper 500(額定500W),參考價格:299元
顯示器:AOC I2369V 23寸IPS屏液晶,參考價格:919元
參考價格:12000元(含顯示器整機,配件2015年8月價格,2015年價格幅度不大,具體價格可參考中關村在線、天貓、京東等網商)
『拾』 詳解比特幣挖礦原理
可以將區塊鏈看作一本記錄所有交易的公開總帳簿(列表),比特幣網路中的每個參與者都把它看作一本所有權的權威記錄。
比特幣沒有中心機構,幾乎所有的完整節點都有一份公共總帳的備份,這份總帳可以被視為認證過的記錄。
至今為止,在主幹區塊鏈上,沒有發生一起成功的攻擊,一次都沒有。
通過創造出新區塊,比特幣以一個確定的但不斷減慢的速率被鑄造出來。大約每十分鍾產生一個新區塊,每一個新區塊都伴隨著一定數量從無到有的全新比特幣。每開采210,000個塊,大約耗時4年,貨幣發行速率降低50%。
在2016年的某個時刻,在第420,000個區塊被「挖掘」出來之後降低到12.5比特幣/區塊。在第13,230,000個區塊(大概在2137年被挖出)之前,新幣的發行速度會以指數形式進行64次「二等分」。到那時每區塊發行比特幣數量變為比特幣的最小貨幣單位——1聰。最終,在經過1,344萬個區塊之後,所有的共20,999,999.9769億聰比特幣將全部發行完畢。換句話說, 到2140年左右,會存在接近2,100萬比特幣。在那之後,新的區塊不再包含比特幣獎勵,礦工的收益全部來自交易費。
在收到交易後,每一個節點都會在全網廣播前對這些交易進行校驗,並以接收時的相應順序,為有效的新交易建立一個池(交易池)。
每一個節點在校驗每一筆交易時,都需要對照一個長長的標准列表:
交易的語法和數據結構必須正確。
輸入與輸出列表都不能為空。
交易的位元組大小是小於MAX_BLOCK_SIZE的。
每一個輸出值,以及總量,必須在規定值的范圍內 (小於2,100萬個幣,大於0)。
沒有哈希等於0,N等於-1的輸入(coinbase交易不應當被中繼)。
nLockTime是小於或等於INT_MAX的。
交易的位元組大小是大於或等於100的。
交易中的簽名數量應小於簽名操作數量上限。
解鎖腳本(Sig)只能夠將數字壓入棧中,並且鎖定腳本(Pubkey)必須要符合isStandard的格式 (該格式將會拒絕非標准交易)。
池中或位於主分支區塊中的一個匹配交易必須是存在的。
對於每一個輸入,如果引用的輸出存在於池中任何的交易,該交易將被拒絕。
對於每一個輸入,在主分支和交易池中尋找引用的輸出交易。如果輸出交易缺少任何一個輸入,該交易將成為一個孤立的交易。如果與其匹配的交易還沒有出現在池中,那麼將被加入到孤立交易池中。
對於每一個輸入,如果引用的輸出交易是一個coinbase輸出,該輸入必須至少獲得COINBASE_MATURITY (100)個確認。
對於每一個輸入,引用的輸出是必須存在的,並且沒有被花費。
使用引用的輸出交易獲得輸入值,並檢查每一個輸入值和總值是否在規定值的范圍內 (小於2100萬個幣,大於0)。
如果輸入值的總和小於輸出值的總和,交易將被中止。
如果交易費用太低以至於無法進入一個空的區塊,交易將被拒絕。
每一個輸入的解鎖腳本必須依據相應輸出的鎖定腳本來驗證。
以下挖礦節點取名為 A挖礦節點
挖礦節點時刻監聽著傳播到比特幣網路的新區塊。而這些新加入的區塊對挖礦節點有著特殊的意義。礦工間的競爭以新區塊的傳播而結束,如同宣布誰是最後的贏家。對於礦工們來說,獲得一個新區塊意味著某個參與者贏了,而他們則輸了這場競爭。然而,一輪競爭的結束也代表著下一輪競爭的開始。
驗證交易後,比特幣節點會將這些交易添加到自己的內存池中。內存池也稱作交易池,用來暫存尚未被加入到區塊的交易記錄。
A節點需要為內存池中的每筆交易分配一個優先順序,並選擇較高優先順序的交易記錄來構建候選區塊。
一個交易想要成為「較高優先順序」,需滿足的條件:優先值大於57,600,000,這個值的生成依賴於3個參數:一個比特幣(即1億聰),年齡為一天(144個區塊),交易的大小為250個位元組:
High Priority > 100,000,000 satoshis * 144 blocks / 250 bytes = 57,600,000
區塊中用來存儲交易的前50K位元組是保留給較高優先順序交易的。 節點在填充這50K位元組的時候,會優先考慮這些最高優先順序的交易,不管它們是否包含了礦工費。這種機制使得高優先順序交易即便是零礦工費,也可以優先被處理。
然後,A挖礦節點會選出那些包含最小礦工費的交易,並按照「每千位元組礦工費」進行排序,優先選擇礦工費高的交易來填充剩下的區塊。
如區塊中仍有剩餘空間,A挖礦節點可以選擇那些不含礦工費的交易。有些礦工會竭盡全力將那些不含礦工費的交易整合到區塊中,而其他礦工也許會選擇忽略這些交易。
在區塊被填滿後,內存池中的剩餘交易會成為下一個區塊的候選交易。因為這些交易還留在內存池中,所以隨著新的區塊被加到鏈上,這些交易輸入時所引用UTXO的深度(即交易「塊齡」)也會隨著變大。由於交易的優先值取決於它交易輸入的「塊齡」,所以這個交易的優先值也就隨之增長了。最後,一個零礦工費交易的優先值就有可能會滿足高優先順序的門檻,被免費地打包進區塊。
UTXO(Unspent Transaction Output) : 每筆交易都有若干交易輸入,也就是資金來源,也都有若干筆交易輸出,也就是資金去向。一般來說,每一筆交易都要花費(spend)一筆輸入,產生一筆輸出,而其所產生的輸出,就是「未花費過的交易輸出」,也就是 UTXO。
塊齡:UTXO的「塊齡」是自該UTXO被記錄到區塊鏈為止所經歷過的區塊數,即這個UTXO在區塊鏈中的深度。
區塊中的第一筆交易是筆特殊交易,稱為創幣交易或者coinbase交易。這個交易是由挖礦節點構造並用來獎勵礦工們所做的貢獻的。假設此時一個區塊的獎勵是25比特幣,A挖礦的節點會創建「向A的地址支付25.1個比特幣(包含礦工費0.1個比特幣)」這樣一個交易,把生成交易的獎勵發送到自己的錢包。A挖出區塊獲得的獎勵金額是coinbase獎勵(25個全新的比特幣)和區塊中全部交易礦工費的總和。
A節點已經構建了一個候選區塊,那麼就輪到A的礦機對這個新區塊進行「挖掘」,求解工作量證明演算法以使這個區塊有效。比特幣挖礦過程使用的是SHA256哈希函數。
用最簡單的術語來說, 挖礦節點不斷重復進行嘗試,直到它找到的隨機調整數使得產生的哈希值低於某個特定的目標。 哈希函數的結果無法提前得知,也沒有能得到一個特定哈希值的模式。舉個例子,你一個人在屋裡打檯球,白球從A點到達B點,但是一個人推門進來看到白球在B點,卻無論如何是不知道如何從A到B的。哈希函數的這個特性意味著:得到哈希值的唯一方法是不斷的嘗試,每次隨機修改輸入,直到出現適當的哈希值。
需要以下參數
• block的版本 version
• 上一個block的hash值: prev_hash
• 需要寫入的交易記錄的hash樹的值: merkle_root
• 更新時間: ntime
• 當前難度: nbits
挖礦的過程就是找到x使得
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET
上式的x的范圍是0~2^32, TARGET可以根據當前難度求出的。
簡單打個比方,想像人們不斷扔一對色子以得到小於一個特定點數的游戲。第一局,目標是12。只要你不扔出兩個6,你就會贏。然後下一局目標為11。玩家只能扔10或更小的點數才能贏,不過也很簡單。假如幾局之後目標降低為了5。現在有一半機率以上扔出來的色子加起來點數會超過5,因此無效。隨著目標越來越小,要想贏的話,扔色子的次數會指數級的上升。最終當目標為2時(最小可能點數),只有一個人平均扔36次或2%扔的次數中,他才能贏。
如前所述,目標決定了難度,進而影響求解工作量證明演算法所需要的時間。那麼問題來了:為什麼這個難度值是可調整的?由誰來調整?如何調整?
比特幣的區塊平均每10分鍾生成一個。這就是比特幣的心跳,是貨幣發行速率和交易達成速度的基礎。不僅是在短期內,而是在幾十年內它都必須要保持恆定。在此期間,計算機性能將飛速提升。此外,參與挖礦的人和計算機也會不斷變化。為了能讓新區塊的保持10分鍾一個的產生速率,挖礦的難度必須根據這些變化進行調整。事實上,難度是一個動態的參數,會定期調整以達到每10分鍾一個新區塊的目標。簡單地說,難度被設定在,無論挖礦能力如何,新區塊產生速率都保持在10分鍾一個。
那麼,在一個完全去中心化的網路中,這樣的調整是如何做到的呢?難度的調整是在每個完整節點中獨立自動發生的。每2,016個區塊(2周產生的區塊)中的所有節點都會調整難度。難度的調整公式是由最新2,016個區塊的花費時長與20,160分鍾(兩周,即這些區塊以10分鍾一個速率所期望花費的時長)比較得出的。難度是根據實際時長與期望時長的比值進行相應調整的(或變難或變易)。簡單來說,如果網路發現區塊產生速率比10分鍾要快時會增加難度。如果發現比10分鍾慢時則降低難度。
為了防止難度的變化過快,每個周期的調整幅度必須小於一個因子(值為4)。如果要調整的幅度大於4倍,則按4倍調整。由於在下一個2,016區塊的周期不平衡的情況會繼續存在,所以進一步的難度調整會在下一周期進行。因此平衡哈希計算能力和難度的巨大差異有可能需要花費幾個2,016區塊周期才會完成。
舉個例子,當前A節點在挖277,316個區塊,A挖礦節點一旦完成計算,立刻將這個區塊發給它的所有相鄰節點。這些節點在接收並驗證這個新區塊後,也會繼續傳播此區塊。當這個新區塊在網路中擴散時,每個節點都會將它作為第277,316個區塊(父區塊為277,315)加到自身節點的區塊鏈副本中。當挖礦節點收到並驗證了這個新區塊後,它們會放棄之前對構建這個相同高度區塊的計算,並立即開始計算區塊鏈中下一個區塊的工作。
比特幣共識機制的第三步是通過網路中的每個節點獨立校驗每個新區塊。當新區塊在網路中傳播時,每一個節點在將它轉發到其節點之前,會進行一系列的測試去驗證它。這確保了只有有效的區塊會在網路中傳播。
每一個節點對每一個新區塊的獨立校驗,確保了礦工無法欺詐。在前面的章節中,我們看到了礦工們如何去記錄一筆交易,以獲得在此區塊中創造的新比特幣和交易費。為什麼礦工不為他們自己記錄一筆交易去獲得數以千計的比特幣?這是因為每一個節點根據相同的規則對區塊進行校驗。一個無效的coinbase交易將使整個區塊無效,這將導致該區塊被拒絕,因此,該交易就不會成為總賬的一部分。
比特幣去中心化的共識機制的最後一步是將區塊集合至有最大工作量證明的鏈中。一旦一個節點驗證了一個新的區塊,它將嘗試將新的區塊連接到到現存的區塊鏈,將它們組裝起來。
節點維護三種區塊:
· 第一種是連接到主鏈上的,
· 第二種是從主鏈上產生分支的(備用鏈),
· 第三種是在已知鏈中沒有找到已知父區塊的。
有時候,新區塊所延長的區塊鏈並不是主鏈,這一點我們將在下面「 區塊鏈分叉」中看到。
如果節點收到了一個有效的區塊,而在現有的區塊鏈中卻未找到它的父區塊,那麼這個區塊被認為是「孤塊」。孤塊會被保存在孤塊池中,直到它們的父區塊被節點收到。一旦收到了父區塊並且將其連接到現有區塊鏈上,節點就會將孤塊從孤塊池中取出,並且連接到它的父區塊,讓它作為區塊鏈的一部分。當兩個區塊在很短的時間間隔內被挖出來,節點有可能會以相反的順序接收到它們,這個時候孤塊現象就會出現。
選擇了最大難度的區塊鏈後,所有的節點最終在全網范圍內達成共識。隨著更多的工作量證明被添加到鏈中,鏈的暫時性差異最終會得到解決。挖礦節點通過「投票」來選擇它們想要延長的區塊鏈,當它們挖出一個新塊並且延長了一個鏈,新塊本身就代表它們的投票。
因為區塊鏈是去中心化的數據結構,所以不同副本之間不能總是保持一致。區塊有可能在不同時間到達不同節點,導致節點有不同的區塊鏈視角。解決的辦法是, 每一個節點總是選擇並嘗試延長代表累計了最大工作量證明的區塊鏈,也就是最長的或最大累計難度的鏈。
當有兩個候選區塊同時想要延長最長區塊鏈時,分叉事件就會發生。正常情況下,分叉發生在兩名礦工在較短的時間內,各自都算得了工作量證明解的時候。兩個礦工在各自的候選區塊一發現解,便立即傳播自己的「獲勝」區塊到網路中,先是傳播給鄰近的節點而後傳播到整個網路。每個收到有效區塊的節點都會將其並入並延長區塊鏈。如果該節點在隨後又收到了另一個候選區塊,而這個區塊又擁有同樣父區塊,那麼節點會將這個區塊連接到候選鏈上。其結果是,一些節點收到了一個候選區塊,而另一些節點收到了另一個候選區塊,這時兩個不同版本的區塊鏈就出現了。
分叉之前
分叉開始
我們看到兩個礦工幾乎同時挖到了兩個不同的區塊。為了便於跟蹤這個分叉事件,我們設定有一個被標記為紅色的、來自加拿大的區塊,還有一個被標記為綠色的、來自澳大利亞的區塊。
假設有這樣一種情況,一個在加拿大的礦工發現了「紅色」區塊的工作量證明解,在「藍色」的父區塊上延長了塊鏈。幾乎同一時刻,一個澳大利亞的礦工找到了「綠色」區塊的解,也延長了「藍色」區塊。那麼現在我們就有了兩個區塊:一個是源於加拿大的「紅色」區塊;另一個是源於澳大利亞的「綠色」。這兩個區塊都是有效的,均包含有效的工作量證明解並延長同一個父區塊。這個兩個區塊可能包含了幾乎相同的交易,只是在交易的排序上有些許不同。
比特幣網路中鄰近(網路拓撲上的鄰近,而非地理上的)加拿大的節點會首先收到「紅色」區塊,並建立一個最大累計難度的區塊,「紅色」區塊為這個鏈的最後一個區塊(藍色-紅色),同時忽略晚一些到達的「綠色」區塊。相比之下,離澳大利亞更近的節點會判定「綠色」區塊勝出,並以它為最後一個區塊來延長區塊鏈(藍色-綠色),忽略晚幾秒到達的「紅色」區塊。那些首先收到「紅色」區塊的節點,會即刻以這個區塊為父區塊來產生新的候選區塊,並嘗試尋找這個候選區塊的工作量證明解。同樣地,接受「綠色」區塊的節點會以這個區塊為鏈的頂點開始生成新塊,延長這個鏈。
分叉問題幾乎總是在一個區塊內就被解決了。網路中的一部分算力專注於「紅色」區塊為父區塊,在其之上建立新的區塊;另一部分算力則專注在「綠色」區塊上。即便算力在這兩個陣營中平均分配,也總有一個陣營搶在另一個陣營前發現工作量證明解並將其傳播出去。在這個例子中我們可以打個比方,假如工作在「綠色」區塊上的礦工找到了一個「粉色」區塊延長了區塊鏈(藍色-綠色-粉色),他們會立刻傳播這個新區塊,整個網路會都會認為這個區塊是有效的,如上圖所示。
所有在上一輪選擇「綠色」區塊為勝出者的節點會直接將這條鏈延長一個區塊。然而,那些選擇「紅色」區塊為勝出者的節點現在會看到兩個鏈: 「藍色-綠色-粉色」和「藍色-紅色」。 如上圖所示,這些節點會根據結果將 「藍色-綠色-粉色」 這條鏈設置為主鏈,將 「藍色-紅色」 這條鏈設置為備用鏈。 這些節點接納了新的更長的鏈,被迫改變了原有對區塊鏈的觀點,這就叫做鏈的重新共識 。因為「紅」區塊做為父區塊已經不在最長鏈上,導致了他們的候選區塊已經成為了「孤塊」,所以現在任何原本想要在「藍色-紅色」鏈上延長區塊鏈的礦工都會停下來。全網將 「藍色-綠色-粉色」 這條鏈識別為主鏈,「粉色」區塊為這條鏈的最後一個區塊。全部礦工立刻將他們產生的候選區塊的父區塊切換為「粉色」,來延長「藍色-綠色-粉色」這條鏈。
從理論上來說,兩個區塊的分叉是有可能的,這種情況發生在因先前分叉而相互對立起來的礦工,又幾乎同時發現了兩個不同區塊的解。然而,這種情況發生的幾率是很低的。單區塊分叉每周都會發生,而雙塊分叉則非常罕見。
比特幣將區塊間隔設計為10分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易清算更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,更長的間隔會減少分叉數量,卻會導致更長的清算時間。