LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 行走笔记:Defi热潮下的安全隐患

行走笔记:Defi热潮下的安全隐患

2020-08-22 行走 来源:区块链网络

本篇笔记来自8月21日陀螺财经,“陀螺非正式会谈”栏目的线上直播。由国内最知名的两家区块链安全审计公司慢雾和链安带来对Defi安全问题的思考。

讨论嘉宾:

以下,Enjoy:

主持人:我是陀螺财经副主编Blake,也是本次本场非正式会谈的主持人。

先介绍下陀螺财经,我们是陀螺传媒旗下子品牌,是一个定位于区块链行业新金融、新数娱的区块链媒体平台。“陀螺非正式会谈”是陀螺财经旗下线上内容访谈IP,今年会持续对外输出优质访谈内容。

2020年区块链世界最大的热点非DeFi莫属,造富效应惊人。

但随着新项目新玩法层出不穷,安全事件也频繁出现,部分投资者损失巨大。

陀螺财经特别邀请慢雾科技和链安科技两位安全届大佬为大家做主题分享“DeFi虽热,安全隐患不容忽视。

慢雾科技 启富(以下简称慢雾):

我是慢雾科技合伙人兼产品负责人启富。慢雾科技是一家专注区块链生态安全的公司,成立于2018年1月,总部位于厦门,由一支拥有十多年一线网络安全攻防实战的团队创建。

团队成员曾打造了拥有世界级影响力的安全工程。慢雾科技已经是国际化的区块链安全头部公司,主要通过“从威胁发现到威胁防御一体化因地制宜的安全解决方案”服务了全球许多头部或知名的项目。

北京链安 王延巍:

我个人2006年就开始为移动互联网安全工作,在这个领域具有丰富的技术和产品经验。近几年在区块链安全领域着力较多,是北京链安的COO(首席运营官)。

北京链安是一家区块链安全和大数据公司,可以为交易所、钱包、主链、智能合约等提供安全服务,当然也包括Defi的审计工作。同时,我们率先开发了国内首款数字资产追溯系统,在三十多起数字资产相关案件的追查中均发挥了重要作用。

主持人:

上周暴涨的DeFi项目Yam受到很多资金的追捧,最终却因“一个代码公式的错误”导致项目失败。

第一个问题想问:这其中暴露了哪些安全问题?从安全角度你们如何看待这个事件?

慢雾:

简单来说就是YAM官方在合约中发现负责调整供应量的 rebase 函数发生了问题。这个问题导致多余的 YAM 代币放进了 YAM 的 reserves 合约中。而且最要命的是多出来了10的18次方这么多的币。

原因是合约代码里本来是要除以币的精度10^18

的,但是漏掉了。

这个问题说实话是个低级错误,我们推测可能是YAM官方在合约上线部署前,没有测试过 rebase 这个功能。当然他们也没有找任何第三方安全公司进行审计,上线的太匆忙了。

我们建议广大区块链生态的项目方,在产品上线前进行充分的测试,并找慢雾科技这样专业的区块链安全公司进行安全审计,把安全漏洞扼杀在产品上线前。

链安:

从安全角度体现出作为当红项目,YAM首先在内部的开发管理上存在问题。其实rebase本身是其机制中的一个常见操作。先不说第三方审计,他们为什么没有充分的代码检查和单元测试?这确实很令人费解,因为只要做内部用例测试,这样的问题也很容易暴露出来。

你能想象银行上线一个涉及现金操作的功能,不首先进行充分的单元测试吗?

所以,这里体现了Defi相关开发服务公司的安全管理和技术能力亟待提高,也需要我们第三方安全公司的协助。

主持人:画重点:YAM这次失败其实是个犯了个低级错误。

第二个问题:不少人说DeFi现在虽热,但其整体发展仍然任重而道远。作为区块链安全团队,你们认为现在DeFi项目中主要存在哪些风险?

链安:

在我们看来,在Defi中主要涉及三类安全问题:

1、核心业务本身的技术安全问题

也就是智能合约开发过程中一些代码和逻辑本身的安全防护不好,YAM这次就是典型的这类问题;

2、规则和金融模型的安全问题

因为智能合约本身是对Defi在各类金融业务场景中规则和逻辑的实现,所以哪怕这个过程在技术上没有问题,如果规则本身考虑不妥,也有被他人利用规则漏洞的空间,也会对使用者的资产造成威胁。某种程度来说这已经是“金融安全问题”;

3、生态的安全问题

底层是否有足够的支撑,或者生态上是否有足够的工具和机制保障。典型的就是“假币”问题。这也是Uniswap上热议的一个问题,按理说这似乎不是Uniswap的技术问题,但确实造成了投资者的风险。长期来看也势必会影响平台的发展。

你能想象在现实世界中,一个假币充斥没人管的市场能够长期发展吗?最近波场的JustSwap上线后也因为假币问题遭受非议。所以,相关Defi项目,特别是志在营造生态的项目,必须有所考虑。

这三个问题也是我们在区块链安全中此前一直分享的,区块链领域安全认知的三次升级和扩展:技术安全、金融安全和社会、生态安全。

慢雾:

慢雾已累计对十几个DeFi项目进行过安全审计。根据慢雾对这些DeFi项目的安全审计经验,我们发现目前大部分DeFi项目的智能合约研发人员对DeFi安全漏洞缺乏经验,很容易在开发过程中引入安全问题。

比较通用的安全问题有:权限控制漏洞、拒绝服务漏洞、重放攻击漏洞、随机数漏洞等。

除此之外,业务逻辑漏洞是比较特殊的一种。DeFi项目因为有很多独创性的玩法,容易在某些极端情况下,由于考虑不周存在漏洞

我们在安全审计的过程中,会全面、深入的理解DeFi项目的业务逻辑、经济模型等内容,经常反复阅读技术白皮书,并同项目方进行深度的技术沟通。在此过程中,双方会碰撞出很多业务逻辑上的缺陷和增强点。

主持人:第三个问题:接上个问题,没有经过安全审计的DeFi项目可能会出现什么问题?在审计过程中,你们会重点关注哪一部分?

链安:

首先说一句有可能是废话的:可能出现任何问题

你可以想象,如同YAM这样的极受关注的项目都能出问题,还有什么Defi不能出问题?

况且,随着Defi的火热,相关项目方越来越多。我们回顾1CO的时候,当时进入的项目方是不是良莠不齐?可能找人编个白皮书,抄份合约代码就上?

但也因为如此,当时很多有问题的代码就在这个过程中大面积复制到各个项目的代码中。典型的就是“整型溢出”问题。当时有个美链,大家应该还记得,安全问题暴露后媒体的标题也是“一行代码增发。。。”,不光是它,很多合约都有这个低级错误。

如今的Defi一样,很多都是相互模仿,找来代码改改,中间的“带病代码”很多,安全隐患很大。在我们的审计中,我们会有专门的Check List,一项项去检查,首先还是技术问题,那些明显可能被利用的安全问题需要指出来。

另外,还有一类问题是逻辑问题和业务问题,比如我们会指出一个重要的操作的权限控制需要注意,一个业务可能缺少一个限制会被滥用。这些考验的是我们对业务的理解,以及与项目方的沟通,尽可能协助他们在技术安全问题之外发现更多潜在的隐患。

我们力求与Defi开发方一起,从技术与规则上全面封堵漏洞。

慢雾:

没有经过安全审计的DeFi项目,可能会出现的问题很多,例如合约内资产被盗、代币总量莫名被增发等。就如王延巍所王总说的,可能出现任何问题。

我们在安全审计过程中,除了审计常规的安全checklist外,还会特别关注项目的业务逻辑和相关独创性的设计。

常规的安全审计checklist,我们公开到了慢雾官网 slowmist.com ,感兴趣的朋友可以去查阅下,这部分的目标是确保合约代码不存在已知的安全风险。

我们特别关注的业务逻辑审计点,在前一个问题里也有提到,我们会全面、深入的理解DeFi项目的业务逻辑、经济模型等内容。经常反复的阅读技术白皮书,以及和项目方进行深度的技术沟通。在此过程中,双方会碰撞出很多业务逻辑上的缺陷和增强点,把安全风险扼杀在产品上线前。

问题四:我们最近也看到了,一位匿名开发者花费20个ETH提前部署了热门DeFi治理代币CRV合约,导致Curve用户对不公平的 "预挖矿 "进行指控,为什么会出现这种情况?如何才能避免?

链安:

我们认为,从技术角度,这这个问题与一个币出了分叉币,全靠社区认谁不同。由于Curve算是有明确的“官方”的项目,抢发其实已经类似于“假币”问题。什么是“假币”?非官方的就是“假币”。

这歌问题也不是Defi独有的。此前我们熟悉的,也是刚被警方打掉一个团伙的所谓的“HT搬砖套利”骗局,就是这个逻辑。只有火币发行的HT才是真的火币平台代币。

上图是当时的“盛况”。

Curve这件事与此类似。要是谁都能部署一个同样代码的合约去倒腾出CRV,那就乱了。

解决这个问题的核心是行业要达成共识,大家要认同官方的的CRV。其它合约下的CRV,交易所不收,钱包警示,社区排斥。甚至是否可以上升到法律层面。

慢雾:

根据Curve官方的推特,我们可以知道事情的来龙去脉,其中的关键点是:

1、匿名开发者部署的合约代码来自Curve官方GitHub,因为合约代码是开源的,这点没啥问题;

2、Curve官方在审查后表示,该合约的管理员秘钥都是正确部署的。这个原因我没有去详细调查,可能是Curve官方之前在主网部署过测试合约,里面带有这部分admin key(管理员密钥)。

Curve这个问题比较尴尬。建议其他项目方在开发、测试、预发布时,采用不同的部署环境。互相隔离开来,同时尽量不要采用已被标记过的钱包地址,避免被社区发现相关操作的痕迹。

主持人:今年上半年DeFi项目“闪电贷”引发的“bzx被盗”事件。暴露出目前DeFi系统性金融风险存在一定隐患。

问题五:想请教为什么会出现这类事故?未来应该如何避免此类事情再次发生?

慢雾:

bZx是今年2月份被黑的,过去差不多半年时间了。当时我们对bZx两次被黑始末进行了技术总结: https://mp.weixin.qq.com/s/XTMdy826NTRarKY3wVIdog 感兴趣的可以点击回顾。

从这个事件暴露出了DeFi的系统性金融风险,针对这个问题,我们之前给的建议是:

项目方在使用预言机获取外部价格的时候,应设置保险机制。每一次在进行代币兑换时,都应保存当前交易对的兑换价格,并与上一次保存的兑换价格进行对比。如果波动过大,应及时暂停交易。防止市场被恶意操纵,带来损失。

从现在来看,还可以引入成熟的预言机服务,例如Chainlink。它得到了众多DeFi 项目以及其他公链的肯定,当然还有其他的预言机产品,也可以进行调研、测试,选择最适合自己项目的。

链安:

这个bzx“被盗”就是前面我说的规则的安全问题,或者说金融的安全问题。

当时媒体报道的用词也很有趣,有的说“漏洞”,有的说“滥用”。一个倾向于技术角度,一个倾向于规则角度。还涉及这是“盗取”问题吗?可能实施者会说,我是按照你的规则在行事啊。

在我看来,这里核心还是规则逻辑的问题

对于这类问题,很可能纯代码角度推演很难马上发现问题。一方面需要的如启富说的规则上的机制问题,另外也需要的动态的安全监控机制

在bzx这事儿上,我们知道其实合约审计机构,1inch.exchange 在问题充分暴露前,就发现情况不对,并向项目方反映。而从1inch.exchange的口径来看,项目方竟然因为安全审计费用2000美元还是1500美元的这500美元差额就把这个问题放过了。这实在是因小失大,也是对用户的不负责。

作为Defi项目方,如果想做长久,对用户负责,从代码到上线,到运营期间都应该关注我前面提及的三个层次的安全问题,才能持续做大。

项目方需要关注动态的数据,需要和生态各方保持紧密的沟通,特别注意反馈上来的问题,包括主动建立“赏金猎人”机制。

另外,金融领域有个模拟相关金融系统风险承受力的做法叫“压力测试”。Defi项目方也应该注意动态的进行阶段性的检查和相关测试,以及时发现问题和做好特别情况的应对方案。

主持人:我们知道3月以太坊大跌导致部分DeFi项目出现暴雷的情况。

问题六:具体来说要如何防范DeFi的系统性风险呢?面临极端的行情波动时,现在的DeFi生态是否能承载?

链安:

我的看法是,Defi领域与1CO不同,1CO最后其实就是上交易所交易,再叠加一些基于交易所提供的诸如杠杆、衍生品的风险。而Defi本身已经在自己设计一些金融业务的规则

比如Uniswap设计的基于常数的看起来简单但是也有趣的市场价格发现机制。但这些机制也将迎接此起彼伏的极端行情挑战。我很怀疑其中大多数项目的承受力。

比如前面提到的“压力测试”,新的Defi项目有没有考虑过哪怕逻辑上复盘一下“3.12暴跌”,评估项目在这样的情况下会发生什么?能否承受?

在3.12,甚至Maker也遭遇了麻烦。但是我们也看到Maker挺过来了,不管中心化还是去中心化,在极端情况下它采取了得当的措施就值得肯定。Defi在今天更加红火,但是这也意味着一旦下一次危机到来,波及的范围更广,需要兜底(如果愿意)的窟窿可能更大。

如今Defi的火爆,已经让以太坊出现拥堵和手续费大涨的情况,一旦爆发危机是否会迅速升级为严重的流动性危机?这是很考验Defi生态的

在项目方热衷解析其模式创新性的时候,我们很少看到有人说风控,以及面对极端情况是否有应对方案,用户最大可能遭受的损失是什么。我认为Defi项目方需要对自己的模型做一定的“压力测试”来准备可能的风险。

慢雾:

关于防范DeFi的系统性风险问题,王总讲的很专业,我简单补充下我的观点。

我觉得在应对系统性风险问题时,成熟有效的风控机制(如熔断保护)是很关键的。它能让项目具有稳健的能力来对抗“黑天鹅”事件。

我前几天在朋友圈里看到这样一句话:

“YAM收益依赖于YFI,YFI收益依赖AAVE,AAVE收益依赖COMP,COMP收益依赖MKR,这是不是defi的次贷泡沫呢?”

目前DeFi的火热,与此有很多关联的(套娃)

假如再次遭遇312那样的暴跌行情,目前的DeFi项目可能会出现连锁反应。如果这些项目没有考虑过币价暴跌的场景应对,等真的发生这样的事情的时候会发生什么就很难想象了。

主持人:

问题七:请问目前普通投资者在投资DeFi项,需要了解哪些知识才能更好地确保资金安全?

慢雾:

我给一点通俗易懂的建议。普通投资者,在参与DeFi项目前,尽量选择那些上线时间超过半年,且曾经有经过安全审计的项目。

同时,尽可能关注这些DeFi项目的实际运行情况,找找交易数、用户数等指标。在同类项目间做些对比,这样才能保证自己的币不会没掉。

我给的这个建议比较保守,当然很多新项目涨幅很大,经常几天就翻倍。高收益也带着高风险,毕竟那些跑路的项目你可能没关注到。

链安:

说实话,对于用户来说,真挺难的,真挺被动的,比如YAM这事儿,你说一般投资者谁知道这么一出啊。

安全方面,尽可能控制风险的措施,我能想到的有这些:

1、先确保参与项目的安全性,最起码做了专业安全公司的第三方安全审计,一般做了安全审计的项目都会有说明;

2、当然,有可能你也搞不懂技术细节,弄不清安全审计是啥东西。如果你投资的关注点是Defi代币,这里说个讨论Defi情况下砸场子的话,建议去投资大的中心化交易所交易上线的Defi币。尽管这会让你的投资可选品种受限,但起码他们会做一些安全工作,多少有些门槛,会过滤掉一些有明显安全问题的项目。

3、和交易所一样,如果Defi项目遭遇安全攻击或者极端行情受到同样的损失,大平台可能扛得住,小平台可能彻底关门走人。所以一般投资尽可能参与成规模的,特别经过了一些特别的市场行情考验的项目。

4、关于“打新”,很多人去Uniswap就是要打新。土狗要打,哪怕知道是个鬼也要打,特别在诸如“你错过了X,不能再错过下一个百倍币Y”之类的蛊惑下。

闭眼打新这个在早期可能可以,但是越到后期风险可能越大。一方面参与的人多了,另一方面借不怀好意套路多的项目方可能也就多了。包括可能抄来抄去有问题的合约代码也多了。所以建议各位谨慎参与新项目,特别来路不明的项目。

这方面我和启富一样的保守 。

互动问答环节

1、币放在defi项目锁仓挖矿安全吗?会不会跑路?

慢雾:

选择有经过安全审计的挖矿项目,如果有后门,安全公司一般会提出来这部分风险。

链安:

老规矩,去投资经过安全审计的,有品牌保证的项目,跑路概率很小。来路不明的项目很可合约里就留有跑路后门。

2、defi还能火多久,会不会像之前ico,ieo一样割一波就凉凉?ya**.0还能不能玩,会不会像yam一样崩盘?

慢雾:

热点年年有,今年特别多。项目发展的非安全问题,这个没人敢保证。

链安:

这两个本质上是一类问题。是泡沫总要破灭。我们作为安全公司尽可能避免一些项目因为安全问题的破灭。

3、一般defi项目都怎么找审计方呢?还有代码和经济模型哪个会更看重一些?

慢雾:

国内外都有很多区块链安全公司,例如我们慢雾和北京链安知名度都不错的。

4、crv能跑路吗?

链安:这个项目方的道德风险需要经过时间考验,CRV从团队来看目前还算值得信赖。

5、DeFi现在套娃那么多,你们觉得这些锁仓有水分么?

链安:有。

我觉得启富那个次级贷比喻特别好,真的是可能一个极端行情触发连环暴雷。

5、你们的客户做defi的里面,哪个最有钱啊?

链安:客户都比我们有钱。

以上就是这篇关于Defi安全问题的笔记全部内容。

—-

编译者/作者:行走

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...