【首发】智能合约风险列表发布,ERC20 Token安全问题有据可查_以太坊:BEC价格

以太坊ERC20Token标准自2015年11月19日诞生以来,为智能合约、以太坊生态以及区块链应用的发展做出了巨大的贡献。据Etherscan网站数据显示,截止2018年6月26日,以太坊主网上ERC20Token数量已超过90000。下图是统计的ERC20每日创建数量趋势图。

这些Token合约所承载的价值不可估量。然而近几个月以来,以BEC事件为开端,引发的一系列的链式反应,越来越多的合约漏洞与不兼容性问题相继被曝光。目前智能合约安全问题的分析披露还比较散乱,对智能合约的开发和后续的使用所起到的作用非常有限,社区缺乏一套完备的合约问题汇总机制。因此安比实验室在分析了近期爆出的合约风险问题和大量的智能合约源码后,携手路印发布智能合约风险列表,联合去中心化交易所DEx.top、轻信科技、Consensys中国、长亭科技等技术团队,共同对该风险列表进行维护。

由于以太坊上部署的合约数量规模还在不断增大,未来还会有更多更复杂的问题暴露出来。因此,我们倡导发起Token合约风险列表共建计划,呼吁更多关心区块链生态的团队或技术人员参与进来,共同维护这份合约风险列表。

ERC20Token的安全问题总结

ERC20Token漏洞事件回顾

在ERC20Token逐渐成熟和完善的发展过程中,不少ERC20智能合约曾出现过重大漏洞,对项目方、投资人、交易所甚至整个以太坊社区造成了比较大的经济损失。例如:

投资应用程序Roi完成360万美元融资,Spark Capital领投:7月13日消息,投资应用程序Roi完成360万美元融资,Spark Capital领投,NBA球星Kevin Durant的风险投资公司35 Ventures、谷歌旗下的Gradient Ventures以及天使投资人Coinbase前首席技术官Balaji Srinivasan等参投。首席执行Vishwajith表示,新资金将用于扩大五人团队,招募产品、法律和安全人员,开发追踪加密货币和NFT以及传统资产的应用程序。

Roi允许用户在一个地方添加要查看的股票、债券和退休账户,并为用户的Robinhood、Coinbase、TD Ameritrade和WeBull账户提供一站式交易。除传统资产外,Roi还为用户提供其所有加密货币和NFT持有的概览及精细数据。[2023/7/13 10:53:07]

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多个合约受到影响。

今日恐慌与贪婪指数为63,贪婪程度上升:金色财经报道,今日恐慌与贪婪指数为63(昨日为58),贪婪程度较昨日大幅下降上升,等级仍为贪婪。

注:恐慌指数阈值为0-100,包含指标:波动性(25%)+市场交易量(25%)+社交媒体热度(15%)+市场调查(15%)+比特币在整个市场中的比例(10%)+谷歌热词分析(10%)。[2023/4/19 14:12:49]

大量ERC20Token实现未严格遵守规范

未参照ERC20标准实现Token合约会给DApp开发带来较大的困扰。某知名DApp团队在深入分析了排名前20的合约之后,提示社区需要对Token合约的诸多实现问题和不规范行为重视起来,尤其是对于新的DApp开发者,提早避免一些问题。

NearlyathirdofthetimedevelopingBsktwasspentauditingexternaldependencies.WehighlyencourageotherEthereumdevteamstobeawareofthedangersinexternaldependencies.Unlikesoftwaredevelopmentinmostsystems,it’scriticaltoreadtheimplementationofdeployedcontractsyoudependon—notjusttheinterface.

我们还注意到,大量已部署Token合约曾经参考了以太坊官网以及OpenZeppelin等其它DApp。据不完全统计,存在该类问题的合约超过2000份。

以太坊桥TVL达到78亿美元 30天内跌幅达22.0%:金色财经报道,Dune Analytics数据显示,以太坊桥当前TVL达到78亿美元。其中锁仓量最高的5个桥分别是PolygonBridges(30.82亿美元)、ArbitrumBridges(14.53亿美元)、Optimism Bridges(11.89亿美元)、Fantom AnyswapBridge(3.4亿美元)、Near Raibow(2.84亿美元)。[2022/10/30 11:57:03]

若干Token合约在标准approve()函数中添加了对当前账户余额校验逻辑。导致采用类似0x协议的诸多DApp有可能无法正常完成approve(),必须由Token项目方提前转入一笔数额巨大的Token至中间账户,这给DApp和交易所带来了诸多不便。超过17份合约存在该问题。

ERC20规范中规定了几个可选的通用查询接口如name()、symbol()、decimals(),因而大量Token合约未提供这些接口,甚至不少采用NAME()、SYMBOL()、DECIMALS()等不一致的写法,也给合约的外部调用带来了极大的麻烦。存在该类问题的合约超过3000份。

ERC20标准中还规定了Transfer和Approval事件必须在特定场景下触发。很多Token的实现参考了以太坊官网的不标准代码,漏掉触发Approval事件的操作。存在该类问题的合约超过1800份。

星展银行:料美联储本次加息75个基点,调整措辞还为时过早:7月27日消息,星展银行预计美联储将再次加息75个基点,使利率上限升至2.50%(上一周期的峰值)。对美联储来说,现在调整措辞可能还为时过早。运输成本和大宗商品价格的下降可能需要一段时间才能影响到整体价格。此外,投入租金可能会在一段时间内保持高位。无论如何,星展银行认为数据疲软还不足以引发美联储的严重担忧。相反,如果数据允许,美联储可能会放慢收紧的步伐,因为政策或已到达限制性水平。然而,任何对利率已处于中性的强调,或经济下行风险已浮出水面的迹象,都可能促使市场重新定价。(金十)[2022/7/27 2:40:38]

ERC20安全问题汇总与分类

我们对数万份ERC20Token合约存在的问题进行分析统计,已将所有统计数据上传至Github仓库。

Github仓库地址:https://github.com/sec-bit/awesome-buggy-erc20-tokens

已发现的所有ERC20Token合约安全风险问题被归纳为三大类:代码实现漏洞,不规范问题,权限管理问题。

代码实现漏洞涵盖了合约代码功能实现和逻辑实现上的漏洞,如整数溢出不规范问题涵盖了因代码实现不规范导致版本不兼容或者外部合约调用时的无法不兼容问题,如ERC20接口无返回值权限管理问题涵盖了所有因管理权限设置不当而引发的问题,如owner可以操作任何人账户上的余额

美国民主党参议员询问富达在退休基金中的比特币敞口:7月27日消息,美国民主党参议员沃伦询问资产管理巨头富达在退休基金中的比特币敞口。(金十)[2022/7/27 2:40:09]

问题列表如下:

在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.

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:15ms0-0:551ms