
图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项目满足了这些条件? 发生套利事件需要的条件其实非常直观:可以完成低买高卖。 简化来说就是可以通过自己的交易或者操作来影响交易物的价格。 这种交易影响价格的手段可以是直接改变,也可以是改变交易物的数目来间接的影响价格。 流动性挖矿项目自身通过交易来铸币或者燃烧币的操作,十分容易满足改变交易物的操作要求。 一旦套利攻击者发现了可利用的攻击点,可以在没有风险的情况下当即利用闪电贷借取大额资金,将套利攻击的获利扩大。郑重声明:本文版权归天网查所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。