Cover photo

NFT流动性之路:Blur 借贷协议 Blend 核心逻辑分析

https://www.paradigm.xyz/2023/05/blend

一、功能概述

Blend 是 “Blur Lending” 的简称,Blur 推出的借贷协议。据 Dune 提供的数据显示,其交易量一经发行就迅速占领了市场,截止目前,Total Volume 已超过 1B 💵,远超其他同类协议。

Blend 中总的来说有两种玩法:1.借贷再融资;2.交易(与Blur Exchange交互)

下面我们分别来讲解这两个流程。在分析功能之前,希望大家明确两个概念,以防混淆。后续将始终以这两个名词来定义交易过程的参与方。

借款人lien.borrower:“borrow”,借得token资金的一方

贷款人lien.lender:“lend/offer loan”,运用自有资金发放token的一方

二、逻辑解析

Blend 借贷逻辑示意图
Blend 借贷逻辑示意图

1)借贷 & 再融资:BORROW & REFINANCING FLOWS

  1. Loan Offer(链下,非合约方法) 贷款人提交欲贷款offer,并根据自身需求选择接受对应的借贷出价。该offer簿存储在中心化服务器上

  2. Borrow nft owner:lien.borrower ⇒ blend

    借款人根据自身需求选择接受对应的借贷出价。调用 Blend 合约的 borrow 方法。借款人的 NFT 将要被锁定到 Blend 合约中

  3. 贷款生成(一笔贷款操作已完成)

    • 贷款人

      • startAuction

        开始拍卖抵押物所有权。调用之后进入拍卖流程,如果出借人一直不调用这个方法,则贷款会一直存在。直到借款人主动偿还贷款

      • refinance

        接受新的 Loan Offer,用其他贷款人的资金来拿回自己的贷款和利息,债务关系发生转移(新贷款的利率要大于旧贷款,二者的拍卖时长必须相同)

    • 借款人

      • repay

        nft owner:blend ⇒ lien.borrower

        直接还清贷款,在清算之前都可以进行

  4. 💹拍卖阶段

    • 借款人

      • borrowerRefinance

        除了repay 之外,借款人可以调用该函数来重新融资。即就是接受新的 Loan Offer,用新的贷款资金来偿还旧的贷款+利息(以债还债)

    • 贷款人

      • refinance(同上,仅发起人不同)

    • 第三方

      • refinanceAuction(同上,仅发起人不同)

        在拍卖过程中,新的贷款人主动接盘

      • refinanceAuctionByOther(同上,仅发起人不同)

        在有一个新的贷款人提交 Loan Offer 的情况下,可以由第三方撮合

  5. ⏰清算阶段

    • 贷款人

      • seize

        nft owner:blend ⇒ lien.lender

        拍卖结束之后,如果贷款依然存在,贷款人就可以对违约的贷款进行清算,贷款人收到抵押NFT

2)交易:MARKETPLACE FLOWS

Blend 中除了借贷,还提供了几个新颖的交易玩法。可以根据 “是否链下签名托管” 来分类

带 ETH 的方法可以使用 ETH 作为资产,方法里面会将 ETH 存入 Blur Pool(可以更好服务于Blur Bid 的 WETH)

  • Blur Marketplace 用户

    • 非托管 NFT 借贷

      • buyToBorrow

        nft owner:Order.seller ⇒ blend

        Nft Trader 从 Blur Market 中购买 NFT 并与某个 Loan Offer 撮合,生成新的借款,买家成为借款人。

        💸BNPL:购买过程中如果贷款金额小于订单金额,借款人只需要支付二者的差额就能完成购;大于则将多余额度返还给借款人。实现了以较少的资金占有率获得 NFT 的所有权。也是 Blur 官方推荐的用法,剩余借款人要做的就是承受并还清贷款。

      • buyToBorrowETH

    • 托管 NFT 借贷(借款人提前链下签名 blend SellOffer)

      • buyLocked

        nft owner:blend ⇒ msg.sender(market buyer)

        在借款人在托管给 blend 自己的 NFT 的前提下,其它 Marketplace 中的 NFT trader 替借款人还清贷款,获得的 质押NFT 的所有权。

        这里允许借款人设多余手续费Fee[]接口,但其价格累计不可超过售价price

        fee = (sellOffer.price * sellOffer.fees[i].rate) / 10_000

        注意:不是Blend协议费用,目前 Blend协议免费 (但需记住该合约为可升级合约)

      • buyToBorrowLocked

        在上面的基础上,NFT trader 买到NFT后重新抵押借贷(也属于BNPL行为)

      • buyLockedETH

      • buyToBorrowLockedETH

  • 借款人

    • tokenBid

      blend 创建 sellOrder 撮合 nft owner:blend ⇒ Order.buyer

      借款人可以随时接受对抵押 NFT 的 Blur Bid,并使用其资金偿还贷款。

以上即为Blend中所有的功能与方法,下面我们将从合约的角度来剖析。

三、获利分析

在不讨论复杂交易手段的情况下,Blend 合约中本身只有贷款人收取 “利息” 而获利。

利息计算公式
利息计算公式

其中,d_stale t_delta years 以前计算得债额;r_bips 是以基准(0.0001)为单位的APY

function computeCurrentDebt(
        uint256 amount,
        uint256 rate,
        uint256 startTime
  ) external view returns (uint256) {
    // 计算借款时间
    uint256 loanTime = block.timestamp - startTime;

    // 借款时间 >= 最小借款时间
    if (loanTime < _MIN_LOAN_TIME) {
        loanTime = _MIN_LOAN_TIME;
    }

    // 计算借款年数
    // _YEAR_WAD = 365 days * 1e18
    int256 yearsWad = wadDiv(int256(loanTime) * 1e18, _YEAR_WAD);

    // 计算借款利息
    return uint256(wadMul(int256(amount), wadExp(wadMul(yearsWad,    bipsToSignedWads(rate)))));
 }

四、总结与对比(以BendDAO为例)

📌 Blend

  1. 点对点:采用点对点的模式,每笔贷款单独匹配,即借款人的资金来自于出借人。

  2. 不依赖预言机:利率和贷款价值比率由贷款人决定,让市场来调节。

  3. 自由清算:由出借方触发。贷款生成之后,出借方可以随时发起拍卖,只要贷款人触发了再融资拍卖,如果没有人愿意以任何利率接手债务,NFT就可能被清算。

  4. 永续:生成的借贷没有到期时间,只要有贷款人愿意用抵押品贷款,贷款就一直有效。

📌 BendDao

  1. 点对池:将贷款人的资金汇集成池子。贷款的资金来源是这个池子,根据 NFT 种类提供不同额度贷款。

  2. 预言机 NFT 报价:这个信息被用来当做 NFT 定价的基准,决定了最大借贷额的。利率方面,由借贷池动态决定而在。

  3. 到期与强制清算:依赖于借贷健康度指标,当价格波动的时,该指标会随之变化。如果健康度过低,且一定的时间内没有补充资金的情况下,就会触发清算。