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

百款NFT链游免费玩 数字货币支付图解教程 区块链游戏获利技巧

目前针对 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 的初始分配是以 fair launch 的方式分配,通过币安的 LaunchPool 以及借贷和铸造稳定币挖矿获得。

2021 年 5 月 18 日晚,币安交易所中的 XVS 出现了不正常的上涨,不到两个小时上涨近一倍,随后的四个小时内又迅速下跌了 50%,最终恢复到原来的价格。虽然暴涨暴跌在加密货币中很常见,但这次 XVS 的价格波动,尤其是下跌中触发清算导致 Venus 协议近亿美元的坏账损失。

以 Venus 为例解析 BSC 中 DeFi 借贷操纵问题图 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 合约中借贷,再将借贷来的资金转移到币安中,推高抵押物的价格,以便扩大借贷的规模,而且从币安推高价格获得的抵押物还可以再次用于借贷,直到借贷规模达到操纵人的预期。

以 Venus 为例解析 BSC 中 DeFi 借贷操纵问题图 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 被大规模清算。

以 Venus 为例解析 BSC 中 DeFi 借贷操纵问题图 3:地址中的 XVS 被大规模清算

后期的官方报告称,由于价格下跌,该账户中持有的 130 万枚 XVS 遭到清算,损失了约 6600 万美元,并且该地址的债务由于清算不及时导致协议损失了 7700 万美元,官方将使用 Venus Grant 中的分配基金来弥补损失。综合来说,这次损失并非源自黑客对协议漏洞的攻击,而是在规则内进行的价格操纵借贷。由于触发清算时和清算后该地址没有表示出偿还债务的意愿,可以判断这是一次恶意操纵行为。

市场操纵的发生条件以及获利分析

在《DeFi 系统的命门——经济攻击的一般模式》(2021 年第 16 期)中归纳总结了闪电贷的攻击的方式,将其分为哄抬套利和操纵预言机。Venus 的操纵事件类似于哄抬套利和操纵预言机的结合体,最终是要哄抬价格进行借贷套利,但需要操纵币安上 XVS 的价格进而操纵预言机。在预言机抬高抵押品价格后,再使用 Venus 扩大借贷规模。

相较而言,闪电贷攻击的门槛较高,需要自行编写智能合约,设计所有的交易路径,还有被 front running 的可能。同一路径的闪电贷攻击只能进行一次,因为攻击套利后策略会被公开,被套利的合约将阻止再次发生套利行为。而 Venus 中的操纵攻击在实际操作上简单且隐蔽,买入-拉高-扩大借贷的方式不需要操作上的技术门槛。买入拉高的行为与普通市场行为无异,如果没有与地址的后续行为联系起来,很难认定所有者在操纵价格,同时地址的持续借贷也很难被判断为异常行为。

并非所有类似的操纵行为都会获利,而是要满足一定条件。在进行操纵攻击时,要保证实现买入拉高的支出加上最初作为抵押品的支出少于抵押出的资金,操纵攻击就是获利的。因为这种条件下,用户是不会对抵押品进行赎回的,所有要将最初的抵押品算作操纵者的支出。

在 Venus 操纵事件中,考虑到操纵者直接参与资产 A 的拉高过程,并将购买资产 A 获得的代币再用于借贷,而且由于价格上涨,原抵押代币可借出的代币也会变多,实际中对操纵者的获利分析更为复杂。我们这里将假设操纵者总能获得最大收益,即用户重复进行的 n 次借贷拉升操作,每次都将借贷获得的 B 代币用于拉高 A 代币的价格,再将新获得的 A 代币用于借贷,同时扩大原抵押 A 代币的借贷额度,在这个过程操纵者不断扩大债务。

最终在第 n 次操作结束时,操纵者手中的可自由转移的金额为第 n-1 次操作拉升获得的 A 代币的借贷以及 n-1 次之前所有 A 代币在拉升价格之后再扩大的借贷额度。假设在 n 次操作后 A 代币总数量为 an,价格变为 pn,那么操纵者手中的最终收益为

以 Venus 为例解析 BSC 中 DeFi 借贷操纵问题图 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 借贷业务的介入也是可能的方向。

百款NFT链游免费玩 数字货币支付图解教程 区块链游戏获利技巧