织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

Harvest.Finance攻击事件分析

时间:2020-10-27 18:34来源:未知 作者:admin 点击:
流动性挖矿(Yield Farming)是近期DeFi领域中的最热话题,以各种食物为主题的流动性挖矿似乎每日都能凑成一桌饕餮盛宴,大爆炸式地将新的DeFi概念灌输给投资者与用户。 每天新的流动性
流动性挖矿(Yield Farming)是近期DeFi领域中的最热话题,以各种食物为主题的流动性挖矿似乎每日都能凑成一桌饕餮盛宴,大爆炸式地将新的DeFi概念灌输给投资者与用户。 每天新的流动性挖矿项目都会出现,同时旧项目也在退出人们的视野。对于这些项目“新人哪闻旧人哭”的快速交替,身为以建立区块链健康安全生态为己任的CertiK,希望给大家带来更有价值的问题和答案:当我们在讨论流动性挖矿项目安全性的时候,讨论点和关注点都应该是什么? 安全这个话题难以简单概述,非细致的讲解不能窥探一二。 本文在此以Harvest.Finance为例,分析作为流动性挖矿项目其存在的安全风险。 Harvest.Finance,它的名字非常直观的说明了其设计意图 ——流动性挖矿。 该项目的代码已经开源,网站社区等也一应俱全。尽管Harvest.Finance的审计报告已公布,其项目中被审计部分的安全性目前可以被信任,但是这并不能说明Harvest.Finance的整体安全性得到了保障。 CertiK安全研究团队从该项目智能合约出发,发现了该项目中存在与其他类似流动性挖矿项目同样的问题:治理中心化,即许多关键操作只允许项目管理者来进行,没有任何对项目限制者的限制手段,例如:

图1:DelayMinter.sol

参考链接: https://github.com/harvest-finance/harvest/blob/master/contracts/DelayMinter.sol

图2:Governable

参考链接: https://github.com/harvest-finance/harvest/blob/master/contracts/Governable.sol

图3:Storage.sol

图1中第102行起的函数executeMint()的功能是进行铸币操作,由于onlyGovernance的限制,使得只有于onlyGovernance许可的地址可以执行该函数,而onlyGovernance的定义来自于图2中14行与图3中27行的代码,最终从图3的28行可以看到所谓的“Governance”其实仅是指项目拥有者本身,并不是如名称所暗示指代一个管理委员会。 通过观察代码可以了解到,该项目的治理与重要操作的控制权都被项目管理者据有,中心化程度极高,而这一点明显违背了以去中心化为基本的流动性挖矿项目的本质。 即便项目管理者加入了一个延迟操作的功能,并设置了每一个铸币操作都需要提前公布给社区,这依旧无法从根本上解决问题。尤其是当Harvest.Finance项目把延迟的时间期限设置为12个小时,这也违背了大部分人的作息规律。 除了项目的治理中心化程度过高的通病,流动性挖矿项目同样存在被套利攻击的风险。 套利攻击是利用价格差进行低买高卖完成的以获利为目的的交易行为。已经发生过套利攻击的著名项目有Balancer和bZx。 10月26日Harvest.Finance项目也发生了套利攻击事件,损失超3380万美元。 对于此类攻击,需要弄清两个问题: 1. 发生套利攻击的条件是什么? 2. 为什么Harvest.Finance项目满足了这些条件? 发生套利事件需要的条件其实非常直观:可以完成低买高卖。 简化来说就是可以通过自己的交易或者操作来影响交易物的价格。 这种交易影响价格的手段可以是直接改变,也可以是改变交易物的数目来间接的影响价格。 流动性挖矿项目自身通过交易来铸币或者燃烧币的操作,十分容易满足改变交易物的操作要求。 一旦套利攻击者发现了可利用的攻击点,可以在没有风险的情况下当即利用闪电贷借取大额资金,将套利攻击的获利扩大。 (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容