Blockchain
區塊鏈 SHA256 雜湊和隨機數
我一直在用隨機隨機數讀取 SHA256 雜湊創建。所以,我的理解是,每個礦工都會拉取未送出的交易,並嘗試使用從 0 開始並從那裡遞增的隨機 nonce 創建交易的雜湊。因此,如果每個節點/礦工都使用從 0 開始的隨機數序列執行相同的雜湊,那麼它總是具有最大計算能力的礦工總是比較小的礦工跑得快。計算能力較弱的礦工如何能夠比最大的礦工更快地創建雜湊?
我的第二個問題是每次將一個塊添加到鏈中時,每個礦工是否會停止目前程序並重新啟動,因為下一個塊將取決於目前添加塊的雜湊值?
塊雜湊必須低於某個值,並且塊雜湊取決於(除其他外)隨機數和 Merkle 根。
Merkle 根取決於交易的順序。請注意,它是一個序列,而不是一組,這意味著順序很重要。
不同的礦工選擇許多不同的交易列表。對於每個包含進入塊雜湊的其他欄位的交易列表,很可能沒有 32 位隨機數,這將使塊雜湊足夠低,從而有資格成為區塊鏈上的新塊。所以礦工總是添加一個事務,或者刪除一個事務,或者置換一些事務以獲得不同的 Merkle 根。
我將計算一個雜湊率為 14 TH/s 的 AntMiner S9 為您遍歷 32 位欄位(2^32 雜湊)中的所有數字所花費的時間:
2^32 H / (14 TH/s) = 2^32 / 14 / 10^12 * s = 0.30678 毫秒
回答您的第二個問題:網路流量需要的時間超過 0.3 毫秒。給你一個印象:在光纜中,信號以大約三分之一的光速傳播。以光速計算,某物在這段時間內行進了 90 公里,因此光纜中的信號可以在其中傳輸約 30 公里。許多礦工彼此相距超過 90 公里,試圖在這段時間內行駛超過 90 公里,結果讓物理學家大為惱火。