NCE:首发 | Harvest.Finance攻击事件分析

流动性挖矿(YieldFarming)是近期DeFi领域中的最热话题,以各种食物为主题的流动性挖矿似乎每日都能凑成一桌饕餮盛宴,大爆炸式地将新的DeFi概念灌输给投资者与用户。

每天新的流动性挖矿项目都会出现,同时旧项目也在退出人们的视野。对于这些项目“新人哪闻旧人哭”的快速交替,身为以建立区块链健康安全生态为己任的CertiK,希望给大家带来更有价值的问题和答案:当我们在讨论流动性挖矿项目安全性的时候,讨论点和关注点都应该是什么?

安全这个话题难以简单概述,非细致的讲解不能窥探一二。

本文在此以Harvest.Finance为例,分析作为流动性挖矿项目其存在的安全风险。

Harvest.Finance,它的名字非常直观的说明了其设计意图——流动性挖矿。

该项目的代码已经开源,网站社区等也一应俱全。尽管Harvest.Finance的审计报告已公布,其项目中被审计部分的安全性目前可以被信任,但是这并不能说明Harvest.Finance的整体安全性得到了保障。

动态 | 在最新法庭文件中 Craig Wright声称获得96亿美元比特币的私钥:根据1月14日向美国佛罗里达州南部地区法院提交的一份法庭文件,此前提及的备受期待的“保税快递员”中间人已经到来,他“提供了解锁加密文件所需的信息和密钥片段”,表示CSW拥有解锁96亿美元比特币所需的私钥。Bloom法官对保税快递公司的存在和比特币争议的数量表示怀疑。CSW此前因未能出示其所持比特币的完整清单而被判藐视法庭。(CoinDesk)[2020/1/15]

CertiK安全研究团队从该项目智能合约出发,发现了该项目中存在与其他类似流动性挖矿项目同样的问题:治理中心化,即许多关键操作只允许项目管理者来进行,没有任何对项目限制者的限制手段,例如:

图1:DelayMinter.sol

参考链接:

https://github.com/harvest-finance/harvest/blob/master/contracts/DelayMinter.sol

动态 | Bitfinex的LEO销毁数据暗示鲸鱼在最近的价格反弹中起着重要作用:截至目前,Bitfinex已经进行了19天的销毁进程,其中有250万美元的LEO(约150万枚LEO)被销毁。根据总销毁量占其交易费收入的27%,可以推断出Bitfinex从交易费中获得了近1040万美元的收入。平均而言,Bitfinex每天赚取550,000美元的交易费。常规来看,Bitfinex上的交易量和交易费收入应该成正比例关系。不过在LEO销毁的前4天,Bitfinex上的交易收入和交易量之间的比率超过0.15%,但在过去两周内,该比率下降了38%,平均为0.1%。这可能意味着以下三件事:1.较大的客户在Bitfinex进行交易;2.Bitfinex还没有销毁足够的LEO;3.Bitfnex过度报告其交易量。其中,最有可能的原因是Bitfinex吸引了更多的大客户,因为大客户购买LEO时可以得到交易费折扣。而Bitfinex CTO也在推特上证实了这一理论。此外,交易量数据显示,6月22日(当BTC首次突破10,000美元时)的催化剂是Bitfinex的大宗交易。因此,这可能暗示鲸鱼在最近的价格反弹中起着重要作用。[2019/7/4]

图2:Governable

现场 | 范一凡: 以太坊现在最大的问题是性能瓶颈:金色财经现场报道,3月8日,大项区块链董事长范一凡在由金色财经主办的金色沙龙圆桌论坛环节表示,以太坊现在最大的问题是性能瓶颈。但是,他也指出,把当前的公链去和一些中心化的应用比较是不科学的,因为现在区块链还在非常早期,肯定无法跟它们比较。[2019/3/8]

参考链接:

https://github.com/harvest-finance/harvest/blob/master/contracts/Governable.sol

图3:Storage.sol

参考链接:

https://github.com/harvest-finance/harvest/blob/master/contracts/Storage.sol

图1中第102行起的函数executeMint()的功能是进行铸币操作,由于onlyGovernance的限制,使得只有于onlyGovernance许可的地址可以执行该函数,而onlyGovernance的定义来自于图2中14行与图3中27行的代码,最终从图3的28行可以看到所谓的“Governance”其实仅是指项目拥有者本身,并不是如名称所暗示指代一个管理委员会。

首发 | 蚂蚁矿机S17真机图首次曝光 采用双筒风扇及一体机设计 ?:继正式宣布在4月9日现货销售后,比特大陆即将发布的新品蚂蚁矿机S17又有了新动态。据悉,蚂蚁矿机S17真机图今天在网上首次曝光。

从曝光的图片来看,蚂蚁矿机S17延续上一代产品S15的双筒风扇设计,且采用一体机的机身设计。有业内人士认为,采用双筒设计可有效缩短风程,矿机出入风口的温差变小,机器性能将得到很大改善。

此前比特大陆产品负责人在接受媒体采访时表示,新品S17较上一代产品相比,无论是在能效比还是单位体积的算力等方面,均有较大提升。[2019/4/3]

通过观察代码可以了解到,该项目的治理与重要操作的控制权都被项目管理者据有,中心化程度极高,而这一点明显违背了以去中心化为基本的流动性挖矿项目的本质。

即便项目管理者加入了一个延迟操作的功能,并设置了每一个铸币操作都需要提前公布给社区,这依旧无法从根本上解决问题。尤其是当Harvest.Finance项目把延迟的时间期限设置为12个小时,这也违背了大部分人的作息规律。

IMEOS首发 BM表示EOS合约具有整数溢出保护:据金色财经合作媒体IMEOS报道:近日ETH出现多个ERC20智能合约的处理溢出错误,BM在推特上发表评论:新的ETH契约Bug可能会破坏整个Token的供应,让持有者留下无价值Token.这就算为什么代码不能成为法律,随即表示EOS erc合约不容易受到这种攻击。而EOS官方群也有人表示担忧EOS是否具有整数溢出保护?BM回应:有很多C ++模板类可以封装类型并检查溢出。[2018/4/25]

除了项目的治理中心化程度过高的通病,流动性挖矿项目同样存在被套利攻击的风险。

套利攻击是利用价格差进行低买高卖完成的以获利为目的的交易行为。已经发生过套利攻击的著名项目有Balancer和bZx。

10月26日Harvest.Finance项目也发生了套利攻击事件,损失超3380万美元。

对于此类攻击,需要弄清两个问题:

1.发生套利攻击的条件是什么?

2.为什么Harvest.Finance项目满足了这些条件?

发生套利事件需要的条件其实非常直观:可以完成低买高卖。

简化来说就是可以通过自己的交易或者操作来影响交易物的价格。

这种交易影响价格的手段可以是直接改变,也可以是改变交易物的数目来间接的影响价格。

流动性挖矿项目自身通过交易来铸币或者燃烧币的操作,十分容易满足改变交易物的操作要求。

一旦套利攻击者发现了可利用的攻击点,可以在没有风险的情况下当即利用闪电贷借取大额资金,将套利攻击的获利扩大。

图4:Harvest.Finance套利攻击的交易之一

参考链接:

https://etherscan.io/tx/0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877

图4所示交易是在此次发生于Harvest.Finance项目的套利攻击的其中一笔交易,攻击者通过查看该项目智能合约中控制铸造fUSDC代币数目的函数,发现铸造的代币数目依赖于其参考的Curve项目的计算公式,继而依靠闪电贷获得大量初始资金进行套利攻击。

攻击者的执行交易的流程大致如下:

1.闪电贷借贷得到大笔USDC和USDT;

2.利用借贷所得USDT通过Curve转换为USDC,提高USDC价格;

3.将获得的USDC存入Harvest.Finance项目的USDC储藏室(vault)中,同时Harvest.Finance会为该存入的行为攻击者铸造一定数目的fUSDC(铸造的数目受Curve影响);

4.?将初始借贷所得的USDC通过Curve转换为USDT,提高USDT的价格,同时USDC价格降低;

5.最终攻击者将持有额所有fUSDC转换回USDC,此时因为Curve中的USDC价格降低,导致影响了兑换回USDC的数目增加。

最终攻击者利用类似操作,完成了14笔利用针对USDC的套利交易,然后利用同样的思路,针对USDT完成了另外13笔套利交易。

根据官方报告,计算了攻击者返还给项目的1300万USDC和11万USDT之后,总损失超过2亿人民币。

在Harvest.Finance这次的套利攻击事件中,攻击者通过影响USDC、USDT代币的价格来进行套利。

因此,项目代币价格不能简单的依赖于其相对数目,而应该稳定建立于实时、有效、可靠的价格提供系统之上。例如目前的chainlink的价格预言机便可以一定程度上解决此类隐患。

当讨论一个流动性挖矿项目的安全性时,不应仅仅简单的查看程序代码、智能合约的安全,而需要查看更加深层的、逻辑性的漏洞,例如治理中心化以及代币价格控制逻辑可能导致的套利攻击风险。

传统的代码审计并不适合包括流动性挖矿在内的区块链项目。

面对此类项目,需要有经验丰富的区块链项目专业审计人员,从传统代码审计、逻辑审计、金融模型审计等多角度对项目的安全进行逐步且完备的审核,才可确保项目的安全。

迄今为止,CertiK已为超过200名机构用户提供了优质服务,保护了超过80亿美元的数字资产与软件系统免受安全损失。

欢迎搜索微信关注CertiK官方微信公众号,点击公众号底部对话框,留言免费获取咨询及报价!?

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-4:177ms