DeFi安全之杠杆挖矿
熊市就像一块试金石,Defi的各核心业态,哪些能够穿越周期,更好的发展?在周期中又暴露了哪些问题,值得后来者借鉴?SharkTeam合约安全系列课程之【 DeFi 安全】和您一起讨论和深入。这一课我们聊聊【Defi杠杆挖矿】。
一、什么是杠杆挖矿
杠杆挖矿是流动性挖矿与杠杆的结合,即将杠杆应用于流动性挖矿,从而获取多倍的收益。杠杆挖矿涉及到杠杆、借贷以及流动性挖矿,是借贷挖矿的延伸。
杠杆挖矿的过程中涉及到3个场景:
(1)杠杆挖矿平台,即提供了杠杆挖矿服务的平台,如Alpaca和Booster,在杠杆挖矿过程中会产生平台代币的奖励,如Alpaca平台代币ALPACA,Booster平台代币BOO
(2)杠杆借贷平台,即提供杠杆资金的资金池,杠杆挖矿平台会包含借贷业务,借贷资金池中的资金作为杠杆的来源资金,如Alpaca、Booster都包含自己的借贷业务。部分平台也支持从其他借贷平台借款,可以借单币,也可以同时借双币,如Booster除了自己的借贷资金池之外,还支持从其他借贷平台(如FILDA、CHANNELS)借取。因此,杠杆挖矿的实际奖励还包含了借贷的代币奖励。
(3)流动性挖矿平台,即提供流动性挖矿的DEX平台,如PancakSwap,这是资金的最终流向,投入的代币会组成DEX的LP进行挖矿,获得DEX的平台代币奖励。
杠杆挖矿的过程如下:
(1) 设置初始资金(保证金)、借贷资金池、借贷的代币种类和数量
(2)从资金池中借出单币或双币
(3)将两种代币按比例组LP(一般需要代币兑换),然后投入到DEX平台做流动性挖矿,获得DEX平台代币
(4)定期复投,即将挖矿所得的平台代币通过DEX兑换成LP的两种代币,组LP再投入到DEX平台继续挖矿。
杠杆挖矿收益包括:
(1)平台代币奖励,包括:
a)杠杆挖矿平台的平台代币奖励
b)杠杆借贷平台的平台代币奖励
c)流动性挖矿平台的平台代币奖励,该奖励会复投到流动性矿池中继续挖矿
(2)借贷平台加杠杆时存借产生的收益,即:存款收益率-借款收益率
a)存款收益率 > 借款收益率时,产生收益
b)存款收益率 = 借款收益率时,没有收益和损失
c)存款收益率 < 借款收益率时,产生损失,甚至引发清算风险
(3) 做多/做空随价格上涨/下跌产生的收益
a)价格上涨时,做多产生收益,做空产生损失,甚至引发清算风险
b)价格下跌时,做空产生收益,做多产生损失,甚至引发清算风险
另外,杠杆挖矿同样需要考虑流动性挖矿中的风险因素:
(1)价格滑点,即发起交易时预计算的价格与实际交易时的价格差值比例。
(2)无偿损失:类似于衡量你在资金池中持有代币与在钱包中持有代币的机会成本。注意:在将代币从流动性池中移除之前,损失是不会实现的。在资金池中持有代币的价值和钱包中持有代币的价值之间的分歧越大,无常损失就越大。
无偿损失示例:
假设ETH价格为 2,000 USDT,池子由 5 ETH 和 10,000 USDT 组成,此时,
AMM: k = x * y = 5 * 10,000 = 50,000 (1ETH = 2,000USDT)
如果 ETH 价格上涨到 4,000 USDT,此时,
AMM: k= x * y = 3.536 * 14,142 = 50,000 (1 ETH = 4,000 USDT)
(1)在 1 ETH = 2,000 USDT 时,你的原始资本是 5 ETH + 10,000 USDT = 20,000 USDT。
(2)在 1 ETH = 4,000 USDT 时 (忽略交易费的收益),
a)你在资金池中持股量是 3.536 ETH * 4000 USDT/ETH + 14,142 USDT = 28,286 USDT,投资回报率是 (28,264 - 20,000) / 2000 = +41%
b)你在资金池外的持股量将是 5 ETH * 4,000 USDT/ETH + 10,000 USDT = 30,000 USDT,投资回报率是 (30,000 - 20,000) / 20,000 = +50%
因此,你的无常损失是 30,000 - 28,284 = 1,716 USDT
二、杠杆挖矿中的清算风险
杠杆挖矿中的基本概念:
债务价值(Debt Value)是借出代币的价值。
仓位价值(Position Value)是您挖矿头寸的价值,这等于您的保证金 + 借入的资产 + 产出(也被称为您的 LP 代币价值)。
债务比率(Debt Ratio)是您的债务价值除以仓位价值。
权益价值(Equity Value)是您的仓位价值(Position Value)减去您的债务价值(Debt Value)。
(1)清算风险
当您建立一个杠杆仓位,借入高达 6 倍于您添加的资金时,协议需要确保您能够偿还这笔贷款。因此,从您的资金中增加的金额作为保证金,这将随着您积累的收益率(减去借款利息)而增长。
保证金必须保持在您所欠的金额之上(加上安全边际以应对潜在的快速价格波动),否则协议可能会关闭您的仓位以偿还贷款人,这被称为清算。您会想避免清算,因为清算时,您剩余仓位价值的5% 将被支付给清算机器人,作为对您平仓并确保贷款人得到偿还的奖励。
清算是一种风险,但只是在特定的时候发生。当您一开始开仓时,您通常不必担心清算问题。
那么,您什么时候需要担心呢?由于您已经存入了加密代币,您的保证金的价值是不稳定的,将会随着代币价格的波动而变化。更重要的是,当您借入资金时,在您仓位保持开启的情况下,您将持有并承担这些资产的潜在收益(和损失)。
需要注意的是,您的保证金的另一个术语是权益价值(Equity Value)。就是这个权益价值需要保持在某个阈值以上,以避免清算。具体来说,如果您的债务比率(Debt Ratio)超过一个叫做清算阈值(Liquidation Threshold)的门坎,清算机器人可能会清算您的仓位 —— 意味着机器人会关闭您的仓位,偿还债务,并将剩余的金额返还给您(以借贷的代币结算)。
为什么您会在清算阈值上被清算?因为这时您的保证金(权益价值)已经过低,如果它的价值继续下降,可能会有一些风险,使您无法偿还您的贷款。所以清算对于保护贷款人是必要的方式。它使贷款人有信心先将资产借给您,这样您就可以耕作获利。
这就是清算的一般概况。然而,作为杠杆农民和投资者,我们主要关注的是价格。因此,接下来让我们来讨论这个问题,把清算与资产价格联系起来。
(2)代币价格与清算
一个代币的价格需要下跌多少才会发生清算?
假设您开了一个 TOKEN1/TOKEN2 的仓位,以2倍、2.5倍或3倍的杠杆借入 TOKEN2。您的初始债务比率将分别为50%、60% 和 66.7%。假设清算阈值为 80%,为了清算,TOKEN1 对 TOKEN2 的价格(即 TOKEN1/TOKEN2)将必须分别下降 61%、44% 和 31%,如下表所示:
当您所持有的代币大幅贬值时,您的保证金也就贬值了,您需要警惕潜在的清算。
开仓后,价格可能会发生变化,您的债务比率也会发生变化。只需在上图中找到您的新债务比率,就可以看到价格 TOKEN1/TOKEN2 在被清算前需要下降多少。如果您将鼠标悬停在您的仓位(Your Positions)部分的绿色安全缓冲(Safety Buffer)条上,我们也会有小窗口显示出这些数字,所以您可以实时追踪您的清算风险。
(3)清算示例
a)Alice使用3倍杠杆建立BNB/BUSD挖矿仓位。
b)她提供了10 BNB的自有资产(价值3000 BUSD),这是她的权益价值。
c)她借了6000 BUSD(是她提供的3倍),这是她的债务价值。
d)协议将所有存入和借入的代币转换为50:50的比例,以创造用于挖矿的LP代币:15 BNB+4500 BUSD(或总价值30 BNB),这是她的仓位价值。(在现实中,由于来自滑点和交易费的价格影响,它将略低于示例。Alice的净风险是做多15 BNB。)
e)Alice的债务比率(负债/仓位价值)是约66.67%(10 BNB/30 BNB)。如果在某一时刻,BNB价格下跌>36%(使用挖矿收益计算器 Calculator 计算),那么Alice的债务比率将超过83.3%(BNB/BUSD池的清算阈值)。然后,清算机器人将调用智能合约来关闭她的仓位,偿还贷款,并从Alice的权益价值中扣除Alice仓位价值的5%作为清算费用,最后将任何剩余的资产返还至她的钱包。
注意:这个例子忽略了挖矿产出奖励和交易费的影响,随着时间的推移,这会增加Alice的仓位价值,使她的仓位更加安全。它也忽略了借贷利率的影响,而借贷利率会增加债务价值,使她的债务率上升。
(4)如何避免清算
以下是您可以做的几件事,以避免清算,保持挖矿盈利。
a)监视您的安全缓冲(Safety Buffer):您的仓位仪表盘中的安全缓冲(Safety Buffer)能告诉您,您离潜在的清算有多远。一旦它达到零,您就会被清算。您也可以点击它,看看您的主要资产的价格要下降多少,安全缓冲才会达到零。
b)增加保证金:如果您看到您的安全缓冲(Safety Buffer)在下降,您可以选择增加保证金,也就是您已开立仓位右侧的按钮,以增加您的安全缓冲,避免清算。
c)对价格波动较小的资产进行 挖矿 :如果您挖矿的代币是稳定币,清算变得极不可能发生。此外,对价格波动较小、市值高的资产进行挖矿,如BTCB,比新的低市值代币更安全。当然,这里的权衡则是您会赚取较少的APYs。
d)自我清算:利用闪电贷实现自我清算,避免其他人清算时需要支付的清算手续费,从而保证自己资产的安全性。
三、使用场景分析
杠杆挖矿使用场景如下:
(1)做多挖矿
以开立 ETH/USDT 流动性挖矿的仓位为例,对 ETH 开立 3 倍杠杆进行做多挖矿,假设 ETH 的价格是 4000U,本金是 3 ETH,流动性挖矿过程如下:
(a)投入平台 3 ETH,平台从资金池中借出 24000 USDT,总投入为 3 ETH + 24000 USDT,债务为 24000 USDT
(b)为了组 LP,平台将 6000 USDT 兑换成 1.5 ETH(买入 1.5 ETH),此时平台中有 4.5 ETH + 18000 USDT
(c)平台将 4.5 ETH + 18000 USDT 组成LP,质押 LP 进行流动性挖矿。
假设 ETH 价格上涨至 6000U,取消流挖矿的过程正好相反:
(a)从流动性矿池中将 LP 以及收益的平台代币提取出来,并借出LP获得 4.5 ETH + 18000 USDT
(b)利用 DEX 将 1.5 ETH 兑换成 9000 USDT (卖出 1.5 ETH),结合持有的 18000 USDT 偿还债务 24000 USDT,还剩 3000 USDT
(c)此时,用户持有 3 ETH + 3000 USDT,总价值为 21000U,其中,3 ETH 是用户的本金(保证金),价格上涨后获利 6000 USDT,3000 USDT 是额外的获利,实际利润为 21000U - 3 * 4000U = 9000U
从整个过程来看,有 1.5 ETH “先买入,后卖出”,只有在 ETH 价格上涨时才会获利,即 “低价买入,高价卖出”。因此,实际做多了 1.5 ETH,ETH 价格上涨了 2000U,做多1.5 ETH 的收益为 3000 USDT。
(2)做空挖矿
以交易对 ETH/USDT 流动性挖矿为例,对 ETH 开立 3 倍杠杆进行做空挖矿,假设 ETH 的价格是 4000U,本金是 1 ETH,流动性挖矿过程如下:
(a)投入平台 1 ETH,平台从资金池中借出 2 ETH,总投入为 3 ETH,债务为 2 ETH
(b)为了组LP,平台将 1.5 ETH 兑换成 6000 USDT(卖出 1.5 ETH),此时平台中有 1.5 ETH + 6000 USDT
(c)将 1.5 ETH + 6000 USDT 组成LP,质押 LP 进行流动性挖矿。
假设 ETH 价格下跌至 2000U,取消流挖矿的过程正好相反:
(a)从流动性矿池中将 LP 以及收益的平台代币提取出来,并借出LP获得 1.5 ETH + 6000 USDT
(b)利用 DEX 将 3000 USDT 兑换 1.5 ETH(买入 1.5 ETH) ,结合持有的 1.5 ETH 偿还债务 2 ETH,还剩 1 ETH(即本金),此时用户持有 1 ETH + 3000 USDT
(c)此时,用户持有1 ETH + 3000 USDT,总价值为 5000U,其中,1ETH 是本金,价格下跌后损失 2000 USDT,3000 USDT 为额外获利,实际利润为 5000U - 1 * 4000U = 1000U
从整个过程来看,有 1.5 ETH 属于 “先卖出,后买入”,只有在 ETH 价格下跌时才会获利,即"高价卖出,低价买入"。因此,实际做空了 1.5 ETH ,ETH 价格下跌了2000U,做空 1.5 ETH 获利 3000 USDT。
(3)对冲挖矿
利用以上做多做空原理,如果开2个仓位,一个仓位做多一个仓位做空,就能实现一定程度的对冲。假设 ETH 价格为 4000U,对冲原理如下表所示:
注意:这仅仅是一定程度的对冲,对冲效果如下图所示:
可以看到左边开对冲仓位的无常损失与右边相比,曲线平滑了非常多。
测算表格如下:
可以发现,当用2倍&2.5倍杠杆开仓对冲的时候,价格从-19%~+26%变化的时候,无常损失导至的总资产变化不到1.5%。如果变化范围在正负10%的时候,无常损失不到0.5%。
四、Alpaca项目分析
Alpaca Finance 部署了让矿工获得最高理论收益的挖矿策略。同时确保用户在与平台交互时获得最佳体验,我们在系统内部做了许多优化来简化杠杆流动性挖矿的过程。
下面是一些增强可用性的关键功能:
(1)灵活的存款选择:我们的资金池会根据你的充值金额,以及你的借贷 BNB 或 BUSD 的数量,自动按照最佳的比例来转换你的资产,保证两边金额相等,便于开始流动性挖矿。例如,对于 CAKE/BNB 流动性池,你可以充值任意的 CAKE 或者 BNB 代币来开始挖矿,而不需要自己来进行资金转换。
(2)自动抵押:我们的代码会自动质押 LP 代币到你选择的平台上(如 PancakeSwap 等),所以你可以立刻开始赚取你的收益
(3)自动复投:我们的机器人每30分钟会自动出售你的质押奖励(如 Cake 代币等),并将这些奖励转换为 LP 代币,然后自动质押到你挖矿的池子中,这样的复投策略能够让你获得最大的APY 收益。
(4)随时随地的领取 ALPACA 代币奖励:当你建立了一个杠杆流动性挖矿仓位的时候,你可以在质押页面随时随地的领取 ALPACA 代币奖励。
Alpaca Finance杠杆挖矿交易策略包括:
(1)做多/做空/对冲策略,
(2)单边/双边借贷,
(3)单币/LPToken杠杆池
以PancakeSwap杠杆挖矿为例,流动性矿池的具体策略如下:
(1)单币杠杆池(Cake 糖浆池):下方说明单币杠杆池的策略,目前支持在 CAKE 糖浆池的杠杆收益农场池。
(2)双边借贷池(同时支持借贷 LP 中任意一个资产):下方图示说明双向借贷池的策略,我们目前支持借入交易对中两种资产的任一种。
(3)单边借贷池:下图说明单向借贷池的策略。
总结:DeFi杠杆在为使用者提供更高的流动性和更少的启动资金的同时,也引入了更多的金融风险,如果使用DeFi杠杆工具,请先确保您已经完全理解它并具备控制风险的能力。
关于我们: SharkTeam 的愿景是全面保护Web3世界的安全。团队成员分布在北京、南京、苏州、硅谷,由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如OKC、Huobi Global、polygon、Polkadot、imToken、ChainIDE等建立长期合作关系。
==