以太坊ERC20Token標準自2015年11月19日誕生以來,為智能合約、以太坊生態以及區塊鏈應用的發展做出了巨大的貢獻。據Etherscan網站數據顯示,截止2018年6月26日,以太坊主網上ERC20Token數量已超過90000。下圖是統計的ERC20每日創建數量趨勢圖。
這些Token合約所承載的價值不可估量。然而近幾個月以來,以BEC事件為開端,引發的一系列的鏈式反應,越來越多的合約漏洞與不兼容性問題相繼被曝光。目前智能合約安全問題的分析披露還比較散亂,對智能合約的開發和后續的使用所起到的作用非常有限,社區缺乏一套完備的合約問題匯總機制。因此安比實驗室在分析了近期爆出的合約風險問題和大量的智能合約源碼后,攜手路印發布智能合約風險列表,聯合去中心化交易所DEx.top、輕信科技、Consensys中國、長亭科技等技術團隊,共同對該風險列表進行維護。
由于以太坊上部署的合約數量規模還在不斷增大,未來還會有更多更復雜的問題暴露出來。因此,我們倡導發起Token合約風險列表共建計劃,呼吁更多關心區塊鏈生態的團隊或技術人員參與進來,共同維護這份合約風險列表。
ERC20Token的安全問題總結
ERC20Token漏洞事件回顧
在ERC20Token逐漸成熟和完善的發展過程中,不少ERC20智能合約曾出現過重大漏洞,對項目方、投資人、交易所甚至整個以太坊社區造成了比較大的經濟損失。例如:
美眾議院議員:正在提出立法,罷免SEC主席Gary Gensler:金色財經報道,美國眾議院議員Warren Davidson發推回應Coinbase首席法務官Paul Grewal稱,為了糾正一連串的職權濫用行為,我正在提出立法,罷免證券證券交易委員會主席(指Gary Gensler),并由向董事會(權力所在)報告的執行董事取而代之。SEC前任主席不符合資格。
此前報道,4月14日,據The Block報道,美國證券交易委員會(SEC)準備在重新開放擬議法規時轉向DeFi監管。[2023/4/17 14:08:11]
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多個合約受到影響。
MetaMask聯創:已準備好放棄蘋果生態系統,將和Coinbase一起反抗蘋果稅:12月3日,MetaMask聯合創始人Dan Finlay在社交媒體上發文表示支持加密貨幣行業完全放棄Apple AppStore,并稱其30%的應用內購置稅是Apple公司“濫用壟斷”的表現。DanFinlay呼吁加密行業團結一致,否則MetaMask和其他所有錢包都會受制于此。Dan Finlay表示:截至目前,Metamask仍在AppStore中上架,但我們將在未來幾周和幾個月內密切關注情況,以確保用戶繼續不受限制地訪問其加密資產。
此前報道,CoinbaseWallet表示,由于Apple要求CoinbaseWallet iOS必須通過其應用內購買系統來支付發送NFT所需的Gas費,以收取30%的費用,但目前Apple專有的應用內購買系統并不支持加密應用,因此該問題無法解決。所以Apple阻止了其新版本的發布,導致目前用戶無法使用CoinbaseWalletiOS版本發送NFT。[2022/12/3 21:19:59]
大量ERC20Token實現未嚴格遵守規范
未參照ERC20標準實現Token合約會給DApp開發帶來較大的困擾。某知名DApp團隊在深入分析了排名前20的合約之后,提示社區需要對Token合約的諸多實現問題和不規范行為重視起來,尤其是對于新的DApp開發者,提早避免一些問題。
NearlyathirdofthetimedevelopingBsktwasspentauditingexternaldependencies.WehighlyencourageotherEthereumdevteamstobeawareofthedangersinexternaldependencies.Unlikesoftwaredevelopmentinmostsystems,it’scriticaltoreadtheimplementationofdeployedcontractsyoudependon—notjusttheinterface.
歐洲議會對加密法案MiCA的最終投票預計推遲至明年2月份:11月4日消息,歐洲議會發言人表示,歐洲議會和歐洲理事會現在可能會在2023年2月對加密資產市場監管 (MiCA) 法案進行投票,因為在此之前該草案需要翻譯成24種歐盟官方語言,而文本是技術性的且冗長所以需要時間。議會最終投票的通過推遲意味著規則制定和實施過程將推遲,MiCA中概述的新規則最早可能在2024年2月實施。
此前10月11日消息,歐洲議會投票初步通過加密法案MiCA,最終投票將于10月晚些時候進行。(The Block)[2022/11/4 12:16:09]
我們還注意到,大量已部署Token合約曾經參考了以太坊官網以及OpenZeppelin等其它DApp。據不完全統計,存在該類問題的合約超過2000份。
若干Token合約在標準approve()函數中添加了對當前賬戶余額校驗邏輯。導致采用類似0x協議的諸多DApp有可能無法正常完成approve(),必須由Token項目方提前轉入一筆數額巨大的Token至中間賬戶,這給DApp和交易所帶來了諸多不便。超過17份合約存在該問題。
ERC20規范中規定了幾個可選的通用查詢接口如name()、symbol()、decimals(),因而大量Token合約未提供這些接口,甚至不少采用NAME()、SYMBOL()、DECIMALS()等不一致的寫法,也給合約的外部調用帶來了極大的麻煩。存在該類問題的合約超過3000份。
前ConsenSys亞太區高管擔任dYdX CEO:10月10日消息,dYdX基金會宣布,已任命前ConsenSys亞太區高管Charles d'Haussy為dYdX首席執行官。Charles d'Haussy將負責dYdX協議、社區和dYdX DAO的發展以及戰略合作伙伴關系的建立。[2022/10/10 10:29:49]
ERC20標準中還規定了Transfer和Approval事件必須在特定場景下觸發。很多Token的實現參考了以太坊官網的不標準代碼,漏掉觸發Approval事件的操作。存在該類問題的合約超過1800份。
ERC20安全問題匯總與分類
我們對數萬份ERC20Token合約存在的問題進行分析統計,已將所有統計數據上傳至Github倉庫。
Github倉庫地址:https://github.com/sec-bit/awesome-buggy-erc20-tokens
已發現的所有ERC20Token合約安全風險問題被歸納為三大類:代碼實現漏洞,不規范問題,權限管理問題。
代碼實現漏洞涵蓋了合約代碼功能實現和邏輯實現上的漏洞,如整數溢出不規范問題涵蓋了因代碼實現不規范導致版本不兼容或者外部合約調用時的無法不兼容問題,如ERC20接口無返回值權限管理問題涵蓋了所有因管理權限設置不當而引發的問題,如owner可以操作任何人賬戶上的余額
問題列表如下:
OwlTing Group與Circle合作以支持跨境支付服務:金色財經報道,OwlTing集團通過利用Circle的支付解決方案,為通過OwlPay提供的跨境支付解決方案之一提供動力,從而滿足了國際企業對穩定幣結算的需求。這種支付集成允許企業使用USDC進行支付,同時為企業及其供應商使用安全的數字錢包。通過區塊鏈技術,支付清算和結算可以在幾秒鐘內完成。(prnewswire)[2022/7/14 2:13:47]
在awesome-buggy-erc20-tokens倉庫的文章中對每個問題給出了詳細描述信息。
如何使用Token合約風險列表
Token合約開發者:本列表提供了詳細的問題描述和相關合約列表,希望能夠借此提ERC20Token合約開發者的安全意識,避免在后續的合約開發中重復踩坑。DApp項目方:以太坊平臺的DApp可能會與多個ERC20Token合約對接。DApp項可以通過本倉庫查閱已部署的問題合約的詳細信息,獲知Token合約存在的問題,避免因Token合約的漏洞或者合約的不兼容問題,給DApp帶來不必要的麻煩。其他生態參與者:本列表收錄了大量ERC20Token合約存在的風險問題,并記錄了市值排名較的672份已部署的Token合約的基本信息和問題詳情,大家可以通過查閱本倉庫來找到問題合約,了解已部署Token合約存在的風險。
Token列表包含哪些內容
awesome-buggy-erc20-tokens倉庫共收錄了以太坊上數萬份ERC20Token合約中存在的問題。主要包含三部分內容:Token合約的基本信息,問題Token列表,風險問題匯總。
1.合約的基本信息倉庫中目前已收錄的合約,所有問題合約均來源于此。
另外,倉庫中還統計coinmarket網站收錄的Token合約的詳細信息,包括token的排名,token名稱,token縮寫符號,總量,小數位數和上線交易所的信息。
2.所有的問題合約列表,列表分別以json和CSV的形式展示,也便于導入表格軟件或者編寫腳本進行分析。
3.風險問題匯總文件
倉庫中共收錄了28種合約風險問題,對所有問題的詳細信息,包括詳細的描述、錯誤的代碼實現示例、推薦修改的代碼實現示例、存在該問題的合約列表和對該問題報道的相關鏈接。
以batchTransfer-overflow問題為例:
聲明
本列表信息全部來源于以太坊區塊鏈,etherscan.io,coinmarketcap.io等公開網站上的公開信息本列表所列所有問題均屬于已披露的漏洞或缺陷,不包含任何未公開漏洞本列表中存在多個合約Token名稱重復現象,請以合約地址為準;Token名稱只做參考,可能與知名項目重復,請勿過分解讀本列表中的數據可能會存在偏差或遺漏,請大家直接提交更改請求或者通知我們(info@secbit.io)
發起共建計劃
awesome-buggy-erc20-tokens倉庫由安比實驗室持續維護,路印團隊提供信息更新支持。并歡迎大家共同參與維護更新工作,共同推進以太坊生態健康發展。參與方式:
提交未被列入的問題ERC20Token合約地址提交新的ERC20Token合約漏洞提供改進建議或參與討論
同時我們也在尋求更多的力量,來共同開發更友好的前端查詢頁面,以供大家查詢。如果你有其他任何問題或者想法,歡迎加入我們的Gitter參與討論。
安比實驗室與路印合作共建安全可信的以太坊生態,安比實驗室團隊將擔任路印協議的安全顧問,提供合約驗證與Token合約審計技術服務。路印協議是基于智能合約的去中心化交易撮合協議,提供100%開源的去中心化交易前后臺解決方案。詳情請訪問路印官網:https://loopring.org
致謝:特別感謝DEx.top團隊參與早期列表建設想法的討論;感謝葉健,ZongminYu,吳玉會,YiTang等人對合約風險列表內容所提供的寶貴意見。
Reference
MarketshareofEthereum-basedtokensgrowsto91%https://medium.com/@amincad/market-share-of-ethereum-based-tokens-grows-to-91-fdefadfd9f6eAdisastrousvulnerabilityfoundinsmartcontractsofBeautyChain(BEC)https://medium.com/secbit-media/a-disastrous-vulnerability-found-in-smart-contracts-of-beautychain-bec-dbf24ddbc30e,Apr23,2018.UnderstandingTheDAOHackforJournalistshttps://medium.com/@pullnews/understanding-the-dao-hack-for-journalists-2312dd43e993,Jun19,2016.SmartMeshAnnouncementonEthereumSmartContractOverflowVulnerabilityhttps://medium.com/smartmesh/smartmesh-announcement-on-ethereum-smart-contract-overflow-vulnerability-f1ded8777720,Apr25,2018.SECBIT:智能合約紅色預警:四個Token驚爆邏輯漏洞,歸零風險或源于代碼復制https://mp.weixin.qq.com/s/lf9vXcUxdB2fGY2YVTauRQ,May24,2018.ERC20智能合約整數溢出系列漏洞披露https://www.secrss.com/articles/3289,Jun12,2018.數千份以太坊Token合約不兼容問題浮出水面,恐嚴重影響DAPP生態https://mp.weixin.qq.com/s/1MB-t_yZYsJDTPRazD1zAA,Jun8,2018.ERC20智能合約的approve千萬別這樣寫https://mp.weixin.qq.com/s/hYE4nu7FCD_nJH5WMRrXMA,Jun15,2018.Whatwelearnedfromauditingthetop20ERC20tokencontractshttps://blog.cryptofin.io/what-we-learned-from-auditing-the-top-20-erc20-token-contracts-7526ef3b6fb1,Mar28,2018.
工信部將籌建區塊鏈相關技術委員會被熱炒的區塊鏈或將很快迎來“國家隊”。近日,鑒于ISO等國際標準化機構已紛紛啟動區塊鏈標準化工作,有消息稱工信部也已經決定籌建區塊鏈相關技術委員會,推動建立標準委.
1900/1/1 0:00:00博傻理論 在這個世界上,傻不可怕,可怕的是做最后一個傻子。博傻理論(greaterfooltheory),是指在資本市場中:人們之所以完全不管某個東西的真實價值而愿意花高價購買,是因為他們預期會.
1900/1/1 0:00:00今天上午,一則蔡文勝、薛蠻子、帥初等人對區塊鏈進行討論的微信聊天記錄開始在網絡傳播。在聊天對話中,蔡文勝、帥初、慕巖、陳偉星、沈波、易理華、點付大頭、FBG周碩基等人就區塊鏈領域的多個問題發表了.
1900/1/1 0:00:00第一篇詞法 一、名詞 名詞的概念在不同的語法教課書中有不同的解釋和分類方法,但就實際應用來講還是不要過分地追求其理論概念,而更多的要把注意力放在其應用上來.
1900/1/1 0:00:00導語:有法律界的人士指出,按照OKEx平臺與徐明星此前的行為,可能涉嫌以下違法行為:非法經營、非法期貨交易、非法發行代幣,金融詐騙,開設賭場、協助洗錢、非法買賣外匯,擾亂國家金融秩序等等.
1900/1/1 0:00:00Ripple在12月29日超過了以太坊,成為比特幣背后全球市場上第二大的加密貨幣,市值達到720億美元.
1900/1/1 0:00:00