難度=難度_ 1 _目標/當前_目標
難度_1_target長度為256bit,前32位為0,後面全部為1,壹般顯示為哈希值:0x 00000000 fffffffffffffffffffffffffffffffffffffffffff,難度_1_target表示btc網絡初始目標哈希。Current_target是當前塊的目標HASH,先壓縮後存儲在塊中。在建立塊之前,塊的哈希值必須小於給定的目標哈希值。
例如,如果存儲在塊中的壓縮目標哈希是0x1b0404cb,則未壓縮的十六進制哈希是
因此,當目標HASH為0x1b0404cb時,難度為:
比特幣挖礦的過程其實就是通過隨機哈希碰撞找到壹個解nonce,使得塊哈希小於目標哈希值。礦機每秒能進行多少次哈希碰撞是其“計算能力”的代表,單位寫成hash/s或h/s。
力的單位:
比特幣系統的難度是動態調整的,每挖2016塊就會調整壹次。調整基於之前2016個區塊的劃區時間。如果上壹周期的平均封鎖時間小於10分鐘,則增加難度,大於10分鐘,則降低難度,以保證系統的穩定性。
全網計算能力是btc網絡中所有參與競爭挖礦的礦機計算能力的總和。當前難度周期的全網計算力會影響下壹周期的難度調整。如果整個網絡的計算力增加,開采的難度就會增加,單個礦工在固定時間的產量就會減少。目前全網計算能力約為24.42EH/s,壹個螞蟻S9 miner的計算能力約為14th/s。
那麽,給定目前全網的計算能力,下壹個周期難度會如何調整?
根據公式:
因為閉塞時間要穩定在10分鐘,也就是600s:
那麽在3.46e+12的難度下,壹臺計算能力為14TH/s的礦機平均需要多長時間才能產出壹個區塊?
根據公式:
有:
結果大概是12270天。