Hash
為什麼在挖礦時將隨機數從 0 強製到 n?
比特幣菜鳥在這裡。
我想知道為什麼在搜尋塊雜湊時隨機數從 0 增加到 n?
例如,為什麼不從其他整數 > 0 開始?
我的背景是ethereum-dev,所以我知道為什麼nonce需要改變,但我不明白為什麼從0到n?
提前致謝。
測試哪個隨機數或以什麼順序都無關緊要,除了您需要避免兩次測試完全相同的塊頭(因為這顯然是浪費時間)。
測試所有 nonce 值很有用,因為如果你不測試它們,你將需要更頻繁地更新 extranonce,儘管不是很重要。
儘管礦工以類似的方式增加他們的隨機數,但這不會導致礦工之間的重複工作:礦工嘗試的候選區塊之間存在無數差異,最重要的是他們的獎勵是在哪裡獲得的。(並且碰巧向同一個地方付款的礦工獲得由礦池分配的不同的額外隨機範圍)。因此,除非出現令人尷尬的問題,否則礦工之間不會有任何重複工作。
從 0 開始並遞增直到最大值只是更改無法複製的隨機數和最小化額外隨機數更新的簡便方法。許多設備為不同的晶片分配不同的範圍,因此不要簡單地以簡單的 0 到 2^32-1 方式遞增。
通過使用線性回饋移位寄存器而不是加法器進行更改,採礦設備可以節省可忽略不計的電量,但似乎沒有人為這種優化而煩惱。