以太坊爆重大安全漏洞 或可無限量增發

以太坊(Ethereum)是一個開源的有智能合約功能的公共區塊鏈平臺。區塊鏈上的所有用戶都可以看到基於區塊鏈的智能合約。但是,這會導致包括安全漏洞在內的所有漏洞都可見。近日,某安全機構透露,黑客利用以太坊存在的重大安全漏洞並進行攻擊,可導致以太坊無限增發。

以太坊爆重大安全漏洞 或可無限量增發

智能合約漏洞頻現

如果智能合約開發者疏忽或者測試不充分,而造成智能合約的代碼有漏洞的話,就非常容易被黑客利用並攻擊。並且越是功能強大的智能合約,就越是邏輯複雜,也越容易出現邏輯上的漏洞。黑客利用了一個ERC223合約與DS-AUTH庫的混合漏洞,重設了owner權限,進行了Token的增發。這個漏洞雖然比較隱秘,但安全等級很高。

謹防亡羊補牢事件再次發生

目前漏洞已被修復,修復後的合約成功通過了第三方專業區塊鏈安全機構的安全審計,合約安全威脅已解除。目前已知存在Solidity漏洞、短地址漏洞、交易順序依賴、時間戳依賴、可重入攻擊等漏洞,在調用合約時漏洞可能被利用,而智能合約部署後難以更新的特性也讓漏洞的影響更加廣泛持久。

總結

合約無小事,區塊鏈合約的安全,僅依靠開發者的經驗和能力並非萬無一失。鑑於以太坊其運行時間還不到3年,如上漏洞可能只是其所有漏洞的冰山一角,為保證業務在區塊鏈上安全可靠運行,保護數字資產的安全,採用以太坊做為區塊鏈技術方案時必須對智能合約代碼進行充分測試。

在筆者看來,在區塊鏈和智能合約的設計與編碼實踐中,需做到以下幾點:

  1. 簡化區塊鏈腳本語言設計,犧牲一部分圖靈完備性換取安全性
  2. 嚴格執行智能合約代碼審查
  3. 強化對智能合約程序員培訓
  4. 在應用實踐中要謹慎漸行


分享到:


相關文章: