Vulnerability

Wallet Griefing 攻擊是否仍然存在?

  • June 13, 2019

我在以下連結中閱讀了有關 Wallet Griefing 攻擊的資訊:

[Ethereum Griefing Wallets][1]

‘send’ 被選中,但合約使用 throw。程式碼如下:

for (uint i=0; i<investors.length; i++) {
 if (investors[i].invested == min_investment) {
   // Refund, and check for failure. 
   // This code looks benign but will lock the entire contract
   // if attacked by a griefing wallet.

   if (!(investors[i].address.send(investors[i].dividendAmount))) 
     { 
       throw;
     }
   investors[i] = newInvestor;
 }
}

這種攻擊仍然可以通過將 throw 替換為 revert 來發生嗎?

有人請指導我嗎?祖爾菲。

是的,我看到這個漏洞仍然是一個相當常見的錯誤。實際上,我幾週前剛剛寫了一篇關於它的文章:https ://medium.com/consensys-diligence/provable-fair-ransom-1547ba894d0 。

throwrequire還是revert無所謂。關鍵是,如果一個收件人可以導致交易恢復,那麼沒有人可以得到報酬。

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