然而,這里有可能有個漏洞。
哈希函數并不是100%免碰撞的。那么,如果城市中的敵人拿到信息之后將之篡改,并通過不斷改變nonce值,獲得了以規定數量的0作為開頭的結果,那該怎么辦?雖然極度耗時,但是仍然可行。針對這種情況,將軍們可以使用數字的力量。
假設,如果不是1個左邊的將軍給1個右邊的將軍發送信息,而是有3個左邊的將軍來給右邊的將軍們發送信息。為了實現上述目的,他們可以制作自己的信息,然后對累積的信息進行哈希。緊接著,再給哈希結果添加nonce值后,再次進行哈希。這次,他們希望產生一個以6個0開頭的信息。
顯而易見,這將會非常耗時。但這次,如果信使被城市抓獲,那么敵人想要篡改信息,并且找到符合結果的nonce值,將會耗費無限長的時間,可能歷時數年。例如,將軍們派遣多個信使,那么,城市在計算到一半的過程中就可能會遭受攻擊并且被摧毀。
右邊的將軍們要做的非常簡單。他們只要將之前給他們的正確的nonce值添加在信息上,并進行哈希,然后對照其結果是否匹配即可。對一個字符串進行哈希是非常容易的。那么,從本質上來說,工作量證明的過程是:
尋找一個符合哈希目標的nonce值,是一個非常困難且耗時的過程。
然而,驗證結果中是否有作惡行為卻是非常簡單的。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。