对于DeFi借贷协议,尤其是采用【超额质押】协议来说,【清算】机制是金融模型的重要环节。
清算的本质,是以低于市场价格的方式出售一部分抵押物,来支付借款人应向资金池归还的本金与利息,从而使得资金池得以持续健康运转。
一旦触发清算,用户将永久性的失去部分质押资产;如果遭遇类似3.12的剧烈行情波动,可能会造成链上拥堵,无法及时清算或面临高额的Gas损失。
Ruler协议是Cover团队推出的DeFi借贷平台,旨在实现【无需清算】且【费率固定】的数字货币借贷业务。
本文将从运行机制和风险分析等方面简要分析Ruler协议。
一、Ruler协议的核心参数
Beosin:sDAO项目遭受攻击事件简析:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin?EagleEye 安全风险监控、预警与阻断平台监测显示,BNB链上的sDAO项目遭受漏洞攻击,Beosin分析发现由于sDAO合约的业务逻辑错误导致,getReward函数是根据合约拥有的LP代币和用户添加的LP代币作为参数来计算的,计算的奖励与用户添加LP代币数量正相关,与合约拥有总LP代币数量负相关,但合约提供了一个withdrawTeam的方法,可以将合约拥有的BNB以及指定代币全部发送给合约指定地址,该函数任何人都可调用。而本次攻击者向其中添加了LP代币之后,调用withdrawTeam函数将LP代币全部发送给了指定地址,并立刻又向合约转了一个极小数量的LP代币,导致攻击者在随后调用getReward获取奖励的时候,使用的合约拥有总LP代币数量是一个极小的值,使得奖励异常放大。最终攻击者通过该漏洞获得的奖励兑换为13662枚BUSD离场。Beosin Trace追踪发现被盗金额仍在攻击者账户,将持续关注资金走向。[2022/11/21 7:53:09]
Ruler协议是去中心化的借贷协议,其核心要素包括:
安全团队:获利约900万美元,Moola协议遭受黑客攻击事件简析:10月19日消息,据Beosin EagleEye Web3安全预警与监控平台监测显示,Celo上的Moola协议遭受攻击,黑客获利约900万美元。Beosin安全团队第一时间对事件进行了分析,结果如下:
第一步:攻击者进行了多笔交易,用CELO买入MOO,攻击者起始资金(182000枚CELO).
第二步:攻击者使用MOO作为抵押品借出CELO。根据抵押借贷的常见逻辑,攻击者抵押了价值a的MOO,可借出价值b的CELO。
第三步:攻击者用贷出的CELO购买MOO,从而继续提高MOO的价格。每次交换之后,Moo对应CELO的价格变高。
第四步:由于抵押借贷合约在借出时会使用交易对中的实时价格进行判断,导致用户之前的借贷数量,并未达到价值b,所以用户可以继续借出CELO。通过不断重复这个过程,攻击者把MOO的价格从0.02 CELO提高到0.73 CELO。
第五步:攻击者进行了累计4次抵押MOO,10次swap(CELO换MOO),28次借贷,达到获利过程。
本次遭受攻击的抵押借贷实现合约并未开源,根据攻击特征可以猜测攻击属于价格操纵攻击。截止发文时,通过Beosin Trace追踪发现攻击者将约93.1%的所得资金 返还给了Moola Market项目方,将50万CELO 捐给了impact market。自己留下了总计65万个CELO作为赏金。[2022/10/19 17:32:31]
质押代币:用作质押资产的代币(如wBTC)
慢雾简析Qubit被盗原因:对白名单代币进行转账操作时未对其是否是0地址再次进行检查:据慢雾区情报,2022 年 01 月 28 日,Qubit 项目的 QBridge 遭受攻击损失约 8000 万美金。慢雾安全团队进行分析后表示,本次攻击的主要原因在于在充值普通代币与 native 代币分开实现的情况下,在对白名单内的代币进行转账操作时未对其是否是 0 地址再次进行检查,导致本该通过 native 充值函数进行充值的操作却能顺利走通普通代币充值逻辑。慢雾安全团队建议在对充值代币进行白名单检查后仍需对充值的是否为 native 代币进行检查。[2022/1/28 9:19:19]
对手方代币:用户借出的代币(例如DAI)
到期日:用户必须偿还借款的时间(例如12/31/2021)
铸币比率:即质押资产与对手方代币的比率。
慢雾:Avalanche链上Zabu Finance被黑简析:据慢雾区情报,9月12日,Avalanche上Zabu Finance项目遭受闪电贷攻击,慢雾安全团队进行分析后以简讯的形式分享给大家参考:
1.攻击者首先创建两个攻击合约,随后通过攻击合约1在Pangolin将WAVAX兑换成SPORE代币,并将获得的SPORE代币抵押至ZABUFarm合约中,为后续获取ZABU代币奖励做准备。
2.攻击者通过攻击合约2从Pangolin闪电贷借出SPORE代币,随后开始不断的使用SPORE代币在ZABUFarm合约中进行`抵押/提现`操作。由于SPORE代币在转账过程中需要收取一定的手续费(SPORE合约收取),而ZABUFarm合约实际接收到的SPORE代币数量是小于攻击者传入的抵押数量的。分析中我们注意到ZABUFarm合约在用户抵押时会直接记录用户传入的抵押数量,而不是记录合约实际收到的代币数量,但ZABUFarm合约在用户提现时允许用户全部提取用户抵押时合约记录的抵押数量。这就导致了攻击者在抵押时ZABUFarm合约实际接收到的SPORE代币数量小于攻击者在提现时ZABUFarm合约转出给攻击者的代币数量。
3.攻击者正是利用了ZABUFarm合约与SPORE代币兼容性问题导致的记账缺陷,从而不断通过`抵押/提现`操作将ZABUFarm合约中的SPORE资金消耗至一个极低的数值。而ZABUFarm合约的抵押奖励正是通过累积的区块奖励除合约中抵押的SPORE代币总量参与计算的,因此当ZABUFarm合约中的SPORE代币总量降低到一个极低的数值时无疑会计算出一个极大的奖励数值。
4.攻击者通过先前已在ZABUFarm中有进行抵押的攻击合约1获取了大量的ZABU代币奖励,随后便对ZABU代币进行了抛售。
此次攻击是由于ZabuFinance的抵押模型与SPORE代币不兼容导致的,此类问题导致的攻击已经发生的多起,慢雾安全团队建议:项目抵押模型在对接通缩型代币时应记录用户在转账前后合约实际的代币变化,而不是依赖于用户传入的抵押代币数量。[2021/9/12 23:19:21]
Ruler协议中,借款人每进行一次质押操作,都会铸造2种对应的代币rTokens,即
慢雾:Polkatrain 薅羊毛事故简析:据慢雾区消息,波卡生态IDO平台Polkatrain于今早发生事故,慢雾安全团队第一时间介入分析,并定位到了具体问题。本次出现问题的合约为Polkatrain项目的POLT_LBP合约,该合约有一个swap函数,并存在一个返佣机制,当用户通过swap函数购买PLOT代币的时候获得一定量的返佣,该笔返佣会通过合约里的_update函数调用transferFrom的形式转发送给用户。由于_update函数没有设置一个池子的最多的返佣数量,也未在返佣的时候判断总返佣金是否用完了,导致恶意的套利者可通过不断调用swap函数进行代币兑换来薅取合约的返佣奖励。慢雾安全团队提醒DApp项目方在设计AMM兑换机制的时候需充分考虑项目的业务场景及其经济模型,防止意外情况发生。[2021/4/5 19:46:39]
?Ruler资产代币(rcToken),承载着到期日之后,收取还款的权利;和根据质押代币的类型,rTokens和质押代币之间存在一个铸造比率。例如,存入1个wBTC作为抵押品,可能会铸造10,000个rTokens(假设wBTC的市场价值为30,000美元,此时的质押率为300%,铸币比率为10,000)。借款人可以将rcTokens兑换为对手方代币。
Ruler还款代币(rrToken),承载着到期日之前,偿还贷款并取回抵押代币的义务。
每个rrToken都有资格通过偿还1个对手方代币,来获得一部分抵押品。如果借款人不能按时还款,将被视为违约,质押资产将被罚没。
二、借贷流程 与 借贷利率
因此,一个完整的Ruler借贷流程如下:
借款人有1个wBTC(价值30,000美元),想要借出DAI。假设抵押比率为300%,铸币比例为10,000,
那么借款人存入1wBTC, 可以铸币10,000 枚rcTokens和rrTokens。借款人通过DEX池,出售rcTokens换取对手方代币DAI, 并持有rrtokens。
到期日前,借款人将10000 DAI和10,000 rrTokens存入合约,并收回1 wBTC质押资产。
借款利率
借款利率,是由借款人出售rcTokens时的价格来决定的。以对手方代币和rcTokens出售价格之间的差额为基础,结合到期日计算出的年化,就是实际利率。
例如:Alice将1个wBTC存入Ruler协议,获得10,000 rrTokens和10,000 rcTokens。然后,Alice以9500DAI的价格,将10,000 rcTokens 卖给Bob。
到期日之前,Alice将 10,000 DAI和10,000 rrTokens存入Ruler合约,取回1个wBTC。
到期日之后,Bob将10,000 rcTokens存入Ruler合约,取回10,000DAI。如果ALice没有按时还款,那么Bob将获取Alice的质押资产wBTC。
在上面的例子中,Alice支付了500 DAI作为借款利息,Bob因为提供贷款,获得了500 DAI的利息。
在此期间,无论质押资产wBTC的价格如何变化,只要按时还款,Alice将不会面临清算的风险。
重要的是,Alice的借贷成本在卖出rcTokens的时候,就已经得到确定。这解决了传统DeFi借贷中,借贷利率并不确定的问题。
如果质押资产wBTC的市场价格急剧下跌,可能会导致借款人按期还款的意愿降低。
例如,Alice存入1个wBTC,铸造了10,000 rrTokens和10,000 rcTokens,并已将10,000 rcTokens卖出得到9500美元。此时,假如wBTC价格降低为9000美元,Alice可能会故意拒绝还款,导致wBTC被罚没。但是此时Alice依旧获利500美元(9500-9000)。
假如Alice只还款40%,即偿还 4,000 rrTokens 和 4,000DAI,这意味着违约率为60%。那么Ruler协议将持有0.6个wBTC和4,000个DAI。与之对应的每个rcToken,将有资格获取(0.6 wBTC+4000 DAI)/10000), 也就是说,买入10000 rcTokens的Bob,可以获取 0.6个wBTC和4,000个DAI。
三、总结
Ruler协议的【无需清算】的借贷模式,一定程度上更有利于借款人,将质押资产价值下降的风险,转移到了购买rcTokens的用户身上。
这种模式,本质上和ForTube协议的初代产品 ForTube Bond类似,更像是一种添加了DEX和流动性池的P2P借贷撮合平台。
对于Ruler协议来说,如果流动性池的深度不够或者市场的波动性超出预期,很可能会对整个平台造成风险。但是鉴于Cover团队本身是做DeFi的保险业务,对应的风控措施应该很快会得以实施。
附录:关于清算机制的几个概念
为了深入理解清算机制,我们要预先理解【最大借存比】,【清算阈值】和【健康指数】的概念。
最大借存比:即LTV(Loan to Value)。是指用户最大借款额和特定质押资产的【价值比例】,用于衡量该质押资产的最大借款能力。
举例:对于ETH资产来说,如果用户存入价值10000美元的ETH,且ETH的最大借存比为90%,那么用户以ETH为质押资产,最多可以借出价值9000美元(10000X0.9)的其他资产。
清算阈值LT:即Liquidation Threshold。是指某种资产被定义为【抵押不足】时,用户的借款总额与质押资产的价值比例。低于这个比例,意味着用户的借款额度超过了系统设定的最大借款能力,因此用户的质押资产将被冻结并拍卖,用以缓解抵押不足而造成的系统性风险。
例如,80%的清算阈值意味着,如果借出资产的价值超过质押资产价值的80%,则贷款抵押不足,将会被清算。
健康指数HF:即Health Factor的缩写。健康指数,是总质押资产和总借款的函数,用于判断贷款是否【抵押不足】。这个数值用于衡量用户总体债务健康程度,数值越高,被清算的可能性越低,资金的安全状态越高。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。