什麼是目標哈希?
在加密貨幣挖礦中,目標哈希值是一個數值,只有當區塊頭經過哈希處理後的值小於或等於該值時,新區塊才能被授予挖礦獎勵。區塊頭用於標識區塊鏈中的各個區塊。
加密貨幣挖礦是指通過完成特定工作來獲取加密貨幣作爲獎勵的過程。這項工作的性質是驗證特定加密貨幣交易的合法性。從這個意義上講,加密貨幣礦工本質上是審計員。挖礦時,您可以獲得加密貨幣,而無需投入任何資金。
目標哈希值用於確定輸入的難度,並且可以進行調整以確保區塊高效處理。例如,目標哈希值用於採用工作量證明(PoW)系統的加密貨幣(包括比特幣)中,以設定當前的挖礦難度。如果某種加密貨幣使用不同的挖礦系統,則可能不需要目標哈希值。
要點總結
- 在加密貨幣挖礦中,目標哈希值是一個數值,哈希區塊頭(用於識別區塊鏈中的各個區塊)必須小於或等於該數值,才能將新區塊授予礦工。
- 目標哈希值用於採用工作量證明 (PoW) 系統的加密貨幣,以設定當前的挖礦難度(包括比特幣);如果加密貨幣採用不同的挖礦系統,則可能不需要目標哈希值。
- 比特幣網絡通過提高或降低目標哈希值來調整挖礦難度,以保持新區塊之間平均 10 分鐘的間隔。
目標哈希的工作原理
加密貨幣依賴於區塊鏈,區塊鏈記錄了該加密貨幣的所有交易歷史。這些交易經過哈希處理(或加密編碼)後,被轉換成一系列字母數字字符。哈希處理是指將任意長度的數據字符串輸入算法,生成一個固定長度的輸出。無論輸入數據量大小,輸出長度始終相同(儘管哈希值的排列組合數量極其龐大)。每個區塊都包含前一個區塊頭的哈希值。
驗證和編碼區塊鏈的過程稱爲挖礦。挖礦需要使用計算機運行哈希算法來處理最新的區塊;用戶挖礦所需的信息位於區塊頭中。加密貨幣網絡會爲該哈希值設定一個目標值(稱爲目標哈希值),礦工會嘗試所有可能的值來確定這個目標值。
區塊頭包含區塊版本號、時間戳、前一個區塊使用的哈希值、默克爾根的哈希值、隨機數(nonce)和目標哈希值。區塊的生成方式爲:首先對區塊內容進行哈希運算,然後加上一個隨機數字字符串(即隨機數),最後再次對區塊進行哈希運算。
如果哈希值滿足目標要求,則該區塊會被添加到區塊鏈中。通過循環嘗試各種解決方案來猜測隨機數的過程稱爲工作量證明(PoW),能夠找到正確值的礦工將獲得該區塊以及加密貨幣獎勵。
特殊考慮
比特幣目標哈希
比特幣使用 SHA-256 哈希算法。該算法生成可驗證的隨機數,且所需的計算機處理能力是可預測的。
挖出一個區塊需要礦工生成一個值(隨機數),該值經過哈希運算(加密編碼)後,小於或等於比特幣網絡最近接受的區塊中使用的隨機數。這個數字介於 0(最小值)和 256 位(最大值)之間,但不太可能達到最大值。
由於目標哈希值可能非常大,礦工可能需要測試大量的數值才能成功。失敗的礦工必須等待下一個區塊(這就是爲什麼找到哈希解決方案的礦工被比作賽跑或彩票的贏家)。
目標哈希值會定期調整。用於生成新目標哈希值的哈希函數具有特定的屬性,旨在確保區塊鏈(及其加密貨幣)的安全。此過程是確定性的,這意味着每次使用相同的輸入都會產生相同的結果。它的速度足夠快,不會花費太長時間返回輸入的哈希值。此外,它還使得確定輸入變得非常困難,尤其是在輸入很大的情況下,並且輸入的微小變化都會導致哈希輸出發生顯著變化。