Proof-of-Work

為什麼我的 proofOfWork() 對每個 nonce 都有效?

  • January 5, 2017

我通過提供任何隨機數作為隨機數,從我在乙太坊錢包中部署的合約執行工作證明功能。根據我的理解,PoW() 不應該對每個 nonce 都有效,但在我的情況下,每次交易都會執行(PoW 適用於每個 nonce)。我如何驗證它是否每次都在工作 - 通過監控 msg.sender、難度和 currentChallenge 參數的平衡。如果我在任何時候錯了,請糾正我,並就正在發生的事情提出解決方案或解釋。

我認為您指的是:https ://www.ethereum.org/token#proof-of-work 。所以如果每次都經過相關程式碼一定是:

if (n < bytes8(difficulty)) throw;       

您是否嘗試將難度設置得更高?

uint public difficulty = 10**52;                         // Difficulty 

您還可以使用日誌事件跟踪執行,例如log0('here')

我通過提供任何隨機數作為隨機數,從我在乙太坊錢包中部署的合約執行工作證明功能。

請發布該函式的程式碼,更重要的是,您首先要定義這樣一個函式的原因。

根據我的理解,PoW() 不應該對每個 nonce 都有效,但在我的情況下,每次交易都會執行(PoW 適用於每個 nonce)。

您的理解不正確(至少從這個問題的內容來看)。PoW 功能旨在加強區塊鏈的去中心化方面,因為潛在攻擊者在區塊鏈上的成功(例如防止進行交易、雙重支出等)不是由攻擊者的對等點數量定義的控制但它的計算能力。閱讀這篇文章以獲得更清晰的畫面。

我如何驗證它是否每次都在工作 - 通過監控 msg.sender、難度和 currentChallenge 參數的平衡。如果我在任何時候錯了,請糾正我,並就正在發生的事情提出解決方案或解釋。

餘額與 PoW 無關。PoW 在那裡表明,無論誰進行交易,都是獨一無二的,而且只有一次。

引用自:https://ethereum.stackexchange.com/questions/7226