Solidity
誰為礦工生成數學問題?
在 POW 礦工解決問題以成功開採一個區塊,誰向礦工提供問題?所有礦工是否都在處理相同的問題?以及礦工如何驗證答案?,如果問題是由客戶端(geth)生成的那麼它不是易受攻擊的嗎?,您可以篡改問題的複雜性。
問題總是一樣的,只是輸入發生了變化。
問題始終是“給定輸入 X,嘗試找到具有小於 Y 整數值的隨機數的雜湊值”。輸入 X 由前一個塊的雜湊和目前塊中的交易形成。很難找到產生所需結果的正確 nonce 值,但是一旦找到結果就很容易驗證結果。
這就是工作量證明的優勢所在:很難找到正確的值,但一旦找到正確的 nonce,就很容易驗證結果。因此,每個人都可以很容易地驗證某人聲稱是結果的 nonce 實際上是正確的結果。
你不能篡改系統,因為輸入總是為每個人所知,問題總是一樣的。
- 以下是有關工作量證明的一些一般資訊:https ://en.bitcoin.it/wiki/Proof_of_work
- 在這裡,這裡是對乙太坊的解釋: https ://www.asynclabs.co/blog/proof-of-work-what-it-is-and-how-does-it-work/
- 這是實際的算法實現:https ://github.com/ethereum/wiki/wiki/Ethash