Difficulty

挖礦難度如何定義(公式)?

  • November 7, 2017

礦工嘗試的 sha256(s) 結果是一個 256 位長的數字(64 位十六進制數)。

我知道這個 256 位數字應該低於目標門檻值,目標門檻值本身就是一個 256 位長的數字,帶有多個前導零。

目標門檻值在塊的頭部用 4 個字節編碼,十六進製表示為 0xEEMMMMMM。EE 是 1 字節的指數,MMMMMM 是 3 字節的尾數。

這些指數和尾數究竟是如何轉換為實際的 256 位長目標門檻值的?

nBits 欄位基本上是 base-256 中的科學計數法(256 是 2^8)。例如,我們以Bitcoin.org Developer Reference上的那個為例:0x181bc330(Big-Endian order)。這分為兩部分,0x18指數(十進制為 24)和0x1bc330尾數。尾數是 3 個字節長,所以從指數中減去 3,然後將 256 提高到該次方,然後乘以尾數,就像科學計數法一樣:

0x1bc330 × 256 ^ (0x18 - 3)

給出目標,尾數後跟 210x00個字節,或十六進制的 42 個零。

有關另一個範例,請參見此答案:https ://bitcoin.stackexchange.com/a/61967/51948

編輯:您也可以將其視為分配指數中給出的字節數,在這種情況下0x18=24 bytes,而不是用尾數填充前 3 個字節。

引用自:https://bitcoin.stackexchange.com/questions/61947