科普:比特幣挖礦的過程
比特幣挖礦科普專輯到這裡就要收尾了,經過前兩篇文章鋪墊,相信讀者朋友已經對和和區塊產生一級標題
一級標題
礦工破解挖礦任務
挖礦節點創建好預備區塊後,將預備區塊的區塊頭數據發送給礦工。礦工收到挖礦任務後,會遞增區塊頭中的隨機數SHA256算法SHA256算法計算區塊頭的哈希值。如果區塊頭的哈希值大於一級標題一級標題
挖礦節點驗證區塊,延長本地區塊鏈
當礦工找到可以使預備區塊頭哈希值小於目標哈希的隨機數時,會立即向挖礦節點上報挖礦結果。挖礦節點接收到信息後,立刻按照礦工上報信息重組區塊,並驗證區塊。驗證無誤後,挖礦節點將新區塊保存到節點本地數據庫,並添加到節點本地區塊鏈上。
區塊的驗證信息包括:
區塊頭是否合法(區塊頭哈希≤TargetHash);
區塊頭的MerkleRoot哈希跟區塊中交易數據的MerkleRoot哈希是否一致(驗證交易是否被篡改);
一級標題
一級標題
二級標題
一級標題
二級標題
集群挖礦-礦池:
比特幣挖礦這件事情,理論上任何人都可以自建比特幣挖礦節點,參與挖礦,甚至可以通過手工驗證區塊頭哈希,破解挖礦任務,競爭記賬權。
二級標題
二級標題
礦機實際收到的挖礦任務中,TargetHash遠大於比特幣網絡要求的TargetHash:
礦池和礦工一起挖礦的流程,一樣遵循上述過程。礦機通過網絡跟礦池通訊,請求挖礦任務,礦池將挖礦任務(包含區塊頭等數據)發送給礦機,礦機變更區塊頭的隨機數,並驗證區塊哈希。符合挖礦任務TargetHash要求的隨機數,將按照挖礦協議的格式提交給礦池,礦池給礦機提交的挖礦結果計算收益。
二級標題
二級標題
礦池算力不同於礦機本地算力:
談及挖礦,總有一個繞不開的名詞:算力。到底什麼是算力呢?
算力,其實就是礦工驗證區塊頭哈希值的速度。礦機在獲得挖礦任務後,會按照挖礦任務的信息,遞增區塊頭的隨機數,隨機數每調整一次,就驗證一次區塊頭的哈希值。可以看到,限制礦機挖礦快慢的唯一一個因素就是它驗證區塊頭哈希值的快慢,因此有了“算力”這個指標。
目前,常規比特幣礦機的算力單位是TH/s,它的意思,每秒鐘可以驗證1T次哈希,1T=1×103G=1×106M=1×109K=1×1012次。
有過挖礦經歷的朋友,都會發現,礦機本地顯示的算力跟礦池顯示的算力總是有差異。這是因為,礦機本地顯示的算力,是礦機驗證哈希的速度,它只跟礦機的性能有關,不管有沒有找到符合挖礦任務要求的隨機數,礦機本地算力都一直存在。而礦機在礦池顯示的算力則不同,它是礦池按照礦機實際提交的挖礦結果計算出來的,如果礦機的運氣較差,在較長時間內都沒有找到符合挖礦任務要求的隨機數,無法向礦池提交挖礦結果,礦機在礦池的算力就會降低。
但時間拉長後,運氣對礦機破解挖礦任務的影響會降低,礦機較長時間的礦池平均算力,跟礦機本地算力相差不大。
以上是比特幣挖礦的基礎知識,如果能讀懂這三篇文章,相信讀者朋友對比特幣挖礦會有一個初步的認識。如果想要跟博主交流探討更多挖礦方面的問題,歡迎關注“閒話挖礦”微信公眾號,同時也能更及時的了解博主更新的挖礦知識。
文中涉及的幾個知識點:
區塊高度:又叫Block Height,相當於區塊的編號,它的值等於區塊鏈中這個區塊之前所有區塊的數量。區塊鏈的第一個區塊是創世區塊,區塊高度為0,第二個區塊的區塊高度為1,第三個區塊的區塊高度為2,以此類推。區塊鏈中區塊的總數,即為最新區塊的區塊高度+1。
PoW:全稱為Proof of Work,中文名稱為工作量證明。是比特幣網絡使用的一種用於解決比特幣新區塊確權問題的方法。在比特幣網絡中,人人都可以參與新區塊的創建工作,PoW機制規定,誰能夠在最短時間內找到一個區塊頭哈希值小於比特幣網絡指定的TargetHash的預備新區塊,誰就擁有正式新區塊的記賬權。
參考資料:參考資料:
參考資料:
挖礦的實現
Block Height
工作量證明


