如何認為一個塊比另一個塊更難解決/散列?
在這個答案中:https ://bitcoin.stackexchange.com/a/760/28219
據說:
由於所有這些工作,當比特幣客戶端登錄網路時,它可以信任最難生產的區塊鏈(因為這顯然是大多數礦工正在研究的區塊鏈)。
那裡沒有什麼明顯的:)
有人可以解釋一個塊比另一個塊更難解決嗎?它與它包含的交易數量有關嗎?
所有塊都有一個“難度”欄位。這是一個參數,用於確定在找到一個塊之前(平均)必須計算多少雜湊。更高的難度意味著該塊將更難解決。
如何認為一個塊比另一個塊更難解決/散列?
可以把它想像成擲硬幣,其中難度數字是你必須連續翻轉的正面數量。因此,在難度 8 中,您必須連續獲得 8 個正面,依此類推。難度 9 比難度 8 更難。
這個難度數字用於根據非常具體的規則增加/減少網路上解決的塊數,以保持平均 10 分鐘解決塊。如果網路解決的塊太多,比如平均每 9 分鐘一個塊,那麼網路會增加難度。同樣,如果網路僅在目前難度下每 11 分鐘解決一次區塊,則難度會降低。這種重新調整過程在比特幣中每兩週發生一次。
棘手的部分是如果在難度調整的同時發生分叉會發生什麼。假設我們的區塊鏈如下所示:
X_8 / -> X_8 -> X_8 \ X_8
8
(每個區塊的難度在哪裡)。由於上叉和下叉在其區塊頭中具有不同的時間欄位,因此它們導致了不同的難度重新調整計算(難度重新調整是基於給定時間內的塊數,試圖將其保持在一個塊每 10 分鐘)。現在,鏈兩側的下一個區塊,具有新計算的難度,沒有給予相同的權重。X_8 -> X_9 / -> X_8 -> X_8 \ X_8 -> X_7
由於上叉的難度重新調整以更高的難度告終,因此在該鏈的一半(X_9)上解決的任何塊都將覆蓋在叉的底部(X_7)上解決的塊。但是,如果 X_7 在 X_9 塊之前已經得到顯著解決,那麼這將是工作量最大的鏈(底部鏈上的 8 + 7 比頂部鏈上的僅 8 好)。
網路本質上是尋找難度總和最高的區塊鏈,即花費最多工作來生產的區塊鏈,並且是攻擊者最難試圖覆蓋的區塊鏈。網路上的節點選擇這條最高難度和的鏈作為他們的正確鏈,這樣做的好處是,當每個人都遵循簡單的規則時,他們就交易歷史達成了共識。
它與它包含的交易數量有關嗎?
不。
區塊難度僅取決於在特定鏈上工作的礦工的總速度,通過評估 2 週內區塊時間戳的間隔來跟踪。值得將區塊鏈視為一棵恰好有一個非常強大的主分支的樹,其中分支的權重取決於創建它們的工作量而不是它們的長度。
+---> 9 +---> 9 9 +----> 9 | +---> 1 +---> 1 +---> 1 +---> 1 +---> 1
在這裡,我們有兩個競爭鏈的技巧,一個累積難度為 36(9+9+9+9),一個累積難度為 25(9+9+1+1+1+1+1)。雖然分叉的頂部區塊較少,但它比底部分叉的難度更高,因此被認為是目前鏈中“最好”的一面。