Bitcoin-Core
為什麼計算具有一定數量零前綴的散列的隨機數比任何其他散列更難?
根據我對比特幣和山寨幣的初步了解,網路難度是通過要求網路以小於特定數字的雜湊為目標來調整的,這意味著為帶有一定數量前綴的零的雜湊計算隨機數。
由於散列值應該是均勻分佈的,我不明白為什麼以特定數量的零為目標的散列值比以任何其他散列為目標更容易/更困難(顯然不是沒有隨機數的內容的散列值)。我認為針對任何可能的散列值,除了內容已經散列到的內容之外,應該同樣困難。為什麼不是這樣?
很可能是我對比特幣網路難度本身的理解是錯誤的,在這種情況下,你能解釋一下嗎?
散列的長度為 256 位,因此散列空間中有 2^256 個可能的散列。但是,如果您斷言雜湊必須以 0 開頭,則允許的雜湊數減半(從而使您需要測試的平均雜湊數加倍),如果您說它必須以兩個 0 開頭,那就是現在只有四分之一的雜湊空間是有效的。因此,找到有效散列的難度隨著開始時所需的 0 的數量呈指數增長。
但是正如您所說,由於雜湊是均勻分佈的,因此要求雜湊以 x 個 0 開頭並沒有什麼獨特之處。要求雜湊以 x 個 1 開頭將是相同的,任何特定的 1 和 0 序列也是如此。0 只是一個不錯的選擇並且在實踐中是有意義的,因為就像您說的那樣,您計算的雜湊值小於特定數字。
順便指出術語差異,它不是針對特定的雜湊,而是針對可能的雜湊的特定子集。找到一個特定的散列意味著 SHA-256 被破壞,因為你基本上是在反轉散列操作。