Mining-Hardware
當隨機數只有 2^32 大小時,如何以每秒數十億或數万億次雜湊的速度探勘比特幣?
根據 Bitcoin Stack Exchange 上的另一個類似問題,<https://en.bitcoin.it/wiki/Block_hashing_algorithm>顯示了探勘算法如何適用於比特幣。問題是,它顯示隨機數不大於 2^32。當某人檢查了 nonce 可以具有的所有值時,似乎時間會發生變化,並且重新開始搜尋合適的 nonce,因為即使將第二個更改為 1 也足以保證在散列算法中再次測試 nonce。
由於它與實際的探勘算法/軟體有關,考慮到這一切,當每秒只提供約 43 億個不同的隨機數並且需要新的“秒時間”來改變時,探勘硬體如何每秒提供數十億或數万億個雜湊值是時候從隨機數重新開始了?似乎在最極端的情況下,即使“merkle root”由於向塊中添加交易而發生變化,也不會頻繁發生,以至於最強大的 ASIC 總是有工作要做。
在可能的範圍內,我正在尋找一個可能詳盡但易於理解的答案。
區塊中的時間戳不需要設置為目前雜湊的實際時間。因此,在探勘過程中,即使實際時間不是那個時間戳,也可以在隨機數耗盡時移動時間戳。
還有其他方法可以更改不需要更改時間戳的塊頭。礦工經常為他們的 coinbase 交易的 coinbase 部分添加一個價值,這被稱為 extranonce。礦工將增加它,以便在每次耗盡一組 nonce 時更改 merkle 根,從而允許更多的 nonce 可能性。此外,還可以做其他事情,例如置換交易順序、選擇新交易、更改 coinbase 輸出腳本等。所有這些更改區塊雜湊的方法允許礦工每秒進行數万億次雜湊。