tokensymbol 以太坊(以太坊钱包imtoken下载链接)

摘要: 安比(SECBIT)实验室携手路印(Loopring)共同发布智能合约风险列表,该列表内容主要包括详细的问题合约基本信息和全面的风险问题汇总。希望该列表可以帮助 ERC20 Token 合约开发者提高开发质量,帮助DAPP项目方降低开发成本。

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

智能合约风险列表发布,ERC20 Token安全问题有据可查

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

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

ERC20 Token的安全问题总结

ERC20 Token 漏洞事件回顾

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

  • 2016 年 6 月 18 日,DAO 合约遭到攻击,导致超过 3,600,000 个以太币 (ETH) 被盗,迫使以太坊社区不得不采取硬分叉的手段来减少损失,而这更是直接引起了以太坊社区的分裂[3]
  • 2018 年 4 月 22 日,黑客攻击了美链 (BEC) 的 Token 合约,通过一个整数溢出漏洞,一时间 BEC 的价格几乎归零。我们发现至少有10份合约存在该类问题。
  • 2018 年 4 月 25 日,SMT 爆出类似整数溢出漏洞,黑客制造和抛售了天文数字规模的 Token,导致 SMT 价格崩盘[4]。
  • 2018 年 5 月 20 日,严重的逻辑漏洞导致 EDU 用户的 Token 可被任意转出,同时还有其它 3 个 Token 存在相同问题[5]。
  • 2018 年 6 月 12 日,一系列 ERC20 智能合约整数溢出漏洞 (CVE-2018-11687, CVE-2018-11809, CVE-2018-11810, CVE-2018-11811, CVE-2018-11812) 又被爆出,据不完全统计有 800 多个合约受到影响[6]。

大量 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份。

ERC20 安全问题汇总与分类

我们对数万份 ERC20 Token 合约存在的问题进行分析统计,已将所有统计数据上传至 Github 仓库(awesome-buggy-erc20-tokens)。

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

已发现的所有 ERC20 Token 合约安全风险问题(共28项)被归纳为三大类:代码实现漏洞(A),不规范问题(B),权限管理问题(C)。

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

问题列表如下:

智能合约风险列表发布,ERC20 Token安全问题有据可查

在awesome-buggy-erc20-tokens 仓库的文章(ERC20_token_issue_list_CN.md)中对每个问题给出了详细描述信息。

如何使用 Token 合约风险列表

  • Token 合约开发者:本列表提供了详细的问题描述和相关合约列表,希望能够借此提⾼ ERC20 Token 合约开发者的安全意识,避免在后续的合约开发中重复踩坑。
  • DApp 项目方:以太坊平台的 DApp 可能会与多个 ERC20 Token 合约对接。DApp 项⽬⽅可以通过本仓库查阅已部署的问题合约的详细信息,获知 Token 合约存在的问题,避免因 Token 合约的漏洞或者合约的不兼容问题,给 DApp 带来不必要的麻烦。
  • 其他生态参与者:本列表收录了大量 ERC20 Token 合约存在的风险问题,并记录了市值排名较⾼的672份已部署的 Token 合约的基本信息和问题详情,大家可以通过查阅本仓库来找到问题合约,了解已部署 Token 合约存在的风险。

Token 列表包含哪些内容

awesome-buggy-erc20-tokens 仓库共收录了以太坊上数万份 ERC20 Token 合约中存在的问题。主要包含三部分内容:Token 合约的基本信息,问题 Token 列表,风险问题汇总。

1. 合约的基本信息仓库中目前已收录的合约,所有问题合约均来源于此。

(合约信息列表:https://github.com/sec-bit/awesome-buggy-erc20-tokens/blob/master/token_dict.json )

另外,仓库中还统计coinmarket网站收录的Token合约的详细信息(共672份),包括token的排名,token名称,token缩写符号,总量,小数位数和上线交易所的信息。

(合约详细信息列表:https://github.com/sec-bit/awesome-buggy-erc20-tokens/blob/master/token_detail_dict.json )

2. 所有的问题合约列表,列表分别以 json 和 CSV 的形式展示,也便于导入表格软件或者编写脚本进行分析。

(所有的问题合约列表:https://github.com/sec-bit/awesome-buggy-erc20-tokens/blob/master/bad_tokens.all.csv )

(按问题类型分类的问题合约列表:https://github.com/sec-bit/awesome-buggy-erc20-tokens/tree/master/csv )

3. 风险问题汇总文件

tokensymbol 以太坊(以太坊钱包imtoken下载链接)文档下载: PDF DOC TXT
文章来源: cc
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2384272385@qq.com举报,一经查实,本站将立刻删除。