0
雷鋒網AI金融評論按:本文來自微信公眾號“眾享比特”,原文標題《以太坊目前已知安全問題總結》。雷鋒網授權轉載。
(以下是本次轉載全文,雷鋒網對其進行略做編輯。)

以太坊(Ethereum)是一個開源的有智能合約功能的公共區塊鏈平臺。區塊鏈上的所有用戶都可以看到基于區塊鏈的智能合約。但是,這會導致包括安全漏洞在內的所有漏洞都可見。如果智能合約開發者疏忽或者測試不充分,而造成智能合約的代碼有漏洞的話,就非常容易被黑客利用并攻擊。并且越是功能強大的智能合約,就越是邏輯復雜,也越容易出現邏輯上的漏洞。同時,智能合約語言Solidity自身與合約設計都可能存在漏洞。
如果說區塊鏈也有315,那么以太坊想必榜上有名。以太坊自運行以來多次爆出過由于漏洞造成的重大安全事件。
北京時間2016年6月17日發生了在區塊鏈歷史上沉重的一次攻擊事件。由于以太坊的智能合約存在著重大缺陷,區塊鏈業界最大的眾籌項目TheDAO(被攻擊前擁有1億美元左右資產)遭到攻擊,導致300多萬以太幣資產被分離出TheDAO 資產池。
2017年7月21日,智能合約編碼公司Parity警告1.5版本及之后的錢包軟件存在漏洞,據Etherscan.io的數據確認有價值3000萬美元的15萬以太幣被盜。2017年11月8日,以太坊Parity錢包再出現重大bug,多重簽名漏洞被黑客利用,導致上億美元資金被凍結。
以太坊開源軟件主要是由社區的極客共同編寫的,目前已知存在Solidity漏洞、短地址漏洞、交易順序依賴、時間戳依賴、可重入攻擊等漏洞,在調用合約時漏洞可能被利用,而智能合約部署后難以更新的特性也讓漏洞的影響更加廣泛持久。
據有關調查統計,以太坊主要漏洞情況描述如下表:


上述漏洞目前已經廣泛存在以太坊網絡中,2018年2月24日,新加坡和英國幾位研究員指出,3.4萬多份以太坊智能合約可能存在容易被攻擊的漏洞,導致數百萬美元以太幣暴露在風險中,其中2365份屬于著名項目。
鑒于以太坊其運行時間還不到3年,如上漏洞可能只是其所有漏洞的冰山一角,為保證業務在區塊鏈上安全可靠運行,保護數字資產的安全,采用以太坊做為區塊鏈技術方案時必須對智能合約代碼進行充分測試。在構造智能合約時,眾享比特技術團隊的安全建議如下:
限制在智能合約中存儲以太坊的數量。如果智能合約源代碼、編譯器或者平臺有問題,這些資金可能丟失。
盡可能保證智能合約中的功能小而模塊化。源碼質量一定要得到保證(比如限制局部變量的數量,函數的長度),程序注釋盡量完整,以便方便日后的維護和增加代碼的可讀性。
盡可能減少交易中gas的消耗,如果有必須使用大量計算的地方,盡量將其放到鏈下去處理。
在智能合約中添加一個函數,執行一些自我檢查,如“有沒有以太泄漏?”。如果自檢失敗,智能合約會自動切換到某種“故障安全”模式,例如,禁用大部分功能,將控制交給固定和可信的第三方,或者將智能合約轉換成簡單的“把我的錢還給我”智能合約。
雷鋒網AI金融評論

雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。