Jason chen

Posted on May 13, 2022Read on Mirror.xyz

已经触底的luna又被薅走1000万美金是怎么回事?

昨天简直是币圈春晚,luna从最高110仅三天就暴跌至0.001,有人欢喜有人忧,我朋友圈有做空吃肉赚了大几十万的,也有被爆仓损失一年猪脚饭的(比如我..)羊毛没薅到还被羊踹了两脚,就在所有人的注意力都集中在鞭尸luna时,黑暗森林的猎人们已经悄悄的用其他方式赚到了1000万美金了。

    今早起床后看到群里在转发venus因为chainlink暂停价格更新损失1000万美金的新闻,不少读者让我帮忙分析一下这件事的来龙去脉。

    我们先拆解一下上述新闻的关键词:vneus、chainlink、价格更新,我们要先了解这三个关键词的含义后再梳理他们三个之间到底发生了什么。

     venus是币安BSC上的一个借贷协议平台,它背后的开发团队被币安收购,当你帐户上有闲置的token时可以将其抵押在venus从而获取利息收益,当你抵押token时,venus将mint出等值的vtoken,你可以将它理解成是收据,然后你要取回自己的抵押资产时,就把vtoken在venus燃烧掉,从而换回当初抵押进去的token。

    刚才说到的是抵押资产存钱获取利息的场景,同样你也可以从venus中借钱出来,前提是你需要先抵押一种token进去,然后才可以借出抵押品最多价值75%的另一种token,并需要支付利息,如我抵押价值1万元的BTC,则最多可借出等值7500美金的其他币种,但如果你的抵押品因为价格波动,总价值低于75%,而你又借出了75%的其他币种,就可能会被强制清算。

    好了关于venus的原理我们明白了,接下来看看chainlink是什么,它在这次薅羊毛事件中又扮演了什么角色。

    用户最多可以从venus中借取抵押品总价值的75%资产,那意味着在借入时需要对当前抵押物价值进行计算,这个计算过程使用的是一个叫Band Oracles预言机的东西,预言机光听名字好像很牛批,实际上就是一个第三方的数据处理检索工具,根据智能合约的请求将一些链外数据传递回链内。

    venus使用的预言机就是chainlink,当用户借钱时,chainlink会先去获取到用户抵押资产的最新价格,再发送给venus智能合约从而让其判断该用户可以借多少钱。

    我们进入合约中可以看到,当前对于luna最新的报价是10736482,这里用的是八位小数,即最小单位是0.00000001美金,故转化为美金的报价是每个luna 0.107美金。

    等等,0.107美金?luna不是早都跌到了小数点好几个零了吗?这怎么还是0.107美金?

    问题就是出在了这里,chainlink把价格给返回错了,不再更新最新的luna价格,而是卡死在了0.1美金。

    venus可以接收的抵押token共有25种,即venus不是什么破铜烂铁都收,所以它设置了一个token最低价格0.1美金,想着我经过精挑细选的这25个优质资产总不至于跌到0.1美金以下吧,结果没成想还真有一个,luna。

    我们先来看一下合约代码是怎么更新实时价格的,其中median是通过预言机获取到的价格,然后下面进行了一次校验,只有价格处于minAnswer和maxAnswer之间才是有效可以被更新上去的,否则不会被更新。

    minAnswer是啥呢?如下图,在合约中设定了最小结果是0.1美金。

    明白了吗,当实际的价格低于0.1美金时,不会被更新为有效价格,从而导致最后一次擦了0.1美金的边0.107被更新完后,就被卡死在这里而无法继续按照最新价格。

    那价格没有更新意味着什么呢?大肥羊可以薅啊,我可以按照远低于0.1的的价格去将luna质押给平台,可是平台则会按照0.1的价格给我估值,然后我再按照0.1的估值去借出其他的token,这一把操作稳赚啊(md我当时咋没发现呢)

    我们来看一个薅成功的用户都做了些什么,首先他先花了10万美金用BUSD兑换了六百万luna,那个时候每个luna价格是0.014,这时候预言机价格是实际价格的近10倍。

    接着他继续低价买入了大量luna,然后全部质押给了venus,借出来了110万美金BUSD。

    他总共产生了30次这样的借款行为,每次最少10万最多达到100万,差不多总共薅了500万美金左右,这已经不是薅点羊毛那么简单了,这是直接开纺织厂了啊。

    这次套利和之前文章中讲的不一样,是不需要任何技术手段,人肉手动操作一进一出就是十倍的利润,关键是这样隐藏的bug很难被人发现,而且即使发现了也要等到luna这种极端情况才能用得到,所以我估计可能他早就已经发现这些bug,但是非常有耐心一直在等待机会,不断的等,终于有一天luna出现了,于是果断出手实现狙击。

    注意,目前venus已经将该漏洞修补,无法继续套利。

    唉昨天luna一毛钱没赚到还赔进去几千U,今天还得分析别人是怎么赚到了几千万U,心痛,如果有读者从luna赚到钱了,麻烦搭上可怜的博主几顿猪脚饭。

    对了我们筹划已久的 DAO 内测啦,致力于建设成为最有影响力的 Web3 人才和项目孵化社区,拟建立投研、科学家、教育、项目孵化和运营、对外合作公会。内测阶段还剩余一些名额,如果你有意愿和能力成为Buidler,可以联系我,微信:cj350306878,请备注姓名 公司和职位,谢谢。

    如未授权请勿私自转载。

    

往期文章:

    

    

Luna