原文标题:当我们看合约审计时,我们在看什么?丨目击
随着 DeFi 项目数量的爆发,安全审计机构已经要忙不过来了。从某种程度上讲,合约审计是把握智能合约风险的第一道门槛。
根据安全团队的解读,一个完整的 DeFi = 智能合约 + 前端页面。这即是说,在智能合约安全审计后,仍会存在几个风险。
当在我们看审计报告的时候,我们在看什么?
作为 DeFi 参与者,合约审计能够真正给出哪些借鉴和参考?
随着「Swap系」数量越来越多,DeFi 项目「暴雷」、「跑路」的事件也在增多。
面对社区对于 DeFi 项目风险的担忧,很多项目方都选择了进行合约审计,或是为了自证清白,或是为了取信于投资人,有时,DeFi 项目进行合约审计,也被当做是一种利好来进行解读。
这种方式似乎是有效的:在「寿司」Sushiswap 创始人被爆套现离场、项目控制权易主之后,一条关于「Sushiswap 项目智能合约审计工作进展顺利」的消息,让 Sushi 立刻展示出了小幅度涨幅,也让一部分投资者重获信心;在 JustSwap 连续三个项目均爆出漏洞、并被指项目方未做好详尽的测试和审计之后,Tron 官方挖矿项目 SUN 通过报告审计的消息,也让波场社区的热度再次增加。
同时,也有一些平台因为出现漏洞而在审计上备受质疑,上周,就有投资人对新兴的「Swap 系」平台 Moonswap 提出了关于「发现有预挖」、「合约没有时间锁」、「平台出现多个 Bug」等问题,并对其审计做出质疑,引发社区关注。
目前,MoonSwap 已于启动当天 18 点多已经加上了时间锁,慢雾安全团队发布了正式安全审计报告。
当在我们看审计报告的时候,我们在看什么?
作为 DeFi 参与者,合约审计能够真正给出哪些借鉴和参考?
在面对这些问题的同时,Blocklike 还发现,对于审计能够起到的作用,有人作出了这样的总结:「代码可以审计,人性无法审计。」
@某圈葫芦娃:
Moonswap竟然通过了慢雾科技的审计!请问你们@慢鱼科技 @余弦 是怎么审计的,有预挖你们审计不出来也就算了,很多合约错误,usdc的ui直接几十万被缩小也就罢了,最重要的是合约没有时间锁,项目方可以直接移走池子里的所有lp token!这么致命的漏洞,一个稍微懂代码的都看的出来,请问你们是怎么做到国内一流区块链审计公司的,是没能力 还是没精力 还是收了黑钱?谁来审计你们?还是我理解错误?
@余弦:
审过,智能合约,楼主提的几个关键点我先回复下:1.“很多合约错误”其实是前端错误,这点对于我们审计智能合约来说,前端发生的我们不可控;2.早鸟这事,合约代码很明显,这点项目方来解释,对于慢雾来说不是合约漏洞;3.时间锁在审计过程反馈过几次,我们会盯着加上;4.我们将披露完整的审计报告。
代码审计范围有限,智能合约风险暗藏
DeFi 热潮之下,很多投资人的现状可能正如 Primitive Ventures 创始合伙人 Dovey 所描述的那样:「千万别问我 xxx 能不能挖。现在一个人全职帮我看新地,一个人全职帮我看项目,还有两个 trader 全职做交易(各种,包括农产品打理),还有各种内应外援程序员帮我看合约安全,我就是个确认钱包多签的机器人,现代化农业哪里有那么简单。」
的确,合约安全是很多投资者都关心的话题。近期,为了给跟多投资者提示风险,社区就总结出了这样一份 DeFi 生态思维导图及风险点:
- 合约风险,代码漏洞,未经审计,黑客攻击造成资产损失;
- 私钥风险,没有多签的 DeFi 合约意味着掌握合约私钥的可以随意更改合约或者跑路;
- 无常损失风险,例如流动性挖矿本身的无常损失,尤其是两种风险资产的流动性对收益高风险也高;
- 交易摩擦风险,现在以太坊交易 Gas 费率极高,几个交易下来可能就要花费一个以太,散户的本金来回几次可能都不够折腾;
- 操作失误风险,在转账过程中失误导致资产永久丢失,最近有几次大额转账失误 建议投资国外经过开源审计多签和社区民主自治的项目,仅供参考。
从中看出,风险点之中首当其冲的便是「 合约风险,代码漏洞,未经审计,黑客攻击造成资产损失」。从某种程度上讲,合约审计成为了把握合约风险的第一道门槛。
到了 DeFi 这里,从投资者参与未经审计项目的情况与热度来看,很多人对于安全审计的含义并不明了。早在 Yam 启动之时,市场的 Fomo 情绪已经被带动起来,虽然 Yam 已经被声明了「未经审计」的、一周内写出来的合约,但其所受到的追捧仍让人咋舌。
那么,作为 DeFi 投资者,该如何看待合约审计呢?
Blocklike 从慢雾安全团队处了解到,目前,智能合约基础安全审计主要分为 ETH 部分(波场、币安智能链类似,都是基于 EVM)和 EOS 部分。其中,ETH 安全审计包含 13 个大类,EOS 安全审计包含 15 个大类。
不过,由于 DeFi 整个安全模型上会更加复杂,慢雾安全团队将 DeFi 风险点分为了合约层与前端层两个部分:
合约层:
- 智能合约基础安全审计项,其中精度问题是个需要特别注意点;
- 权限过大风险:铸币,授权迁徙;
- 经济模型风险:预挖、团队分配及用途;
- 同链平台迁移风险;
- 新增池风险:添加恶意 Token 薅奖励;
- 合约直接收到打币风险;
- 代币兼容性风险:通缩型代币,777 代币;
- DoS 风险: 循环递归,恶意合约拒绝接受以太币;
- 治理合约风险: 治理投票双花, 治理垄断风险;
- 链平台迁移风险:各链之间兼容 EVM 的方式可能不一致;
- 闪电贷攻击风险:通过闪电贷对系统稳定性造成影响(暂定);
- 预言机操控风险;
- 借贷清算风险:全部清算、部分清算、无人清算、竞价清算。
前端层:
- 精度风险;
- 中间人攻击风险,如替换合约地址;
- 合约替换风险;
- 授权钓鱼风险;
- 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 项目真是出了问题,维权横幅上面你要印谁的名字?」
波浪Blocklike
微信号:iblocklike
功能介绍:同世界分享区块链