Hashpower

工作證明:目標、難度和前導零的數量如何相互關聯

  • May 13, 2018

我知道這個文章這個這個

我對這些條款有點困惑。我不明白許多前導零、目標和難度是如何相互關聯的。另外,我不明白如何為下一個目標計算零的數量。

目標是一個數字,塊頭的雜湊必須小於或等於該塊才能被認為是有效的。這個目標數字,當表示為 256 位數字時,有幾個前導零。前導零的實際數量無關緊要,對任何事情都無關緊要,但是我們人類談論前導零的數量是一種了解探勘對目標進行了什麼操作的方式。人們更容易理解雜湊必須有一些由目標指定的前導零,而不是人們理解雜湊是一個非常大的數字,目標是一個非常大的數字,並且雜湊必須小於目標。否則,前導零的數量無關緊要。前導零的數量基於目標。

難度也有點無關緊要。對於我們人類來說,了解探勘區塊正在做多少工作只是一件事情。難度是目標的另一種表示,只是可能的最高目標值除以目前目標值。

在這三件事中,只有目標才是真正重要的。這就是用來確定散列是否有效的方法,也就是每 2016 個塊更改一次的方法。前導零的數量和難度只是目標的不同表示,以便人們更容易理解。

D = 最大目標/目標

目標是 < maxTarget

換句話說,D 除以 maxTarget 是單個散列小於目標的機率的倒數。難度 = 1/機率,但按 maxTarget 縮小。

似乎 maxTarget 僅用於將 D 從數十億 septillions (10^33) 的範圍縮小到數百萬。

maxTarget 是一個 256 位數字(如 Target),通常以十六進製表示,以零開頭,可以看到如下開頭:0007FFFF …..這些十六進制值中的每一個都是一個半字節(半字節),也就是 4 位。7 是這樣的半字節:0111. F = 1111。所以這個 0007FFF… 數字在表示為位時有 3x4+1 = 13 個前導零。

HashRate 和 D 相關如下:

D = HR * T / 2^x

其中 T=目標求解時間,x 是前導零。

50% 的機會找到解決方案所需的雜湊數為:

雜湊 = D * 2^x = (2^256-1) / 目標。

有一個池 D 和一個鏈 D 略有不同:

pool_D = coin_D * 2^16 / (2^16 - 1)

<https://github.com/zawy12/difficulty-algorithms/issues/12>

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