轉自: https://zhuanlan.hu.com/p/23558268
getblocktemplate協議誕生於2012年中葉,此時礦池已經出現。礦池採用getblocktemplate協議與節點客戶端交互,採用stratum協議與礦工交互,這是最典型的礦池搭建模式。
與getwork相比,getblocktemplate協議最大的不同點是:getblocktemplate協議讓礦工自行構造區塊。如此一來,節點和挖礦完全分離。對於getwork來說,區塊鏈是黑暗的,getwork對區塊鏈一無所知,他只知道修改data欄位的4個位元組。對於getblocktemplate來說,整個區塊鏈是透明的,getblocktemplate掌握區塊鏈上與挖礦有關的所有信息,包括待確認交易池,getblocktemplate可以自己選擇包含進區塊的交易。
挖礦有兩種方式,一種叫SOLO挖礦,另一種是去礦池挖礦。前文所述的在節點客戶端直接啟動CPU挖礦,以及依靠getwork+cgminer驅動顯卡直接連接節點客戶端挖礦,都是SOLO挖礦,SOLO好比自己獨資買彩票,不輕易中獎,中獎則收益全部歸自己所有。去礦池挖礦好比合買彩票,大家一起出錢,能買一堆彩票,中獎後按出資比率分配收益。理論上,礦機可以藉助getblocktemplate協議鏈接節點客戶端SOLO挖礦,但其實早已沒有礦工會那麼做,在寫這篇文章時,比特幣全網算力1600P+,而當前最先進的礦機算力10T左右,如此算來,單台礦機SOLO挖到一個塊的概率不到16萬分之一,礦工(人)投入真金白銀購買礦機、交付電費,不會做風險那麼高的投資,顯然投入礦池抱團挖礦以降低風險,獲得穩定收益更加適合。因此礦池的出現是必然,也不可消除,無論是否破壞系統的去中心化原則。
礦池的核心工作是給礦工分配任務,統計工作量並分發收益。礦池將區塊難度分成很多難度更小的任務下發給礦工計算,礦工完成一個任務後將工作量提交給礦池,叫提交一個share。假如全網區塊難度要求Hash運算結果的前70個比特位都是0,那麼礦池給礦工分配的任務可能只要求前30位是0(根據礦工算力調節),礦工完成指定難度任務後上交share,礦池再檢測在滿足前30位為0的基礎上,看看是否碰巧前70位都是0。
礦池會根據每個礦工的算力情況分配不同難度的任務,礦池是如何判斷礦工算力大小以分配合適的任務難度呢?調節思路和比特幣區塊難度一樣,礦池需要藉助礦工的share率,礦池希望給每個礦工分配的任務都足夠讓礦工運算一定時間,比如說1秒,如果礦工在一秒之內完成了幾次任務,說明礦池當前給到的難度低了,需要調高,反之。如此下來,經過一段時間調節,礦池能給礦工分配合理難度,並計算出礦工的算力。
礦池通過getblocktemplate協議與網路節點交互,以獲得區塊鏈的最新信息,通過stratum協議與礦工交互。此外,為了讓之前用getwork協議挖礦的軟體也可以連接到礦池挖礦,礦池一般也支持getwork協議,通過階層挖礦代理機制實現(Stratum mining proxy)。須知在礦池剛出現時,顯卡挖礦還是主力,getwork用起來非常方便,另外早期的FPGA礦機有些是用getwork實現的,stratum與礦池採用TCP方式通信,數據使用JSON封裝格式。
先來說一下getblocktemplate遺留下來的幾個問題:
礦工驅動:在getblocktemplate協議里,依然是由礦工主動通過HTTP方式調用RPC介面向節點申請挖礦數據,這就意味著,網路最新區塊的變動無法及時告知礦工,造成算力損失。
數據負載:如上所述,如今正常的一次getblocktemplate調用節點都會反饋回1.5M左右的數據,其中主要數據是交易列表,礦工與礦池需頻繁交互數據,顯然不能每次分配工作都要給礦工附帶那麼多信息。再者巨大的內存需求將大大影響礦機性能,增加成本。
Stratum協議徹底解決了以上問題。
Stratum協議採用主動分配任務的方式,也就是說,礦池任何時候都可以給礦工指派新任務,對於礦工來說,如果收到礦池指派的新任務,應立即無條件轉向新任務;礦工也可以主動跟礦池申請新任務。
現在最核心的問題是如何讓礦工獲得更大的搜索空間,如果參照getwork協議,僅僅給礦工可以改變nNonce和nTime欄位,則交互的數據量很少,但這點搜索空間肯定是不夠的。想增加搜索空間,只能在hashMerkleroot下功夫,如果讓礦工自己構造coinbase,那麼搜索空間的問題將迎刃而解,但代價是必要要把區塊包含的所有交易都交給礦工,礦工才能構造交易列表的Merkleroot,這對於礦工來說壓力更大,對於礦池帶寬要求也更高。
Stratum協議巧妙解決了這個問題,成功實現既可以給礦工增加足夠的搜索空間,又只需要交互很少的數據量,這也是Stratum協議最具創新的地方。
再來回顧一下區塊頭的6個欄位80位元組,這個很關鍵,nVersion,nBits,hashPrevBlock這3個欄位是固定的,nNonce,nTime這兩個欄位是礦工現在就可以改變的。增加搜索空間只能從hashMerkleroot下手,這個繞不過去。Stratum協議讓礦工自己構造coinbase交易,coinbase的scriptSig欄位有很多位元組可以讓礦工自由填充,而coinbase的改動意味著hashMerkleroot的改變。從coinbase構造hashMerkleroot無需全部交易,
如上圖所示,假如區塊將包含13筆交易,礦池先對這13筆交易進行處理,最後只要把圖中的4個黑點(Hash值)交付給礦工,同時將構造coinbase需要的信息交付給礦工,礦工就可以自己構造hashMerkleroot(圖中的綠點都是礦工自行計算獲得,兩兩合並Hash時,規定下一個黑點代表的hash值總是放在右邊)
。按照這種方式,假如區塊包含N筆交易,礦池可以濃縮成log2(N)個hash值交付給礦工,這大大降低了礦池和礦工交互的數據量。
Stratum協議嚴格規定了礦工和礦池交互的介面數據結構和交互邏輯,具體如下:
1. 礦工訂閱任務
啟動挖礦機器,使用mining.subscribe方法鏈接礦池
返回數據很重要,礦工需本地記錄,在整個挖礦過程中都用到,其中:
Extranonce1,和 Extranonce2對於挖礦很重要,增加的搜索空間就在這里,現在,我們至少有了8個位元組的搜索空間,即nNonce的4個位元組,以及 Extranonce2的4個位元組。
2. 礦池授權
在礦池注冊一個賬號 ,添加礦工,礦池允許每個賬號任意添加礦工數,並取不同名字以區分。礦工使用mining.authorize方法申請授權,只有被礦池授權的礦工才能收到礦池指派任務。
3. 礦池分配任務
以上每個欄位信息都是必不可少,其中:
有了以上信息,再加上之前拿到的Extranonce1 和Extranonce2_size,就可以挖礦了。
4. 挖礦
1) 構造coinbase交易
用到的信息包括Coinb1, Extranonce1, Extranonce2_size 以及Coinb2,構造很簡單:
為啥可以這樣,因為礦池幫礦工做了很多工作,礦池已經構建了coinbase交易,系列化後在指定位置分割成coinb1和coinb2,coinb1和coinb2包含指定信息,比如coinb1包含區塊高度,coinb2包含了礦工的收益地址和收益額等信息,但是這些信息對於礦工來說無關緊要,礦工挖礦的地方只是Extranonce2 的4個位元組。另外Extranonce1是礦池寫入區塊的指定信息,一般來說,每個礦池會寫入自己礦池的信息,比如礦池名字或者域名,我們就是根據這個信息統計每個礦池在全網的算力比重。
2) 構建Merkleroot
利用coinbase和merkle_branch,按照上圖方式構造hashMerkleroot欄位。
3) 構建區塊頭
填充餘下的5個欄位,現在,礦池可以在nNonce和Extranonce2 里搜索進行挖礦,如果嫌搜索空間還不夠,只要增加Extranonce2_size為多幾個位元組就可輕而易舉解決。
5. 礦工提交工作量
當礦工找到一個符合難度的shares時,提交給礦池,提交的信息量很少,都是必不可少的欄位:
礦池拿到以上5個欄位後,首先根據任務號ID找出之前分配任務前存儲的信息(主要是構建的coinbase交易以及包含的交易列表等),然後重構區塊,再驗證shares難度,對於符合難度要求的shares,再檢測是否符合全網難度。
6. 礦池給礦工調節難度
礦池記錄每個礦工的難度,並根據shares率不斷調節以指定合適難度。礦池可以隨時通過mining.set_difficulty方法給礦工發消息另其改變難度。
如上,Stratum協議核心理念基本解析清楚,在getblocktemplate協議和Stratum協議的配合下,礦池終於可以大聲的對礦工說,讓算力來的更猛烈些吧。
② 浠ュお鍧31%綆楀姏瑙f暎錛丒thermine涓嶆敮鎸丳OW鍒嗗弶 灝嗗叧闂璄TH鐭挎睜
浠ュお鍧婃渶澶х熆奼爀thermine(Bitfly)浠(19)鏃ュ彂鍑哄叕鍛婏紝瀹e竷灝嗙粨鏉熶互澶鍧奝oW鎸栫熆鐭挎睜涓氬姟錛屽皢浜庝互澶鍧婂師瀹9鏈15鏃ュ悗鍏抽棴浠ュお鍧婄熆奼狅紝灞婃椂灝嗘棤娉曚嬌鐢℅PU涓嶢SIC鏈哄櫒鍦ㄧ熆奼犱笂鎸栨帢浠ュお鍧娿俥thermine鍦ㄥ叕鍛婁腑鎻愰啋鐭垮伐浣跨敤鑰咃紝鍦ㄥ悎騫跺悗灝嗘棤娉曞湪浠ュお鍧婃湇鍔″櫒涓婅繘琛屾寲鐭匡紝鑰屼笖琛ㄦ槑涓嶄細鏀鎸佷換浣昉oW閾懼垎鍙夛紝絳夊悓鏀鎸佷互澶鍧婅漿鍚慞oS鐨勫喅瀹氾細涓鏃﹀伐浣滈噺璇佹槑閲囩熆闃舵電粨鏉燂紝Ethermine浠ュお鍧婇噰鐭挎睜灝嗗垏鎹㈠埌浠呮彁嬈炬ā寮忋傜熆宸ヤ華琛ㄦ澘涓婂皢鎻愪緵鍑嗙『鐨勫掓暟璁℃椂鍣錛屾偍鍙浠ョ戶緇寮閲囦互澶甯侊紝鐩村埌鍊掓暟褰掗浂鈥︹︾粡榪囦粩緇嗚瘎浼幫紝bitfly鍐沖畾涓嶄負浠諱綍璁″垝涓鐨凱oW鍒嗗弶鎻愪緵涓撶敤鐭挎睜銆
鉶界劧琛ㄦ槑鏀鎸佷互澶鍧婅漿鍚慞oS錛屼絾ethermine鍚屾椂涔熷湪鍏鍛婅〃鏄庯紝鎺ㄨ崘浠ュお鍧婄熆宸ュ彲浠ラ夋嫨ethermine鎵鎻愪緵鐨勪互涓婸oW鍏朵粬鐭挎睜錛屽苟琛ㄦ槑鍦9鏈堝簳鍓嶅皢鎻愪緵0%鎸栫熆鎵嬬畫璐逛紭鎯狅紝浠ュ惛寮曟棫鏈変互澶鍧婄熆宸ヨ繃搴﹁嚦鏂版椂浠o細
鎸栨帢浠ュお鍧婄粡鍏(ETC)錛宔tc.ethermine.org
鎸栨帢Ravencoin(RVN)錛宺avencoin.flypool.org
鎸栨帢Ergo(ERGO)錛宔rgo.flypool.org
鎸栨帢(BEAM)錛宐eam.flypool.org
Ethermine鍏鍛
浠ュお鍧30.83%綆楀姏鍘熷湴瑙f暎
鑷鎴紼挎椂闂翠負姝錛屾嵁ethermine鑷瀹剁殑緇熻$郴緇熸樉紺猴紝褰撳墠ethermine鍥涗釜鐭挎睜鏈嶅姟鑺傜偣鎬葷畻鍔涚害涓261.402Th/s錛岀浉杈冧簬鐢2miners璁$畻鐨勫鉤鍧囧叏緗戞葷畻鍔涚害涓859.9Th/s錛宔thermine鎵鍗犲叏緗戠畻鍔涚害涓30.83%銆
涓嶅儚鍏朵粬閮ㄥ垎鐭挎睜濡侳2pool鍑嗗囨帹鍑篜oW絳夊垎鍙夌熆奼狅紝ethermine閫夋嫨鍏ㄩ潰鏀鎸丳oS涓嶆敮鎸丳oW鍒嗗弶鐨勫喅瀹氾紝涔熸敞瀹氫互澶鍧婂綋鍓嶆渶澶х殑PoW綆楀姏灝嗕細闈涓村法澶ч告暎錛屼嬌寰桺oW鍒嗗弶閾句笌V紲炴敮鎸佺殑ETC涔嬮棿鐨勭畻鍔涗簤澶烘垬灝嗗彉寰楁洿鍔犳墤鏈旇糠紱匯
宸︿負ethermine綆楀姏鏁版嵁/鍙充負2miners璁$畻涔嬪鉤鍧囧叏緗戠畻鍔
③ 鎬庝箞鏍鋒惌寤簔ec鐭
鎬庝箞鎼寤簔ec鐭挎睜
ZEC錛圸cash錛夋槸涓縐嶅姞瀵嗚揣甯侊紝濡傛灉浣犳兂鎼寤篫EC鐭挎睜錛屼綘闇瑕侀伒寰浠ヤ笅姝ラわ細
1.紜瀹氭寲鐭胯蔣浠跺拰鐭挎睜杞浠訛細鍦ㄦ惌寤虹熆奼犱箣鍓嶏紝浣犻渶瑕侀夋嫨涓嬈炬寲鐭胯蔣浠跺拰鐭挎睜杞浠躲傜洰鍓嶅競闈涓婃湁璁稿氬彲渚涢夋嫨鐨勫紑婧愯蔣浠訛紝濡侰laymoreZcashMiner銆丒WBFsCUDAZcashMiner絳夈傚彟澶栵紝浣犻渶瑕侀夋嫨涓縐嶆敮鎸乑EC鐨勭熆奼犺蔣浠訛紝渚嬪侰oiniumServ銆丯OMP絳夈
2.瀹夎呭拰閰嶇疆鎸栫熆杞浠訛細鍦ㄥ畨瑁呮寲鐭胯蔣浠朵箣鍓嶏紝浣犻渶瑕佺『淇濅綘鐨勮$畻鏈烘弧瓚寵蔣浠剁殑瑕佹眰錛屼緥濡傛樉鍗″瀷鍙楓佸唴瀛樸佹搷浣滅郴緇熺瓑銆傜劧鍚庯紝浣犻渶瑕佹寜鐓ц蔣浠舵彁渚涚殑鎸囧兼潵瀹夎呭拰閰嶇疆鎸栫熆杞浠躲
3.瀹夎呭拰閰嶇疆鐭挎睜杞浠訛細鍦ㄥ畨瑁呯熆奼犺蔣浠朵箣鍓嶏紝浣犻渶瑕佺『淇濅綘鐨勮$畻鏈烘弧瓚寵蔣浠剁殑瑕佹眰錛屼緥濡傛暟鎹搴撱乄eb鏈嶅姟鍣ㄧ瓑銆傜劧鍚庯紝浣犻渶瑕佹寜鐓ц蔣浠舵彁渚涚殑鎸囧兼潵瀹夎呭拰閰嶇疆鐭挎睜杞浠躲
4.閰嶇疆鐭垮伐榪炴帴鐭挎睜錛氫竴鏃︿綘鎴愬姛鍦板畨瑁呭拰閰嶇疆浜嗘寲鐭胯蔣浠跺拰鐭挎睜杞浠訛紝浣犻渶瑕佷負鐭垮伐閰嶇疆榪炴帴鐭挎睜鐨勪俊鎮錛屽傜熆奼犵殑IP鍦板潃銆佺鍙e彿銆佺熆宸ョ殑鐢ㄦ埛鍚嶅拰瀵嗙爜絳夈
5.鍚鍔ㄧ熆奼狅細鏈鍚庯紝浣犻渶瑕佸惎鍔ㄧ熆奼犲苟鐩戞帶鍏惰繍琛岀姸鍐碉紝浠ョ『淇濈熆奼犳e父榪愯岋紝鐭垮伐鑳藉熻繛鎺ュ埌鐭挎睜騫惰幏寰楁敹鐩娿
闇瑕佹敞鎰忕殑鏄錛屽湪鎼寤篫EC鐭挎睜涔嬪墠錛屼綘闇瑕佷簡瑙g浉鍏崇殑娉曞緥娉曡勫拰椋庨櫓鎻愮ず錛屼互紜淇濅綘鐨勬搷浣滃悎娉曞悎瑙勫苟鍏鋒湁涓瀹氱殑椋庨櫓鎰忚瘑銆傚悓鏃訛紝浣犺繕闇瑕佸︿範涓浜涘熀鏈鐨勭綉緇滃拰鏈嶅姟鍣ㄧ煡璇嗭紝浠ヤ究鏇村ソ鍦扮悊瑙e拰瑙e喅鍙鑳藉嚭鐜扮殑闂棰樸
④ 什麼是POW和POS,二者區別聯系
POW:全稱Proof of Work,工作量證明。
POS:全稱Proof of Stake,權益證明。
這兩者都區塊鏈的共識機制,是數字貨幣的記賬方法。
區別是:
1、POW機制:工作量證明機制即對於工作量的證明,是生成要加入到區塊鏈中的一筆新的交易信息(即新區塊)時必須滿足的要求。在基於工作量證明機制構建的區塊鏈網路中,節點通過計算隨機哈希散列的數值解爭奪記賬權,求得正確的數值解以生成區塊的能力是節點算力的具體表現。
2、POS機制:權益證明要求證明人提供一定數量加密貨幣的所有權即可。權益證明機制的運作方式是,當創造一個新區塊時,礦工需要創建一個「幣權」交易,交易會按照預先設定的比例把一些幣發送給礦工本身。權益證明機制根據每個節點擁有代幣的比例和時間,依據演算法等比例地降低節點的挖礦難度,從而加快了尋找隨機數的速度。
(4)pow礦池搭建擴展閱讀:
比特幣(BitCoin)的概念最初由中本聰在2009年提出,根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。
與大多數貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。P2P的去中心化特性與演算法本身可以確保無法通過大量製造比特幣來人為操控幣值。
⑤ 什麼是礦池 礦場
比特幣也是「挖」出來的,只不過它是由計算機我們一般稱之為「礦機」)在虛擬網路世界中開采出來的。所以,要挖幣,同樣需要選擇一片合適的區域,搭建起廠房,把成百上千台礦機連接起來一起挖礦,這就是礦場。
一個礦場的成本包括建設成本、設備成本、維護成本、網路成本等。其中維護成本包括電力成本和人力成本,這也是我們會把礦場選建在電費相對比較便宜的地方的原因。一台比特幣礦機的回本周期,和政策、技術、幣價、算力、維護狀況等多種因素有關,一般需要200-300天回本。但隨著市場波動,回本周期也會變化。
說完礦場,我們來說說礦池。由於現在挖礦的人越來越多,加入的礦機和礦場也起來越多、總算力越來越大。這種情況下,單個礦機挖到比特幣的概率越來越小。於是,人們想出了個辦法、既然礦機單槍匹馬不行,那我們把礦機聯合起來去和全球其他礦機競爭——這種礦機算力的集合就是所謂的礦池。這樣就能大大增加挖到礦的概率,挖到比特幣後,再根據每台礦機對總算力的貢獻,給予其相應的獎勵。
礦池的概念比礦場抽象。礦池可以是若干礦機的集合,也可以是若干礦場中礦機算力的集合。比如談到現實中一個在中國的礦池,接入這個礦池的礦機既有中國礦機,也有來自國外的礦機,不分區域、大家按勞分配。
⑥ 細數幾種挖礦模式,哪種更適合新手
曾幾何時,挖礦還僅僅只是極客和部分區塊鏈技術開發人員之間的娛樂。但隨著資本的湧入,加密貨幣世界越來越多的涉足金融世界,交易所Binance(幣安)宣布其收入遠超德意志銀行(Deutsche Bank),采礦巨頭 Bitmain(比特大陸)也即將上市,不管我們喜不喜歡,采礦作為新興行業迅猛發展已成事實。
無數礦工的湧入,極大的推高了數字貨幣的全網算力,單打獨斗的solo挖礦由於POW(Proof of Work,工作量證明機制)而受限於礦機性能,往往無法與大礦工進行競爭(獨立建立礦場的大佬除外)。取而代之的,是無數礦工抱團取暖,貢獻算力,然後挖到幣之後大家按算力貢獻大小分,也就是所謂的礦池。
目前市場上的礦池很多,各自選用的模式也有所不同,為了方便新手選擇,接下來我們就細數幾種模式的區別,然後審查它們的弱點和好處,以便理解。
Pay Per Last N Shares模式就是" 根據過去的N個股份來支付收益 "。主流礦池一般採用PPLNS模式,這個也是最原始的挖礦模式,大家一起組隊挖礦,挖了礦、出了塊,扣除礦池的手續費後,剩下的 按貢獻的算力分配 。
在PPLNS模式下,運氣成佔比很大。不管是什麼幣種,出塊都是一個概率問題,運氣好的時候運算一會兒就出塊了。運氣不好的時候半天都出不了一個。也有可能今天出5個,明天就出3個,礦池一天內發現區塊的多與少,會直接影響到礦工的分紅。
長遠來看收益差不多,短期就有太多不確定因素。但是這種模式的 手續費相對較低 ,適合穩定在一個礦池的礦工,隨意切換會降低收益,因為收益想穩定就得把時間軸拉長。
優點:收益全分配,運氣好時會獲得更多收益
缺點:收益沒保證,收益時高時低,完全看運氣
PPLNS時而收益高,時而沒有收益,極不穩定,為了解決這一問題,Pay Per Share運用了新的分配方案。新方案是礦池根據你的算力提前推算出你的在一個周期內能夠獲得多少幣,直接將對應算力的幣支付給你,這樣礦工收益就固定了,完全不用承擔風險。相當於將算力賣給礦池,礦池自己負責盈虧。即使一天沒有出塊也沒事,照樣有收益。但是如果有一天收益高了,那麼這時候礦池就賺了。
事實上,PPS模式的礦池為了避免虧本風險,往往會 收取更高額手續費 。相對的,PPS收益盡管低了點,但每天比較穩定,不容受到挫折,礦工也不用擔心切換礦池而損害收益。
優點:收益固定,可以隨意切換礦池
缺點:手續費比較高,沒有高收益獎勵
再有就是PPS+模式,結合了PPS和PPLNS模式的優點。這種模式是 將收益拆分為固定塊收益和交易手續費 。爆塊的獎勵是固定的,提前按pps的方式計算,給你按理論收益再扣除礦池費率,給礦工結算,能保證收益的固定。交易費用按PPLNS計算,在轉賬高手續費,以及礦池幸運值高的時候爆塊多的時候,會明顯提高礦工的收益。
優點:收益可觀,適合所有礦工
缺點:高收益依賴於高轉賬手續費和礦池幸運值
當然,除了上述這些,還有一些其他的小眾模式,相對比較少見,這里就不做贅述。
總的來說,3種模式都各有優劣,出塊數量和穩定性、身處礦池的周期、礦池的費率等都會對最終收益造成影響,對於新手來說,最好可以根據自己的情況進行分析,這樣才能找到真正適合自己的挖礦模式。
⑦ 區塊鏈是怎麼挖礦賺錢的
挖礦賺錢的原理:PoW和挖礦。
最開始比特幣可以用顯卡挖出,但在 13 年時,已經無法用顯卡通用計算程序挖出比特幣 BTC,比特幣現在全部都是用 ASIC 礦機進行"挖礦"。
類似地,14 年萊特幣 ASIC 礦機上市也終結了顯卡挖萊特幣的挖礦歷史。目前顯卡能夠"挖礦"的數字貨幣是以太坊 ETH、以太經典 ETC、Zcash 零幣 ZEC。
顯卡"挖礦"並不是一本萬利的生意,事實上起步越早,收益越高,而且收益會隨著更多的礦工和顯卡的加入遞減。
直白說,現在買高價的顯卡入場"挖礦"絕對是虧死你,購置專業礦機才是更高性價比的選擇。如今個人挖礦的必備工具是礦池,礦池的作用是集合大量礦機算力,增大你挖到幣的幾率,同時你未來能挖到的幣提前平均分配到你的賬戶里。
以比特幣為例,假如現在比特幣全網每 10 分鍾產生一個區塊,這個區塊包含 25 個比特幣。假設全球有 1W 人參與挖礦,那麼在這 10 分鍾內,只有 1 個幸運兒拿走了這 25 個比特幣。
其它人則顆粒無收。而礦池的原理是大家組隊挖礦,並按約定的分配方式分配,使得礦工的挖幣回報趨於穩定,減少礦工的風險。
為增強性價比,還可選購一些類似玩客雲這樣的實用礦機,既能當普通硬體產品使用,也能挖礦,一舉兩得。
(7)pow礦池搭建擴展閱讀
塊鏈交易和數字貨幣的運作核心有幾個:
去中心化資料庫連成的交易網路——稱為區塊鏈,大家所有的客戶端(包括礦機)一起記賬,確認轉賬交易;按時間發行一定量的數字貨幣。
因為贏家通吃,導致中小散戶礦工要聯合起來組成"礦池",以 Shares 記錄累積工作量,聯合算力越高,礦池聯合體先找到數字貨幣的概率就越大,增大找到新發數字貨幣的概率,瓜分挖到的數字貨幣。這就叫 PoW 工作量證明機制。
⑧ 區塊鏈共識機制之一:POW工作量證明機制
區塊鏈可以理解為一個不可篡改的公共賬本,所有參與者都能驗證交易並進行記賬,即為分布式賬本。那到底由誰來記賬?又如何保證賬本的一致性、准確性呢?也就是區塊鏈的共識機制是如何的?
區塊鏈的共識機制就是解決由誰來記賬(構造區塊),以及如何維護區塊鏈的一致性問題。目前區塊鏈項目採用的共識機制有多種,如:POW工作量證明機制,POS權益證明機制,DPOS股份授權證明機制等等。本文說明POW工作量證明機制。
區塊鏈的第一個成功應用比特幣系統採用的POW工作量證明機制。即以比特幣系統為例說明POW機制,首先比特幣系統有一套激勵機制讓所有參與者競爭記賬的權利,即誰擁有記賬權誰將獲取構造新區塊的比特幣獎勵(目前獎勵為12.5比特幣),同時獲取新區塊內所有交易的手續費作為獎勵。
參與者如何競爭記賬權利呢?參與者通過自己的算力計算一道數學難題,誰先計算的結果,誰就擁有了記賬的權利,也就可獲得構造新區塊的獎勵。這道數學難題就是尋找一個隨機數Nonce,使得對區塊頭的哈希計算的結果小於目標值,Nonce本身是區塊頭中的一個欄位,所以通過不斷的嘗試Nonce的值,以滿足區塊頭的哈希計算結果小於目標值。通過動態調整目標值,即可調整計算的Nonce值的難度。
關於哈希計算Nonce的過程通常類比為擲篩子游戲,基於參與游戲的篩子的個數通過調整擲得篩子的點數可調整游戲的難度。例如:100個人參與擲篩子,總共有100個篩子,要求擲得點數為100為贏,則100個人誰先擲得點數100即為勝利者,即擁有了記賬權。如果發現大家擲出100點的時間太快,則可增加難度,要求擲得點數為80為贏。如果又有100個人參與游戲,則游戲中增加了篩子數,如:篩子數增加為200個,同樣通過設置擲得點數來調整游戲的難度。
篩子類似於比特幣網路的算力,擲得點數類似於比特幣網路可動態調整的目標值。
區塊鏈以最長的鏈條視為正確的鏈條,如果存在同時出現兩個區塊,會暫時並行記錄兩個區塊,後續再生成的區塊基於其中的某一個區塊,將會形成的最長的鏈條作為一致性的鏈條,另外一個區塊將會被丟棄,比特幣是基於6個區塊的確認,所以被丟棄的區塊將不會獲得比特幣系統的獎勵,也就是白白將競爭記賬權的算力(電費)浪費了。基於工作量的激勵,參與者必然盡最大能力構造正確的區塊,也就是滿足區塊鏈的一致性。即全網的所有用戶可以達成唯一的一致性的公共賬本。
目前比特幣系統全網算力已達到驚人的24.75EH/s,其中1E=1000P,1P=1000T,1T=1000G,1G=1000M,1M=1000K,1K=1000,H/s為每秒一次哈希計算(哈希碰撞),也就是每秒進行24.75E次哈希計算,且仍有持續的算力加入比特幣系統。比特幣記賬權的競爭,提供算力的硬體從CPU,GPU,專業礦機,礦池。目前單機版的專業礦機已無法競爭到記賬權,必須由多台礦機組合為礦池才能競爭到記賬權。