Security

“低安全性”功能為何以及如何影響最大的多重簽名合約?

  • August 14, 2019

人們每天都在使用這個合約http://github.com/ethereum/dapp-bin/blob/master/wallet/wallet.sol它也是目前大多數乙太坊的合約。

你也可以使用這個合約原始碼在官方乙太坊錢包上創建一個多重簽名賬戶。

但是當我進入網站https://etherscan.io/address/0xab7c74abc0c4d48d1bdad5dcb26153fc8780f83e#code時,我們收到所有這些警告,說明安全性低

警告:編譯後的合約可能容易受到 ZeroFunctionSelector(非常低嚴重性)、DelegateCallReturnValue(低嚴重性)、ECRecoverMalformedInput(中等嚴重性)、SkipEmptyStringLiteral(低嚴重性)、IdentityPrecompileReturnIgnored(低嚴重性)、HighOrderByteCleanStorage(高嚴重性)的影響)、SendFailsForZeroEther(低嚴重性)、DynamicAllocationInfiniteLoop(低嚴重性)、CleanBytesHigherOrderBits(中/高嚴重性)Solidity 編譯器錯誤。

作為投資者(以及尚未完全學習 Solidity 的程序員),我應該如何使用它?我當然聽說過 Parity 漏洞,它讓黑客可以自由地拿走 3000 萬美元。

我的問題是:我應該擔心嗎?以及應該注意和注意什麼?

更新:

我理解你,但我可以基本的穩固性,我看不到任何“內部”功能或“守衛”在他們被利用後通過平價採取行動。

但是在這裡,我通過solidity remix模擬器進行了更深入的分析,說明了重入漏洞:https ://imgur.com/a/d3x8J

更新 2:

你說更高的編譯器版本更好所有使用該程式碼的合約(我說的是乙太坊錢包中使用的那個)使用版本 0.3.2!0.3.2!這是2016年的!

整個乙太坊生態系統處於起步階段。錯誤是可以預料的,但如果涉及大量資金,當然不能容忍錯誤。

基本上有兩種類型的漏洞可以讓資金被盜:

  1. 程序員錯誤

例如,重入漏洞曾經很常見。今天大多數 DApp 開發人員都意識到了這一點,並且不會犯這個錯誤。

如今,大多數錯誤都特定於某個應用程序的邏輯。唯一可以確定沒有的方法是通過形式驗證、廣泛的程式碼審查和/或時間和金錢的測試。 2. 編譯器錯誤

這些是 Solidity 編譯器的開發者犯的錯誤。DApp 開發人員幾乎不可能檢測到它們或對此做任何事情。

一旦一個智能合約被編譯了一個錯誤並被部署在區塊鏈上,這個錯誤就會一直存在。契約部署是最終的。

重要的是要注意,僅僅因為編譯器有錯誤,並不意味著使用該編譯器編譯的所有合約都有錯誤。編譯器錯誤只會在極少數情況下產生負面影響。(否則它們早就被檢測到了,在包含錯誤的編譯器版本發布之前)

您不應該過多關注 etherscan.io 給出的所有警告。他們只是查看使用了哪個編譯器版本,並給出該編譯器版本的所有已知錯誤的列表。他們實際上並沒有對每份契約進行深入分析。很有可能,您正在查看的契約不受這些錯誤的影響。

至少在基本級別上學習 Solidity 是一個好主意,並且只需閱讀程式碼以查看沒有出現明顯的錯誤。像重入漏洞這樣的錯誤很容易被發現。除此之外,您應該檢查您正在查看的特定應用程序的程式中的邏輯錯誤。

一些一般提示:

  • 較高的編譯器版本通常風險較小。
  • 帶有經過審查的原始碼的契約通常風險較小。
  • 較短的契約通常風險較小。
  • 長期存在、處理大量資金且未被黑客入侵的合約通常風險較小。

不幸的是,不能對所有契約做出保證。

我希望這會有所幫助。

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