• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 區塊鏈生態 查看內容
    • 14001
    • 0
    • 分享到

    ERC20 Token智能合約風險列表發布,安全問題有據可查

    2018-6-27 17:10

    來源: 金色財經

    ERC20 Token的安全問題總結


    ERC20 token 漏洞事件回顧

    在 ERC20 Token 逐漸成熟和完善的發展過程中,不少 ERC20 智能合約曾出現過重大漏洞,對項目方、投資人、交易所甚至整個以太坊社區造成了比較大的經濟損失。例如:

      • 2016 年 6 月 18 日,DAO 合約遭到攻擊,導致超過 3,600,000 個以太幣 (ETH) 被盜,迫使以太坊社區不得不采取硬分叉的手段來減少損失,而這更是直接引起了以太坊社區的分裂。


      • 2018 年 4 月 22 日,黑客攻擊了美鏈 (BEC) 的 Token 合約,通過一個整數溢出漏洞,一時間 BEC 的價格幾乎歸零。我們發現至少有10份合約存在該類問題。


      • 2018 年 4 月 25 日,SMT 爆出類似整數溢出漏洞,黑客制造和拋售了天文數字規模的 Token,導致 SMT 價格崩盤。


      • 2018 年 5 月 20 日,嚴重的邏輯漏洞導致 EDU 用戶的 Token 可被任意轉出,同時還有其它 3 個 Token 存在相同問題。


      • 2018 年 6 月 12 日,一系列 ERC20 智能合約整數溢出漏洞 (CVE-2018-11687, CVE-2018-11809, CVE-2018-11810, CVE-2018-11811, CVE-2018-11812) 又被爆出,據不完全統計有 800 多個合約受到影響。


    大量 ERC20 Token 實現未嚴格遵守規范


    未參照 ERC20 標準實現 Token 合約會給 DApp 開發帶來較大的困擾。某知名 DApp 團隊在深入分析了排名前20的合約之后,提示社區需要對 Token 合約的諸多實現問題和不規范行為重視起來[9],尤其是對于新的 DApp 開發者,提早避免一些問題。


    Nearly a third of the time developing Bskt was spent auditing external dependencies. We highly encourage other Ethereum dev teams to be aware of the dangers in external dependencies. Unlike software development in most systems, it’s critical to read the implementation of deployed contracts you depend on?—?not just the interface.


    我們還注意到,大量已部署 Token 合約曾經參考了以太坊官網(現已修復)以及 OpenZeppelin (52120a8c42 [2017年3月21日] ~ 6331dd125d[2017年7月13日]) 給出的不規范代碼模板,在 Solidity 編譯器升級至 0.4.22 后出現嚴重的兼容性問題,難以對接分布式交易所(如DEX)等其它 DApp [7]。據不完全統計,存在該類問題的合約超過2000份。


    若干 Token 合約在標準 approve() 函數中添加了對當前賬戶余額校驗邏輯。導致采用類似 0x 協議的諸多DApp(如DEX)有可能無法正常完成 approve(),必須由 Token 項目方提前轉入一筆數額巨大的 Token 至中間賬戶,這給DApp和交易所帶來了諸多不便[8]。超過17份合約存在該問題。


    ERC20 規范中規定了幾個可選的通用查詢接口如 name()、symbol()、decimals() ,因而大量 Token 合約未提供這些接口,甚至不少采用 NAME()、SYMBOL()、DECIMALS() 等不一致的寫法,也給合約的外部調用帶來了極大的麻煩。存在該類問題的合約超過3000份。


    ERC20 標準中還規定了 Transfer 和 Approval 事件必須在特定場景下觸發。很多 Token 的實現參考了以太坊官網的不標準代碼(現已修復),漏掉觸發 Approval 事件的操作。存在該類問題的合約超過1800份。


    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频