硅谷Live / 实地探访 / 热点探秘/ 深度探讨
通证(Token)是区块链中定义价值的方式,用以标定金融或数字资产,其源代码实现方式也趋于标准化,从而使得通证之间的兑换和DAPP支持变得更加容易,包括钱包间的转账、交易所支持交易等。目前通证合约最广泛应用的标准即是在2015年末提出的以太坊改进建议ERC-20。据最新数据,Etherscan平台共计112446个基于ERC20的通证合约,而这个数字还在不断攀升。截止当前Etherscan前500通证总市值约120亿美金。
众所周知,区块链技术安全问题不容小觑,智能合约也已成区块链安全事件重灾之地。迄今为止,因智能合约攻击造成的损失高达20亿美金,其中最负“盛名”的众筹项目 TheDAO 所遭到的攻击竟造成价值逾5000万美元的损失。这些风险因素造就了智能合约安全审计服务商的迅速发展,并早已成为区块链技术发展中重要的赛道之一。据悉,仅 Etherscan 平台公布的智能合约审计推荐名单就包括了 CertiK,OpenZepplin,QuantStamp 等共计17家服务商。
不同于一般安全审计服务商,CertiK有三大优势:一是存在一套成熟的形式化验证框架和完整的理论基础,能够从数学原理上证明智能合约程序是否存在安全隐患;二是具有很高的可扩展性,基于智能标签与层级分解技术,CertiK能够将复杂的智能合约细化为不同模块从而得以分布式验证,大大提高安全验证的弹性与效率;三是CertiK具有较高的自动化程度,不依赖于人工审阅程序来进行验证,而是通过验证引擎和审计算法来自动完成合约验证,对人力依赖非常少,最大化的将源代码转为机器可检查的验证对象。
CertiK于8月下旬在安全业界公布了其最新进展,重磅发布了第一代高性能智能合约自动检测引擎CertiK AutoScan Engine(CASE),并对Etherscan平台进行了技术集成与大规模的通证安全检测。经过3小时的扫描结果显示,币值前500的智能合约中共计53个合约存在安全漏洞。包括3种高危漏洞,2种中危漏洞,11种低危漏洞。牵涉总市值高达四千万美金。
图为CertiK合约自动扫描验证平台AutoScan
(出于安全考量,扫描中出现的所有合约名字均以随机字符串代替)
智能合约因存在发布不可逆、代码开源等特性而导致了黑客的格外关注,但这并非世界末日:如若提前发现潜在漏洞,合约方还是可以通过二次迁移或者硬分叉的方式来进行合约迭代,尽可能地维护合约执行者的利益,只是这样的升级会伴随着极大的人力财力开销,并严重损害合约声誉。为了更好地监控与防范主网上已上线智能合约的正常运作,CertiK此次面向各大数字交易平台发布的智能合约自动检测引擎,其定位在保证代码挖掘深度的同时兼顾自动化和使用友好程度,可全天候无人为介入的条件下持续不断地对合约进行验证与监控。
CertiK官方也将这段时间的扫描结果脱敏处理公示,供业内机构参考:对于存在安全隐患的通证中,70%的合约存在整数溢出问题,30%存在函数正确性问题。
值得注意的新式漏洞如下:
高危漏洞1: 无限烧币
漏洞描述:只要用户A提供给用户B一个通证的额度,用户B就可以把用户A的通证余额全部烧光。
影响到的合约当前总市值:一千五百万美元
高危漏洞2: 无限铸币
漏洞描述:通过故意混淆函数名与构造函数名,发币人可以在合约中增发无限量的通证。造成持有者的通证大量贬值。
影响到的合约当前总市值:三百万美元
高危漏洞3: 转账即增发
漏洞描述:发币人转账能够通过整数溢出使得发币人自身的币达到无穷大。
影响到的合约当前总市值:一千六百万美元
中危漏洞1: 无主之币
漏洞描述:通过转移发币权,合约可以变成无主合约。用户的通证无法取出造成损失。
中危漏洞2: 卖币收益下溢
漏洞描述:用户卖币时由于合约出现的整数溢出问题,从合约中得到远远少于预期收益的ether。
针对过往智能合约安全漏洞,CertiK也都在第一时间发布安全案例分析与预防机制,详情请参考:
Bancor 2350万美元被盗!区块链安全事故频发,我们是否真的束手无策?
出于对涉及安全漏洞通证合约的安全考虑,CertiK官方暂不提供具体的名称、地址、漏洞位置以及源代码等技术细节。CertiK团队会在接下来联系交易所和相关通证主体,全面清查问题合约,将在取得允许之后陆续公布相关漏洞细节、检测过程以及解决方案,共同推进智能合约的安全发展。
推荐阅读