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

By [Dezso](https://paragraph.com/@dezso) · 2023-07-01

---

[https://www.paradigm.xyz/2023/05/blend](https://www.paradigm.xyz/2023/05/blend)

一、功能概述
------

Blend 是 “Blur Lending” 的简称，Blur 推出的借贷协议。据 Dune 提供的数据显示，其交易量一经发行就迅速占领了市场，截止目前，[Total Volume 已超过 1B](https://dune.com/beetle/blur-loans) 💵，远超其他同类协议。

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

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

> 借款人`lien.borrower`：“borrow”，借得token资金的一方
> 
> 贷款人`lien.lender`：“lend/offer loan”，运用自有资金发放token的一方

二、逻辑解析
------

![Blend 借贷逻辑示意图](https://storage.googleapis.com/papyrus_images/6ab814dbd189b2de836ab53d8173c0c5f4b27c68b5d66fd1d3e306bec6688ada.png)

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 合约中本身只有**贷款人**收取 “利息” 而获利。

![利息计算公式](https://storage.googleapis.com/papyrus_images/0086e2699fbedc335eae1bbbf2f7c212b8a033eab3dc94380016b8cff00005a0.png)

利息计算公式

> _其中，_`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.  **到期与强制清算**：依赖于借贷健康度指标，当价格波动的时，该指标会随之变化。如果健康度过低，且一定的时间内没有补充资金的情况下，就会触发清算。

---

*Originally published on [Dezso](https://paragraph.com/@dezso/nft-blur-blend)*
