随着 DeFi 项目数量的爆发,安全审计机构已经要忙不过来了。从某种程度上讲,合约审计是把握智能合约风险的第一道门槛。
根据安全团队的解读,一个完整的 DeFi = 智能合约 + 前端页面。这即是说,在智能合约安全审计后,仍会存在几个风险。
当在我们看审计报告的时候,我们在看什么?
作为 DeFi 参与者,合约审计能够真正给出哪些借鉴和参考?
随着「Swap系」数量越来越多,DeFi 项目「暴雷」、「跑路」的事件也在增多。
面对社区对于 DeFi 项目风险的担忧,很多项目方都选择了进行合约审计,或是为了自证清白,或是为了取信于投资人,有时,DeFi 项目进行合约审计,也被当做是一种利好来进行解读。
这种方式似乎是有效的:在「寿司」Sushiswap 创始人被爆套现离场、项目控制权易主之后,一条关于「Sushiswap 项目智能合约审计工作进展顺利」的消息,让 Sushi 立刻展示出了小幅度涨幅,也让一部分投资者重获信心;在 JustSwap 连续三个项目均爆出漏洞、并被指项目方未做好详尽的测试和审计之后,Tron 官方挖矿项目 SUN 通过报告审计的消息,也让波场社区的热度再次增加。
同时,也有一些平台因为出现漏洞而在审计上备受质疑,上周,就有投资人对新兴的「Swap 系」平台 Moonswap 提出了关于「发现有预挖」、「合约没有时间锁」、「平台出现多个 Bug」等问题,并对其审计做出质疑,引发社区关注。
目前,MoonSwap 已于启动当天 18 点多已经加上了时间锁,慢雾安全团队发布了正式安全审计报告。
当在我们看审计报告的时候,我们在看什么?
作为 DeFi 参与者,合约审计能够真正给出哪些借鉴和参考?
在面对这些问题的同时,Blocklike 还发现,对于审计能够起到的作用,有人作出了这样的总结:「代码可以审计,人性无法审计。」
审计范围有限,合约风险暗藏
DeFi 热潮之下,很多投资人的现状可能正如 Primitive Ventures 创始合伙人 Dovey 所描述的那样:「千万别问我 xxx 能不能挖。现在一个人全职帮我看新地,一个人全职帮我看项目,还有两个 trader 全职做交易(各种,包括农产品打理),还有各种内应外援程序员帮我看合约安全,我就是个确认钱包多签的机器人,现代化农业哪里有那么简单。」
的确,合约安全是很多投资者都关心的话题。近期,为了给跟多投资者提示风险,社区就总结出了这样一份 DeFi 生态思维导图及风险点:
1. 合约风险,代码漏洞,未经审计,黑客攻击造成资产损失
2. 私钥风险,没有多签的 DeFi 合约意味着掌握合约私钥的可以随意更改合约或者跑路
3. 无常损失风险,例如流动性挖矿本身的无常损失,尤其是两种风险资产的流动性对收益高风险也高
4.交易摩擦风险,现在以太坊交易 Gas 费率极高,几个交易下来可能就要花费一个以太,散户的本金来回几次可能都不够折腾
5.操作失误风险,在转账过程中失误导致资产永久丢失,最近有几次大额转账失误 建议投资国外经过开源审计多签和社区民主自治的项目,仅供参考。
从中看出,风险点之中首当其冲的便是「合约风险,代码漏洞,未经审计,黑客攻击造成资产损失」。从某种程度上讲,合约审计成为了把握合约风险的第一道门槛。
到了 DeFi 这里,从投资者参与未经审计项目的情况与热度来看,很多人对于安全审计的含义并不明了。早在 Yam 启动之时,市场的 Fomo 情绪已经被带动起来,虽然 Yam 已经被声明了「未经审计」的、一周内写出来的合约,但其所受到的追捧仍让人咋舌。
那么,作为 DeFi 投资者,该如何看待合约审计呢?
Blocklike 从慢雾安全团队处了解到,目前,智能合约基础安全审计主要分为 ETH 部分(波场、币安智能链类似,都是基于 EVM)和 EOS 部分。其中,ETH 安全审计包含 13 个大类,EOS 安全审计包含 15 个大类。
(ETH 安全审计样例)
不过,由于 DeFi 整个安全模型上会更加复杂,慢雾安全团队将 DeFi 风险点分为了合约层与前端层两个部分:
合约层:
1. 智能合约基础安全审计项,其中精度问题是个需要特别注意点
2. 权限过大风险:铸币,授权迁徙
3. 经济模型风险:预挖、团队分配及用途
4. 同链平台迁移风险
5. 新增池风险:添加恶意 Token 薅奖励
6. 合约直接收到打币风险
7. 代币兼容性风险:通缩型代币,777 代币
8. DoS 风险: 循环递归,恶意合约拒绝接受以太币
9. 治理合约风险: 治理投票双花, 治理垄断风险
10. 链平台迁移风险:各链之间兼容 EVM 的方式可能不一致
11. 闪电贷攻击风险:通过闪电贷对系统稳定性造成影响(暂定)
12. 预言机操控风险
13. 借贷清算风险:全部清算、部分清算、无人清算、竞价清算
前端层:
1. 精度风险
2. 中间人攻击风险,如替换合约地址
3. 合约替换风险
4. 授权钓鱼风险
5. Gas Limit 限制风险
「这些确实普通用户很难去一一理解」,慢雾安全团队进一步解释道:「但普通用户可以简单理解为:DeFi 通过安全审计后,用户参与进去被安全审计的智能合约里的本金是安全的。至于因为参与 DeFi 导致的炒币经济亏损或在非合约层面导致的亏损,都不在智能合约安全审计范围。」
需要注意的是,根据安全团队的解读,一个完整的 DeFi = 智能合约 + 前端页面。
这即是说,在智能合约安全审计后,还会存在几个风险:第一,安全审计可能都没发现的漏洞或新型攻击方式;第二,智能合约可升级或可篡改,如何让可升级或可篡改成为不可能或有效可信的社区治理行为;第三,随着项目方的发展,智能合约会增加新的,如新池子、新功能模块,需要注意看智能合约安全审计报告明确审计的是哪些。
由于前端页面属于中心化内容,如果前端出 Bug 或漏洞或作恶,实际上危害可能会更直接更大。这个不仅是安全审计机构可以去审计的事(实际上也很难),还是社区监督的事。
而到了 EOS 安全审计上,情况便又有所不同了。
虎符创始人王瑞锡就曾公开表示:「EOS 的合约特性是可修改,大家要看清楚,不要盲目相信审计了。因为目前大多数 EOS 上的合约都没有开源。审计了没开源和没审计是一样的。出了问题审计还背锅,得不偿失。」
对于 EOS 上的智能合约,慢雾安全团队补充道:「如果项目方 Owner 权限已进行多签,需要项目方与至少 2 个可信方共同多签进行合约更新或者转账等操作,且 active 权限已删除项目方私钥权限。就可以比较好控制 EOS 智能合约项目方权限过大问题。」
因此,即便是通过了安全审计的 DeFi 项目,投资者仍然需要仔细甄别,注意风险。
投资人该如何参考?
根据工作经验,慢雾安全团队也对投资者们提出了一些建议:「智能合约安全审计虽然不是银弹,但有总比裸奔好,职业的安全审计机构会大大降低 DeFi 风险;切记不要进入到钓鱼网站,乱授权会导致本金归零;即使去投资被多家安全审计机构审计过的 DeFi,也做好黑天鹅爆发可能性,切勿沉迷;用靠谱的环境去玩靠谱的 DeFi,靠谱环境指(电脑是安全的、浏览器是安全的、手机是安全,使用的钱包是知名的、使用的网络是安全的等);不要把所有资金放到一个篮子里,分散安全管理很重要。」
成都链安智能合约安全负责人对 Blocklike 总结道:「从成都链安的经验来看,合约审计的目的主要是检查代码规范性 、常规漏洞(主要指一般的 Bug,如数据显示错误等)、安全漏洞(比如溢出、重入等常规的安全漏洞)、业务逻辑漏洞。主要排除的风险主要在于两点,减少遭受黑客攻击的可能性、减少因代码导致的业务无法按预期正常运转(比如 Yam 事件)。」
「审计报告会指出业务逻辑和功能描述等,可以对比看看项目方宣传与功能是否对的上;审计报告也会描述权限相关,普通投资者可以根据描述的权限,看看项目方是否有跑路的能力,比如项目方有权利将合约中的钱全部转走等,或者可以控制某些关键参数,变相控制用户资金」,成都链安提出建议。
而目前可以看到的现状是,DeFi 大热导致了很多项目方过于急切,现在明显是安全审计机构远远忙不过来的状况,这对于用户来说不是个好事。由于不少用户缺乏安全意识,即使一个 DeFi 没有通过安全审计,也可能有大量用户直接涌入。
Blocklike 提示各位投资者,在参与 DeFi 项目的同时,注意智能合约安全问题,进行投资时,本金安全作为第一重要的评估参数来看待,面对庞大的参与资金,黑客们可比普通投资者更狂热。
毕竟,早在8月中旬,就已经有社区声音对热情的投资者们灵魂发问:「你们想过吗,这些形形色色的 DeFi 项目真是出了问题,维权横幅上面你要印谁的名字?」