礦工點樣使用 nonce?
礦工會建立區塊標頭,將 nonce 設為 0,然後計算雜湊值。如果雜湊值高於目標值,就會將 nonce 設為 1 再試一次,然後是 2,如此類推。Nonce 是「只用一次的數字」的簡稱。
沒有哪個 nonce 比其他的好。雜湊值無法預測,所以每次嘗試都有同樣微小的勝出機會。這就是挖礦公平的原因:每秒嘗試次數越多,機會就越多,除此之外沒有其他方法可以提高勝算。
nonce 用盡時會發生甚麼事?
4 個位元組只可容納 4,294,967,296 個值。現代機器不到千分之一秒就能試完。於是礦工會更改區塊中的其他資料,再從頭開始試 nonce。
礦工嘅運作循環
- 01
嘗試每個 nonce
0、1、2,一直到 4,294,967,295。4 位元組能容納的值就只有這些。
- 02
好快就耗盡
一部 100 TH/s 嘅機器,大約只需 43 百萬分之一秒就可以試晒所有可能。
- 03
更改額外 nonce
礦工會修改自己獎勵交易(coinbase)入面一個預留欄位。
- 04
新嘅 Merkle root
嗰筆交易一改,Merkle root 就會跟住變,每個 nonce 都會再次產生全新雜湊。
通常會使用 extra nonce,即 coinbase 交易中的備用欄位。更改它會改變 Merkle root,令礦工可以嘗試一整批全新的區塊標頭。礦工亦可以微調時間戳記,而現時很多機器也可以更改版本欄位中的幾個位元。
來源
- Nonce · Bitcoin Wiki
- 區塊雜湊演算法 · Bitcoin Wiki
- 區塊鏈參考資料:區塊標頭、Merkle 樹、目標 · 比特幣開發者文件
本頁嘅即時數據來自 CloudMineCrypto API 同公開鏈上數據,並會定期更新,亦會喺數據旁標示。內容只供教育用途,並非財務建議。