Proof-of-Work
誰決定區塊鏈 PoW 之謎?
在 PoW 算法中,礦工必須解決一個數學難題,其難度取決於網路負載和總計算能力。但是誰來決定每個區塊的難題是什麼?例如,我正在探勘一個區塊,
A + B = C
現在我必須解決以下等式A
,我必須找到B
解決這個等式的問題,但是區塊鍊網路中的誰為C
每個區塊提供(預定數量)?或者其他礦工如何驗證他確實找到了獲勝的雜湊?
礦工必須解決數學難題
讓我們具體一點:礦工必須找到一個區塊頭(你用區塊內容建構,即交易),其雜湊 (double
sha256
) 是一個低於target的數字。但是誰來決定每個塊的拼圖是什麼?
這可以改寫為:但是誰來決定每個塊的目標值?
簡短而抽象的答案:網路設定目標值。
或者其他礦工如何驗證他確實找到了獲勝的雜湊?
不僅是其他礦工,而且網路的所有參與者(全節點)在收到一個塊時都會驗證 PoW,“驗證 PoW”的意思是“檢查塊頭的雜湊 (double
sha256
) 是否代表低於目前目標的數字.那麼,所有節點如何就區塊的有效性達成一致呢?或者,所有節點如何共享同一個目標?
創世區塊的目標是硬編碼的,並且每 2016 個區塊調整一次(目標越高,難度越小。目標越小,難度越高)。由於所有參與者共享相同的區塊鍊和相同的目標調整公式,因此他們共享相同的目前目標。而且由於它們共享相同的目前目標,因此它們接受相同的塊,因此共享相同的塊鏈:-)。
系統生成下一個謎題。將其視為下一個 A 是散列目前 A 和剛剛解決的下一個事務的結果。因此,雜湊輸出 new A 又是隨機的。所以剛剛解開謎題的礦工沒有任何優勢。美妙之處在於你總能找到符合目標難度的B。