YFI出手,能否挽回酸黄瓜Pickle的颓势?
11月24日晚上, DeFi 协议Pickle Finance宣布并入yearn.finance,从目前来看,这或许是Pickle应对黑客攻击的最好解决方案。
根据YFI创始人Andre Cronje的文章,Pickle和Yearn的开发人员已经设计出一种结构,可以使两个项目能够共生地协同工作,合并是为了减少重复的工作,增加专业化程度,共享专业知识。
为什么Pickle会和Yearn进行合并呢?21日,由于Pickle的一个漏洞,导致其损失了近2000万美元的DAI,该漏洞利用了涉及Pickle的DAI pJar策略,该策略利用Compound协议通过DAI存款来获得收益。攻击发生之后,一群白帽黑客与Pickle团队取得联系,并在此之后紧密合作,这其中就包括Yearn核心开发人员。
受到Pickle被攻击的影响,PICKLE代币从23.27美元一路跌至8.70美元低点,暴跌62%。后期基于Pickle团队的积极作为,价格开始逐渐回调,受到Pickle与Yearn合并消息影响,直接反弹至攻击后最高点20.1美元。
攻击回顾
首先了解一下Pickle是什么?Pickle是一种收益汇总服务,通过向以太坊、其他稳定币或其原生数字资产PICKLE提供的利息和代币支付,奖励向其各种稳定币池提供流动性的用户。Pickle的目标很明确,帮助脱锚的稳定币能够不断趋近于锚定价格。
9月10日Pickle正式开启流动性挖矿,在此之后,V神还曾发推称赞Pickle,使其代币价格暴涨超10倍,从6美元直接飙升超过80美元。
而21日的攻击,导致Pickle不仅损失了近价值2000万的DAI,与此同时,10小时之内其代币PICKLE价格直接腰斩,从高点的23.27美元,骤跌至8.7美元,而市值又蒸发近1500万美元。
来源:coingecko
对于Pickle被攻击过程原因,慢雾科技进行了简单的描述。总结而言,攻击者通过调用Controller合约中的swapExactJarForJar函数时,伪造_fromJar和_toJar的合约地址,通过转入假币而换取合约中的真DAI,完成了攻击获利。具体分析如下:
1.伪造Jar,设定抽取合约的DAI数量
项目的Controller合约中的swapExactJarForJar函数允许传入两个任意的jar合约地址进行代币的兑换,其中的_fromJar, _toJar, _fromJarAmount, _toJarMinAmount都是用户可以控制的变量,攻击者利用这个特性,将_fromJar 和_toJar都填上自己的地址,_fromJarAmount是攻击者设定的要抽取合约的DAI的数量,约2000万DAI。
2.合约中获取token:DAI
使用swapExactJarForJar函数进行兑换过程中,合约会通过传入的_fromJar合约和_toJar合约的token()函数获取对应的token是什么,用于指定兑换的资产。而由于_fromJar合约和_toJar 合约都是攻击者传入的,导致使用token()函数获取的值也是可控的,这里从_fromJar合约和_toJar合约获取到的token是DAI。
3.兑换发生,真假token转移
此时发生兑换,Controller合约使用transferFrom函数从_fromJar合约转入一定量的ptoken,但是由于fromJar合约是攻击者控制的地址,所以这里转入的ptoken是攻击者的假币。同时,因为合约从_fromJar合约中获取的token是DAI,然后合约会判断合约里的资金是否足够用于兑换,如果不够,会从策略池中赎回一定量的代币,然后转到Controller合约中。在本次的攻击中,合约中的DAI不足以用于兑换,此时合约会从策略池中提出不足的份额,凑够攻击者设定的2000万 DAI 。
4.兑换继续
兑换继续,Controller合约在从策略池里提出DAI凑够攻击者设定的2000万DAI后,会调用_fromJar的withdraw函数,将攻击者在第三步转入的假ptoken burn掉,然后合约判断当前合约中_toJar合约指定的token的余额是多少,由于_toJar合约指定的token是DAI,Controller合约会判断合约中剩余DAI的数量,此时由于第三步Controller合约已凑齐2000万DAI,所以DAI的余额是2000万。
5.DAI转入攻击者控制合约中,获利完成
这时Controller合约调用_toJar合约的deposit函数将2000万DAI转入攻击者控制的_toJar合约中。到此,攻击者完成获利。
值得注意的是,这与前几天发生的闪电贷套利性质并不一样,这不是一次套利事件,因为导致Pickle被攻击的漏洞与一个月前在Yearn中发现的漏洞类似。
多方反应
漏洞攻击之后,Pickle官方团队的反应还算迅速,与一群白帽黑客合作开始研究情况,防止进一步的损失发生,并在推特和medium上表示将实时更新调查结果。
来源:Pickle推特
由于存在攻击风险的Pickle jar中仍有5000万美元,Pickle官方在一小时之后又紧急发出警告,鼓励所有LP(即农民)从Jar中提取资金,直到问题得到解决。
23日晚,Pickle官方表示已执行时间锁可撤销违规代码,恢复部分Jar存款,但是强调暂时还是不要将钱存入DAI Jar。
24日早,Pickle官方发推称,针对攻击事件损失的资金,正在与几家区块链分析公司合作进行追踪。虽然依靠这些举措挽回损失的几率很小,但官方不会发行任何IOU代币(IOU代币能够提供一部分现金流和补偿性质的质押池奖励释放),不会妨碍协议本身发展。
24日晚, Yearn 创始人Andre Cronje发文表示,Pickle和Yearn的开发人员已经设计出一种结构,以使两个项目可以共生地协同工作。两者正式合并,一个相对而言比较圆满的结局出现了。
官方在攻击两天之内的回应和操作虽然及时,但是2000万美元损失已经造成,很多用户在推特上抱怨损失惨重。其中CNBC主持人Ran Neuner也是受害人之一,他自称是Pickle持币大户,无法原谅2000万美元被盗的行为,但还是选择相信Pickle会恢复的。
此外,基于Pickle Jar是Yearn yVaults的分叉,而且Yearn曾出现过相似漏洞,引来不少争议。攻击事件不久,Yearn官方不得不正面回应,表示Yearn没有任何资金存入Pickle Finance产品,yVaults也没有受到最近Pickle Finance被盗事件的影响。
两者合并
24日晚,Andre Cronje发文称,Pickle和Yearn将要协同工作,意味着Yearn接下了Pickle的烫手山芋。
来源:推特
关于两者合并的关键点内容如下:
1. Pickle Jars和Yearn’s v2 Vaults合并;
2. Pickle推出奖励Gauges,Pickle释放仍然存在,代币通过奖励Gauges分配;
3.Yearn Vault储户可以通过将Vault份额存储在Gauges中来获得额外的奖励;
4. Pickle Governance参与者将Pickle锁定在设定的到期日获得投票权,并获得DILL;
5. Yearn vault可以通过锁定Pickle得到DILL获得额外的奖励,最高可达2.5倍,他们持有的DILL越多,奖励就越大;
6. Gauge存款、取款、履约和协议费用归DILL持有人;
7. 一个跟踪最近Jar攻击所造成的损失新代币CORNICHON,按比例分配给攻击的受害者。
本质上来讲,Pickle Jar是Yearn yVaults的分叉,Yearn一直以来也将Pickle视为“弟弟”般的存在,在攻击之后,Yearn的核心开发人员也在积极地同Pickle开展合作,对于Pickle被并入Yearn,似乎也是意料之中,在外界看来,两者合作也是双赢的。
Pickle和Yearn社区对于合并的反应也是非常支持,但是引来了更多用户对于去中心化的质疑。因为在这次合并中,Pickle和Yearn社区都没有任何发言权。Yearn的tracheopteryx直接表示没投票的原因是因为没什么可投票的。
不得不承认的是,从多个DeFi项目的发展来看,核心开发人员确实拥有核心发言权。当然Pickle在这种情况下,选择与Yearn合并,确实是挽救Pickle并实现社区利益的最大化的不二之选。
小结
Ran Neuner在推特中曾表示,“每一次黑客攻击,每一个漏洞都使DeFi更强大”,但是现实如此?一个月前相似的漏洞已经被警示过,而一个月之后Pickle却因相似漏洞被攻击损失近2000万美元。
对于曾经已经进行过安全审计的Pickle而言,还出现如此漏洞,更是使Pickle深陷舆论,同时安全审计公司的审计操作以及DeFi的安全问题再次引发用户热议。
对Pickle进行过安全审计的审计公司Haechi22日澄清,10月进行了一次审计,但是攻击者利用的漏洞发生在新创建的智能合约中,而不是接受安全审计的智能合约中。与此次漏洞攻击相关的代码是“controller-v4.sol”中的“swapExactJarForJar”;而此前的安全审计是针对“controller-v3.sol”,不包含“swapExactJarForJar”。
Pickle 攻击事件,再次敲响DeFi安全警钟,安全审计也并非是一次性的,而必须是一个循环往复、多次查漏的过程。同时DeFi会成为黑客的天堂还有一个很重要的原因就是DeFi项目的快速开发,太过逐利导致漏洞百出。最近DeFi逐渐回归平静,也希望能够过滤掉逐利者,给开发者更多时间研发优质的DeFi项目。
==
和11万人同时接收最新行情资讯
搜“鸵鸟区块链”下载
和2万人一起加入鸵鸟社群
添加微信ID:tuoniao02