以 Venus 为例解析 BSC 中 DeFi 借贷操纵问题

    目前针对DeFi借贷操纵问题的解决方案包括严格控制借贷抵押物的种类、调整抵押率以及降低用户借贷份额。5月份BSC公链中的DeFi项目遭受了上亿美元的损失,来源包括曾发生在以太坊上的闪电贷攻击,智能合约漏洞,机枪池策略错误,以及DeFi借贷中的操纵行为。漏洞和策略失误可以通过项目完善和迭代改进,闪电贷以及操纵行为则是在规则框架内进行,很难加以预防,在攻击前无法发现。DeFi中有人获利的同时就有人损失,攻击事件会对项目造成极大的负面影响。在BSC中DeFi操纵事件中,Venus的损失最为严重,单次造成了近亿美元的坏账。本文将以Venus操纵事件为例,对DeFi借贷中的操纵行为进行分析。Venus操纵事件始末Venus是BSC中最大的借贷项目,在BSC公链所有的DeFi项目中,锁仓量排名第二,为26亿美元,与Sushiswap在同一数量级。Venus在巅峰时锁仓量超过150亿美元,一度超过PancakeSwap成为第一,甚至超越了以太坊上所有的DeFi项目。除了借贷,Venus的功能还包括超额抵押合成稳定币VAI,整体上是Compound和MakerDAO的结合体。实现借贷的方式仿照Compound,用户先存入代币换成vToken,再使用vToken实现超额抵押借贷。白皮书最初设定的抵押率在40%-75%之间,如果抵押物价格下跌抵押品不足则会触发清算。Venus中的决策例如调整抵押率,添加新品种抵押物等,是通过XVS治理代币实现。XVS的初始分配是以fairlaunch的方式分配,通过币安的LaunchPool以及借贷和铸造稳定币挖矿获得。2021年5月18日晚,币安交易所中的XVS出现了不正常的上涨,不到两个小时上涨近一倍,随后的四个小时内又迅速下跌了50%,最终恢复到原来的价格。虽然暴涨暴跌在加密货币中很常见,但这次XVS的价格波动,尤其是下跌中触发清算导致Venus协议近亿美元的坏账损失。图1:5月18日晚币安中XVS的价格变动币价的迅速下跌代表清算是快速发生的,类似的清算在2020年3月12日的加密货币市场经历过一次。受到加密货币市场大幅下跌的影响,市场中的借贷类DeFi发生大规模清算,其中清算数额最大的是MakerDAO。由于清算拍卖系统失效,系统中的债务未能即时偿还,最后增发MKR来弥补损失。

    在2020年11月Compound同样出现了大规模清算事件,由于Coinbase上的DAI价格升高,触发了与DAI相关的清算,清算品价值八千多万美元。Venus中的清算事件与上述借贷产品同理,且抵押品价值高达两亿多美元。不同的是Venus中的XVS价格波动并非由完全由市场行为形成,而是有人刻意操纵。Venus协议使用了Chainlink预言机,将XVS的链下价格传到链上参考。虽然Chainlink的数据来源较为去中心化,但XVS的交易量集中在币安交易所,所以Venus上的XVS主要以币安上的价格为参考,操纵者也就选择了币安作为主战场。从链上地址可以看出,操纵者首先在Venus合约中借贷,再将借贷来的资金转移到币安中,推高抵押物的价格,以便扩大借贷的规模,而且从币安推高价格获得的抵押物还可以再次用于借贷,直到借贷规模达到操纵人的预期。图2:链上地址的交互以参与操纵的其中一个地址举例(0xef),具体过程如下,操纵者首先在链上发起了一笔XVS的抵押贷款取出BBTC(BSC中的BTC),之后通过一个中间地址转移到币安的一个充币地址(因为该地址只向币安热钱包转账)。虽然没有链上的证据显示操纵人用这笔BTC购买拉高XVS的价格,但之后币安热钱包转回地址了一笔XVS。从时间上也可以侧面印证操纵者是使用借贷的BTC进行了对XVS的购买拉盘行为。该地址在22:43进行了一笔XVS抵押借出BBTC的交易,并在22:44将BBTC提现到币安,币安交易所上显示XVS在22:47开始拉升,之后在22:56币安热钱包将XVS转移回该地址中。拿到XVS后,该地址再次将其抵押到合约中借出BBTC,之后再将其转移到币安中购买拉盘XVS,之后不断重复。最终此地址在5月19号1:44停止借贷,币安中的XVS从1:51开始大幅下跌,同时该地址抵押的XVS被大规模清算。图3:地址中的XVS被大规模清算后期的官方报告称,由于价格下跌,该账户中持有的130万枚XVS遭到清算,损失了约6600万美元,并且该地址的债务由于清算不及时导致协议损失了7700万美元,官方将使用VenusGrant中的分配基金来弥补损失。综合来说,这次损失并非源自黑客对协议漏洞的攻击,而是在规则内进行的价格操纵借贷。由于触发清算时和清算后该地址没有表示出偿还债务的意愿,可以判断这是一次恶意操纵行为。市场操纵的发生条件以及获利分析在《DeFi系统的命门——经济攻击的一般模式》(2021年第16期)中归纳总结了闪电贷的攻击的方式,将其分为哄抬套利和操纵预言机。Venus的操纵事件类似于哄抬套利和操纵预言机的结合体,最终是要哄抬价格进行借贷套利,但需要操纵币安上XVS的价格进而操纵预言机。在预言机抬高抵押品价格后,再使用Venus扩大借贷规模。

    相较而言,闪电贷攻击的门槛较高,需要自行编写智能合约,设计所有的交易路径,还有被frontrunning的可能。同一路径的闪电贷攻击只能进行一次,因为攻击套利后策略会被公开,被套利的合约将阻止再次发生套利行为。而Venus中的操纵攻击在实际操作上简单且隐蔽,买入-拉高-扩大借贷的方式不需要操作上的技术门槛。买入拉高的行为与普通市场行为无异,如果没有与地址的后续行为联系起来,很难认定所有者在操纵价格,同时地址的持续借贷也很难被判断为异常行为。并非所有类似的操纵行为都会获利,而是要满足一定条件。在进行操纵攻击时,要保证实现买入拉高的支出加上最初作为抵押品的支出少于抵押出的资金,操纵攻击就是获利的。因为这种条件下,用户是不会对抵押品进行赎回的,所有要将最初的抵押品算作操纵者的支出。在Venus操纵事件中,考虑到操纵者直接参与资产A的拉高过程,并将购买资产A获得的代币再用于借贷,而且由于价格上涨,原抵押代币可借出的代币也会变多,实际中对操纵者的获利分析更为复杂。我们这里将假设操纵者总能获得最大收益,即用户重复进行的n次借贷拉升操作,每次都将借贷获得的B代币用于拉高A代币的价格,再将新获得的A代币用于借贷,同时扩大原抵押A代币的借贷额度,在这个过程操纵者不断扩大债务。最终在第n次操作结束时,操纵者手中的可自由转移的金额为第n-1次操作拉升获得的A代币的借贷以及n-1次之前所有A代币在拉升价格之后再扩大的借贷额度。假设在n次操作后A代币总数量为an<\sup>,价格变为pn<\sup>,那么操纵者手中的最终收益为图4:操纵者实现获利的条件因此,操纵者要保证在最后一次拉升A时,能够获得足够多的数量以及足够高的价格,且两者乘积越大代表操纵者获利越多。这种情况在市场中流动性不足时很容易出现,购买少量代币其价格会得到快速拉升。尤其是XVS总的流通量为一千万枚,当时这个地址占据了超过十分之一的流动性,那么价格很容易受到操纵。操纵行为的影响及启示操纵行为的形象此次操纵攻击事件,发生了大规模清算并出现了坏账,而且坏账完全由Venus平台承担,因此Venus承受了很大的经济损失。除此之外,由于借贷账户使用了大量的平台币XVS,同时在发生攻击前两周将XVS的抵押率从60%提高到80%,很多人认为价格被操纵与Venus团队有关,Venus平台的口碑也受到了很大影响。用户纷纷撤回借贷池的流动性,担心未来再出现类似事件,如果Venus平台不再补偿,受损的就是放贷的资金池。发生攻击事件后,Venus的锁仓量被PancakeSwap反超三倍多。以太坊的DeFi中相似定位的Compound和Aave在锁仓量上依旧长期占据第一位。

    在此次操纵攻击事件中,还有另外的受损和获利者。由于Venus在BSC生态中的地位与Compound相似,积攒了不少粉丝,前期XVS代币价格上涨时,有粉丝跟风购买,他们则在价格回落时受到了损失。与此对应的,那些在价格上涨时XVS的出售者,以及清算人在此次事件中获得了收益。在Venus官方给出的报告中,卖方获利5500万美元,清算人获利约2000万美元。无独有偶,Venus平台曾发生过类似的借贷操纵事件。1月份CAN代币在刚推出时就上线了Venus,有一个占有45%流动性的地址抵押CAN并借出大量BTC和ETH,然而CAN不可能维持这样的价格,就像XVS在高点时价格也是虚高的。在CAN事故中,Venus官方称通过与地址持有人协商追回了大部分资产,解决了Venus可能发生的危机。当初进行CAN抵押借贷的地址也曾将资金转移给币安,该地址与XVS借贷共用同一个币安充值地址,此次操纵攻击事件是否出于CAN事件主角的报复心理或者都是官方自导自演行为,我们不得而知,这里需要关注的是如何避免此类事件再次发生。操纵与防止操纵上文提到,借贷攻击事件都与操纵者掌握大量流动性有关,操纵者在价格高点抵押大量代币借出价格更不易波动的BTC和ETH。由于大量代币在被抵押,价格也是虚高的,加之操纵者不断购买,在停止购买时很容易出现大规模清算。这种借贷行为很难在发生过程中进行监控,因为在外界看来,这是一种不断加杠杆做多的行为,甚至由于将抵押物的价格推高还会受到欢迎。为了避免未来可能出现的大规模清算风险造成的系统风险,只能提前进行风险管理,例如降低借贷资产的抵押率,规定单个地址借贷上限,控制整体抵押品规模等。最重要的则是对上线允许作为抵押品的资质进行评估,可以参考流动性,地址分布,项目质量,整体市值等方面。严格的限制又会给DeFi使用者带来不便,而且对于抵押品是否会造成风险没有统一客观的标准。MakerDAO在以太坊上线之初就已诞生,并且抵押ETH铸造DAI的一个作用就是作为杠杆产品,用户可以扩大手中头寸。在ETH价格不变的情况下,用户不断进行抵押铸造再购买抵押操作,最多可以获得1/(1-c)倍的ETH头寸。如果用户抵押在MakerDAO中的资产足够多到影响整体流动性,不断购买则会直接推高ETH价格,就会发生类似于XVS价格操纵的事件。为了避免这种情况,MakerDAO规定了单一抵押物能创造的债务上限,也就是达到DAI的最大量。

    当达到债务上限时,不能再创造新的债务,只能在市场上进行交易,以此避免系统风险。资金池借贷的DeFi如果采取同样措施,限制单一抵押品的借贷规模,也可以达到避免风险的效果,但很少有借贷合约有这样的限制。原因之一是目前流行的借贷产品都是采取了资金池的方式,各资金池之间可以互相抵押借贷,用户在成为借款人的同时也是抵押资产的出借方。规定了单一抵押物的债务上限,如果「空气池」达到一定数量,还是会将「价值池」借空。原因之二是借贷资金池与MakerDAO的产品结构不同,如果DAI无限印发用于虚推抵押品的价格,当抵押品价格飞速下跌时,DAI也可能遭受很大损失。资金池借贷项目的风控重点在避免出现出借人挤兑危机,因此会设置单一资金池的最小储备系数,并且动态调整利率防止挤兑。以上重点讨论了通过控制流通量来操纵代币价格,除此之外,加密货币行业中的操纵行为并不少见且大部分都是不透明的。例如扩散虚假有迷惑性的新闻,在中心化交易所中进行增发来控制代币的价格,或者通过社交媒体中的引导人们情绪进行价格的操纵。例如在牛市熊市中受人们的情绪影响,市场中加密货币有时价格涨跌会高达20%甚至更多。监管方同样表示出对操纵行为的担忧,SEC就表示将对加密货币交易所采取更严格的监管,并调查可疑的社交媒体活动。思考与总结从Venus事件可以看出,操纵者的思路很简单,超额抵押获得贷款购买抵押物再扩大借贷。操纵者在抵押物XVS价格顶点共借出了大量BTC和ETH,随后XVS的价格下跌引起快速清算进而导致系统出现坏账。并不是类似的事件中操纵者都会获利,因为操纵者最初的抵押物将成为成本,而且过程中使用了大量的贷款所得用于拉高抵押物价格,这些会被拉升过程中的售出者赚取。抵押物的流动性被人控制且价格受到操纵,Venus因此蒙受损失。现实中的银行在放贷时会非常谨慎。而在加密货币市场的DeFi中,是允许用户自由借贷,无限做多。虽然可以监控贷款资金流向,却无法控制和禁止用户的使用方式,这既是DeFi的优势也是DeFi目前面临的问题。BSC中Venus操纵攻击已经因恶意借贷和做多对协议造成了大量资产损失,这其中的系统风险也是监管所担忧的。目前针对此问题的解决方案包括严格控制借贷抵押物的种类,调整抵押率以及降低用户借贷份额。但在这方面最领先的Compound还因预言机的问题遭受过大规模清算。未来DeFi借贷在确保安全和提升用户体验上还有很长的路要走。监管对DeFi借贷业务的介入也是可能的方向。

声明:文章内容不代表本站观点及立场,不构成本平台任何投资建议。本文内容仅供参考,风险自担!

Pixel Artist Pixel Artist
Happy Kittens Puzzle Happy Kittens Puzzle
Penguin Cafe Penguin Cafe
Animal Connection Animal Connection
Snakes N Ladders Snakes N Ladders
Pixel Skate Pixel Skate
BeeLine BeeLine
Draw Parking Draw Parking
Draw Racing Draw Racing
Soccer Balls Soccer Balls
Happy Fishing Happy Fishing
Crashy Cat Crashy Cat

FREE GAMES FOR KIDS ONLINE