挑戰難度調整
基本上對於這個問題,我需要確認我列出的所有假設都相當準確。
比特幣網路測量在區塊鏈中創建最後一個 2016 塊所需的時間。如果花費的時間明顯超過 2 週,則挑戰難度會降低。如果花費的時間明顯少於 2 週,則難度會增加。
誰執行這些測量?每個礦工都為自己?我假設,由於他們使用相同的算法,他們會不時自動更改算法的目標,而無需與任何人驗證他們的假設。
例如,一段時間以來,某個礦工一直試圖提供對挑戰的響應,以便
hash(challenge+proof)
有 40 個前導零。在將每個新區塊插入區塊鏈後,礦工測量生成最後一個 2016 區塊所需的時間。
如果測量的時間高於某個門檻值,難度應該會降低。
從那時起,礦工開始送出工作證明,導致 39 個前導零。
礦工指望其他礦工有相同的結論並且他們會接受他的答案,他的工作證明?
儘管礦工們沒有正式的協議—— “從現在開始,我們都在解決一個更簡單的任務。好嗎?-好吧!-我們走吧!”
我假設,由於他們使用相同的算法,他們會不時自動更改算法的目標,而無需與任何人驗證他們的假設。
是的,這是正確的,網路中的每個節點都必須獨立計算並得出相同的結果。用於驗證的所有內容始終由每個完整節點獨立建構,您可以僅使用塊二進製文件來管理比特幣網路的完全同步,而無需任何進一步的資訊。
例如,一段時間以來,某個礦工一直試圖提供對挑戰的響應,以便雜湊(挑戰+證明)有 40 個前導零。
“前導零的數量”經常用於描述比特幣挖礦,但並不能真正反映工作量證明的運作方式,它只是展示了區塊如何編碼和顯示給使用者的副作用。SHA256 雜湊是 256 位整數,礦工試圖找到低於特定整數目標的塊雜湊。如果系統僅基於十六進制編碼散列中的零個數,則兩個級別之間的粒度將不夠。
儘管礦工們沒有正式的協議——“從現在開始,我們都在解決一個更簡單的任務。好嗎?-好吧!-我們走吧!”
這將違反共識規則,並且任意針對錯誤值的任何塊都將被簡單地丟棄。網路中的節點嚴格驗證每一條規則,並丟棄任何不遵循它們的塊。礦工的存在只是為了將有效交易排序到區塊中,並在需要時向 SPV 客戶提供相對信任,他們不設置規則。