以太坊ERC20Token標準自2015年11月19日誕生以來,為智能合約、以太坊生態以及區塊鏈應用的發展做出了巨大的貢獻。據Etherscan網站數據顯示,截止2018年6月26日,以太坊主網上ERC20Token數量已超過90000。下圖是統計的ERC20每日創建數量趨勢圖。
這些Token合約所承載的價值不可估量。然而近幾個月以來,以BEC事件為開端,引發的一系列的鏈式反應,越來越多的合約漏洞與不兼容性問題相繼被曝光。目前智能合約安全問題的分析披露還比較散亂,對智能合約的開發和后續的使用所起到的作用非常有限,社區缺乏一套完備的合約問題匯總機制。因此安比實驗室在分析了近期爆出的合約風險問題和大量的智能合約源碼后,攜手路印發布智能合約風險列表,聯合去中心化交易所DEx.top、輕信科技、Consensys中國、長亭科技等技術團隊,共同對該風險列表進行維護。
由于以太坊上部署的合約數量規模還在不斷增大,未來還會有更多更復雜的問題暴露出來。因此,我們倡導發起Token合約風險列表共建計劃,呼吁更多關心區塊鏈生態的團隊或技術人員參與進來,共同維護這份合約風險列表。
ERC20Token的安全問題總結
ERC20Token漏洞事件回顧
在ERC20Token逐漸成熟和完善的發展過程中,不少ERC20智能合約曾出現過重大漏洞,對項目方、投資人、交易所甚至整個以太坊社區造成了比較大的經濟損失。例如:
LINA未平倉合約總額已達1.8億美元,超過其市值:金色財經報道,據Coinglass數據顯示,LINA未平倉合約總額已達1.8億美元,超過其1.4億美元的市值。[2023/6/2 11:54:37]
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多個合約受到影響。
大量ERC20Token實現未嚴格遵守規范
未參照ERC20標準實現Token合約會給DApp開發帶來較大的困擾。某知名DApp團隊在深入分析了排名前20的合約之后,提示社區需要對Token合約的諸多實現問題和不規范行為重視起來,尤其是對于新的DApp開發者,提早避免一些問題。
數據:一小時內,累計有108萬枚OKB從OKEx轉移至未知錢包:金色財經報道,據Whale Alert數據監測,一小時內,累計有108萬枚OKB從OKEx轉移至未知錢包,約合4894萬美元。[2023/3/23 13:21:13]
NearlyathirdofthetimedevelopingBsktwasspentauditingexternaldependencies.WehighlyencourageotherEthereumdevteamstobeawareofthedangersinexternaldependencies.Unlikesoftwaredevelopmentinmostsystems,it’scriticaltoreadtheimplementationofdeployedcontractsyoudependon—notjusttheinterface.
我們還注意到,大量已部署Token合約曾經參考了以太坊官網以及OpenZeppelin等其它DApp。據不完全統計,存在該類問題的合約超過2000份。
若干Token合約在標準approve()函數中添加了對當前賬戶余額校驗邏輯。導致采用類似0x協議的諸多DApp有可能無法正常完成approve(),必須由Token項目方提前轉入一筆數額巨大的Token至中間賬戶,這給DApp和交易所帶來了諸多不便。超過17份合約存在該問題。
ERC20規范中規定了幾個可選的通用查詢接口如name()、symbol()、decimals(),因而大量Token合約未提供這些接口,甚至不少采用NAME()、SYMBOL()、DECIMALS()等不一致的寫法,也給合約的外部調用帶來了極大的麻煩。存在該類問題的合約超過3000份。
比特幣閃電網絡通道數量為76,480個:金色財經報道,1ML數據顯示,當前比特幣閃電網絡節點為16,241個,過去30天增加1.15%;通道數量為76,480個,較一個月前增加了0.6%;網絡容量為5,403.20枚BTC,月漲3%。[2023/2/25 12:28:32]
ERC20標準中還規定了Transfer和Approval事件必須在特定場景下觸發。很多Token的實現參考了以太坊官網的不標準代碼,漏掉觸發Approval事件的操作。存在該類問題的合約超過1800份。
ERC20安全問題匯總與分類
我們對數萬份ERC20Token合約存在的問題進行分析統計,已將所有統計數據上傳至Github倉庫。
Github倉庫地址:https://github.com/sec-bit/awesome-buggy-erc20-tokens
已發現的所有ERC20Token合約安全風險問題被歸納為三大類:代碼實現漏洞,不規范問題,權限管理問題。
代碼實現漏洞涵蓋了合約代碼功能實現和邏輯實現上的漏洞,如整數溢出不規范問題涵蓋了因代碼實現不規范導致版本不兼容或者外部合約調用時的無法不兼容問題,如ERC20接口無返回值權限管理問題涵蓋了所有因管理權限設置不當而引發的問題,如owner可以操作任何人賬戶上的余額
問題列表如下:
在awesome-buggy-erc20-tokens倉庫的文章中對每個問題給出了詳細描述信息。
Balancer敦促部分LP盡快移除流動性:金色財經報道,Balancer敦促其部分流動性提供者(LP)盡快從五個資金池中提取資金。Balancer表示,為避免即將公開披露的問題,已將部分Balancer池的協議費用已設置為0,目前正常運行。
但因部分流動性池中相關問題無法被解決,Balancer 敦促部分 LP 盡快提取流動性,包括以太坊主網上的 DOLA / bb-a-USD(當前鎖倉額 360 萬美元)、Polygon 上的 bb-am-USD/miMATIC(鎖倉額 9000 美元)、Optimism 上 Beethoven X(由 Balancer 驅動)的It's MAI life(鎖倉額 110 萬美元)和Smells Like Spartan Spirit(鎖倉額9萬美元)以及Fantom上Beethoven X的Tenacious Dollar(鎖倉額160萬美元)。[2023/1/7 10:59:30]
如何使用Token合約風險列表
Token合約開發者:本列表提供了詳細的問題描述和相關合約列表,希望能夠借此提ERC20Token合約開發者的安全意識,避免在后續的合約開發中重復踩坑。DApp項目方:以太坊平臺的DApp可能會與多個ERC20Token合約對接。DApp項可以通過本倉庫查閱已部署的問題合約的詳細信息,獲知Token合約存在的問題,避免因Token合約的漏洞或者合約的不兼容問題,給DApp帶來不必要的麻煩。其他生態參與者:本列表收錄了大量ERC20Token合約存在的風險問題,并記錄了市值排名較的672份已部署的Token合約的基本信息和問題詳情,大家可以通過查閱本倉庫來找到問題合約,了解已部署Token合約存在的風險。
數據:2021年中國數字藏品市場規模2.8億元:9月22日消息,艾瑞咨詢發布2022年中國數字藏品行業研究報告,報告顯示中國數字藏品市場規模2021年達到2.8億元,絕大部分生成在聯盟鏈上,少數平臺架構在公鏈上,國內市場主要地流通集中在一級市場,此外報告預測未來開放二級市場后預計2026年市場規模將達到280億元。[2022/9/22 7:13:16]
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.
六月即將過去 微信安全中心公布了 本月朋友圈十大熱傳謠言 來看看,你中招過嗎? 朋友圈十大謠言 1 熱鴨梨水能抗癌 謠言類別:失實報道 欺騙指數:★★★★危害指數:★★★★ 謠言內容 北京陸軍總.
1900/1/1 0:00:00作為虛擬貨幣貨幣中的“幣二代”,以特幣“年輕”,有“活力”,運用的是創新改進后的區塊鏈技術,以特幣的容量不會被限制,比特幣區塊鏈設計之初是人為地將一個區塊容量設置,隨著交易量的加大.
1900/1/1 0:00:00一、最牢固的基礎——混合共識經歷不斷的嘗試摸索,區塊鏈產業已經基本達成共識,在這個萬眾矚目的未來產業中,最核心的基礎是公有鏈.
1900/1/1 0:00:00每當聊起互聯網與現實的交互作用的時候,我和我的同齡人都會提到“MUD”,這應該是非常有時代感的“互聯網入侵現實”的案例了,盡管在當年MUD游戲在中國沒有那么流行.
1900/1/1 0:00:00說起跑車,肯定會有很多男士的內心會一陣澎湃,車可以說是男人的第二生命,而擁有一輛跑車更是每個男士心中的一個夢想,其實跑車的分類有很多種,按車身結構可分為轎跑、敞篷跑車、雙門跑車.
1900/1/1 0:00:00據港交所4月26日公告顯示,好萊塢電影制作公司SIXEntertainment(勝圖娛樂)已申請在港上市,聯席保薦人高盛及摩根大通.
1900/1/1 0:00:00