為什麼 2048 是挖礦難度綁定除數?
摘自黃皮書第 6 頁:
該論文更多地關注難度炸彈
ε
,但很少提及將 131072 和 2048 作為標量的基本原理。我猜前者只是一個任意值,但我不確定另一個。是不是因為難度較小,激勵措施不起作用?
簡短的回答:
這裡的 1/2048 是沒有叔塊的區塊的最高可能自然(即不考慮定時炸彈)相對難度增加。對於有叔叔的街區,這個數字是兩倍高:1/1024。因此,如果前一個塊的難度為x,那麼目前塊的難度最多為 x + x/2048,以防目前塊沒有任何叔叔,如果有,則為 x + x/1024。
長答案:
讓我們解釋一下黃皮書中使用的符號:
D_0:第一個區塊的難度和任何其他區塊的最低可能難度 (131072)
H:目前塊的頭部
P(H):H 的父塊
P(H)_{H_d}:父塊難度
x:在目前區塊沒有叔塊的情況下,最大可能的絕對難度增加 (P(H)_{H_d} / 2048)
\varsigma_2:難度變化因子
$$ -99 .. +2 $$ \epsilon:難度炸彈添加
y:最大可能的難度變化因子(如果目前塊沒有叔塊,則為 1,否則為 2)
H_s:目前區塊時間戳,以秒為單位
P(H)_{H_s}:父塊時間戳秒
9:目標區塊探勘時間(以秒為單位)
-99:最小可能的難度變化係數
所以,基本上,對於沒有叔塊的區塊,難度變化因子是 1 - t / 9,其中t是目前區塊的探勘時間。如果探勘時間正好是 9 秒,則變化因子為零。如果探勘時間小於 1,則變化因子為正,即當塊被探勘得太快時難度增加。如果探勘時間大於 9,則變化因子為負,因此當塊被探勘得太慢時難度會降低。
對於有叔塊的區塊,難度變化因子為 2 - t / 9,因此“中性”挖礦時間為 18 秒。因此,如果有很多塊有叔塊,那麼出塊時間會向 18 秒漂移,而如果有幾個塊有叔塊,它會向 9 秒漂移。
難度變化因子是乘以x,即父塊難度除以2048。所以如果難度變化因子為+1,那麼難度將改變部分塊難度的1/2048。