去中心化借贷

核心摘要 (Key Takeaways)

  • 核心机制:去中心化借贷协议本质上是一个资金池,存款人 (Lender) 提供闲置资产赚取利息,借款人 (Borrower) 通过超额抵押资产来借出其他资产,整个过程由智能合约自动执行。
  • 动态利率模型:借贷利率并非固定不变,而是由资金使用率 (Utilization Rate) 动态调节。当资金池中大量资产被借出时(使用率高),利率会自动升高以抑制借款、鼓励存款;反之则降低利率。
  • 安全基石:超额抵押与清算:为应对加密资产的价格波动,所有借款都必须超额抵押。协议通过健康因子 (Health Factor) 监控每笔贷款的风险。一旦抵押物价值跌破清算阈值监控者 (Keeper) 会触发清算程序(如拍卖或市场售出)以保护存款人的资金。
  • 关键外部依赖:预言机 (Oracle):协议需要预言机来获取抵押物和借出资产的实时价格,以准确计算健康因子。因此,预言机的稳定性和安全性至关重要,是协议最主要的攻击点之一,对于黑客来说,预言机就是提款机
  • 记账方式的演进:协议通过向存款人发放凭证Token(如Compound的cToken)来代表其在资金池中的份额。这种方式相比传统的复式记账法,极大地简化了利息计算和用户资产追踪。

1. 去中心化借贷的核心价值与传统对比

1.1. 为什么需要借贷?

借贷是源远流长的金融活动,核心在于提高资金利用效率满足流动性需求,而非简单地“没钱才借”。

  • 案例:创业与投资:创业者可能通过借贷或股权融资来扩大规模;投资者通过贷款买房、买车,可以将自有资金用于其他投资,利用杠杆放大收益。
    • 例子:过去人们预期房价上涨,会将200万资金分为3个60多万的首付购买三套房,以期获得更大回报。
  • 案例:个人流动性需求
    • 例子:讲师分享了自己大学时每月仅有400元生活费的经历,感叹如果当时能借到一些钱,生活状态会有很大改善。这说明借贷在满足必需性需求时有其积极的一面。

1.2. 传统金融中的借贷

  • 商业银行:主要利润来源是存贷利差。银行吸收存款后,必须将资金放贷出去以赚取利润。
    • 例子:当前经济环境下,银行放贷压力大,会频繁致电用户推销消费贷(如30万授信),这在以前是很少见的。
  • 互联网借贷:如支付宝的“借呗”、微信的“微粒贷”,审核相对宽松。但也存在大量不正规的“网贷”,它们通过“砍头息”(如借1万到手9千,还款1万3)和暴力催收(电话轰炸、喷漆)等方式牟取暴利。
  • 案例:个人经历的警示
    • 信用卡:讲师大学时被学长学姐以“越早办信用卡,额度涨得越快,对以后买房买车有好处”为由推销了建设银行龙卡。后来发现这完全是谎言。这张500元额度的信用卡至今仍显示在他的征信报告中。
    • 结论:对普通人而言,应谨慎办理多张信用卡,并坚决远离不正规的网贷。

1.3. 区块链借贷的演进

  1. 中心化托管阶段:早期产品如 Genesis CapitalBlockFi,用户将加密资产存入平台,平台承诺固定利息。但资金的实际运作不透明,存在对手方风险。
  2. 去中心化协议阶段:以 AaveCompounddYdX 为代表,所有借贷逻辑都在链上通过智能合约执行,公开透明。
  3. 市场规模:链上借贷的总锁仓量(TVL)已达数百亿美元(截至视频录制时为360亿美元)。在牛市中,借贷需求会显著增加,因为投资者不愿出售自己看涨的资产(如BTC),而是选择抵押它们来借出稳定币等进行再投资,以放大收益。

2. 去中心化借贷的业务流程与核心角色

2.1. 核心参与方

  • 存款人 (Lender):拥有闲置加密资产,将其存入资金池(智能合约)以赚取利息。
  • 借款人 (Borrower):需要资金,将一种资产作为抵押品存入资金池,借出另一种资产。
  • 监控者 (Keeper):链下机器人或角色,持续监控所有借款的健康状况,一旦发现抵押不足,立即触发清算程序。
  • 预言机 (Oracle):为智能合约提供外部世界(即链下)的资产价格信息,是清算机制和借贷能力计算的基础。

2.2. 业务流程可视化 (Mermaid Diagram)

flowchart TD
    subgraph 用户端
        A[存款人 Lender]
        B[借款人 Borrower]
    end

    subgraph 协议核心
        C{资金池-智能合约}
        D[监控者 Keeper]
        E[预言机 Oracle]
    end

    A -- 存入闲置资产 --> C
    C -- 支付利息 --> A

    B -- 存入抵押物 --> C
    C -- 借出资产 --> B

    E -- 提供资产价格 --> D
    D -- 监控抵押物价值 --> C
  
    subgraph 清算流程
        F[抵押物价值不足]
        G[触发清算]
        H[拍卖或出售抵押物]
        I[偿还贷款保护存款人]
    end

    C -- 发现健康状况恶化 --> F
    F -- Keeper检测到 --> G
    G -- Keeper执行 --> H
    H -- 获得资金 --> I
flowchart TD
    subgraph 用户端
        A[存款人 Lender]
        B[借款人 Borrower]
    end

    subgraph 协议核心
        C{资金池-智能合约}
        D[监控者 Keeper]
        E[预言机 Oracle]
    end

    A -- 存入闲置资产 --> C
    C -- 支付利息 --> A

    B -- 存入抵押物 --> C
    C -- 借出资产 --> B

    E -- 提供资产价格 --> D
    D -- 监控抵押物价值 --> C
  
    subgraph 清算流程
        F[抵押物价值不足]
        G[触发清算]
        H[拍卖或出售抵押物]
        I[偿还贷款保护存款人]
    end

    C -- 发现健康状况恶化 --> F
    F -- Keeper检测到 --> G
    G -- Keeper执行 --> H
    H -- 获得资金 --> I
flowchart TD
    subgraph 用户端
        A[存款人 Lender]
        B[借款人 Borrower]
    end

    subgraph 协议核心
        C{资金池-智能合约}
        D[监控者 Keeper]
        E[预言机 Oracle]
    end

    A -- 存入闲置资产 --> C
    C -- 支付利息 --> A

    B -- 存入抵押物 --> C
    C -- 借出资产 --> B

    E -- 提供资产价格 --> D
    D -- 监控抵押物价值 --> C
  
    subgraph 清算流程
        F[抵押物价值不足]
        G[触发清算]
        H[拍卖或出售抵押物]
        I[偿还贷款保护存款人]
    end

    C -- 发现健康状况恶化 --> F
    F -- Keeper检测到 --> G
    G -- Keeper执行 --> H
    H -- 获得资金 --> I

流程解释: 上图展示了去中心化借贷协议中各方的交互流程。

  1. 存借交互:存款人和借款人直接与核心的资金池(智能合约)进行交互。
  2. 监控与价格信息:预言机不断地向监控者(Keeper)提供最新的资产价格。
  3. 清算触发:监控者根据预言机的价格,持续计算资金池中每笔贷款的健康状况。一旦发现某笔贷款的抵押物价值低于安全阈值,就会触发清算流程。
  4. 清算执行:监控者调用智能合约的清算功能,将该笔贷款的抵押物进行拍卖或在市场上出售,用所得资金偿还借款,从而保护了存款人的本金安全。

2.3. 核心经济模型

协议的收支平衡可以用一个简化公式来表示,它确保了支付给存款人的利息来源于借款人支付的利息。

存款 \times 存款利率 + 平台费 = 借款 \times 借款利率
  • 这个公式解释了为什么存款利率总是低于借款利率。即使平台费为零,因为总存款额总是大于或等于总借款额(为了保留流动性),所以存款利率必然小于或等于借款利率。

3. 借贷协议设计的核心问题

一个稳健的借贷协议需要周全地考虑各方需求和潜在风险。

  • 存款人 (Lender) 的考量
    • 资产托管:资产是托管在机构账户还是智能合约中?(DeFi选择后者)
    • 存款利率:利率是固定的还是浮动的?如何计算?
  • 借款人 (Borrower) 的考量
    • 抵押物类型:接受哪些资产作为抵押品?(通常是主流、高流动性的资产)
    • 抵押率:不同资产的抵押率如何设定?
    • 借款利率:利率是多少?如何随市场变化?
    • 清算机制:清算过程是怎样的?价格来源是什么?
  • 平台方 (Platform) 的考量
    • 资金安全:如何保护存款人的资金不被盗或因协议漏洞而损失?
    • 资金利用率与流动性:如何在提高资金利用率(多放贷)和保障存款人随时提款(留有准备金)之间找到平衡?(类似银行的存款准备金
    • 平台收费:如何设定服务费,既能盈利又不会吓跑用户?
    • 应急预案:当发生黑天鹅事件(如市场极端波动、预言机故障)时,如何应对?(很多协议设有紧急暂停开关emergency stop

4. 关键参数设计与实现

4.1. 贷款利率的确定:资金使用率模型

贷款利率是动态的,其核心目标是在保证健康流动性的前提下,尽可能多地将资金借出。

  • 核心指标存款使用率 (Utilization Rate) 存款使用率 = \frac{未还的借款数量}{未还的借款数量 + 剩余存款数量}
  • 利率调整机制:利率是资金使用率的函数。
    • 低使用率:当池子里大量资金闲置时,协议会提供较低的借款利率,以吸引用户来借款。
    • 高使用率:当大部分资金被借走,流动性紧张时,协议会急剧提高借款利率,以抑制新的借款,并鼓励现有借款人还款。
  • 案例:不同协议的利率曲线
    • Compound:采用分段线性模型。在使用率低于一个拐点(如90%)时,利率随使用率平缓线性增长;一旦超过该拐点,利率曲线的斜率会急剧变大,利率飞速上升。
    • dYdX:采用非线性曲线模型。前期非常平缓,但超过某个阈值(如70%)后,利率会呈指数级急剧升高。

4.2. 存款利率的确定

存款利率并非独立设定,而是根据贷款利率和资金使用率派生出来的。可以理解为,协议将从借款人那里收取的总利息,按比例分配给所有存款人。

  • 案例:真实世界的利率差
    • DeFi (Compound):借款利率8.53%,存款利率7.22%,利差较小。
    • 传统银行:存款利率极低(活期接近0,定期2-3%),而贷款利率较高(最低3.5%,通常4-5%),利差巨大。

4.3. 资产托管与记账方式

  • 核心问题:如何精确计算每个存款人在不同时间点应得的本金和利息?

  • 方式一:复式记账法

    • 原理:协议记录下每个用户在每个时间点的状态,每次有新的存款或利率变动时,都需要为所有用户重新计算。这种方法计算量大,效率低下。
    • 案例:复式记账计算
      1. T0时刻:用户A存入100 DAI。
      2. T1时刻:池子产生20 DAI利息,A的总权益为120 DAI。用户B存入100 DAI。池子总额220 DAI。
      3. T2时刻:池子又产生了20 DAI利息,这20 DAI需要按T1时刻的资金占比分配。
      4. 取款计算
        • A的总资产 ≈ 100 (本金) + 20 (第一阶段利息) + 20×12022020 \times \frac{120}{220} (第二阶段利息) = 130.91 DAI
        • B的总资产 ≈ 100 (本金) + 20×10022020 \times \frac{100}{220} (第二阶段利息) = 109.09 DAI
  • 方式二:Token 凭证 (Tokenized Receipt)

    • 原理:当用户存款时,协议会按一个动态汇率给他一个凭证Token(如Compound的cDAI)。这个凭证代表了他在资金池中的份额。利息会不断累积在资金池中,使得凭证Token相对于底层资产越来越值钱。
    • 案例:Token凭证计算
      1. T0时刻:用户A存入100 DAI,获得100 cDAI (汇率 1:1)。
      2. T1时刻:池子总资产变为120 DAI。汇率变为 1 cDAI = 1.2 DAI。用户B存入100 DAI,获得 100/1.283.33100 / 1.2 \approx 83.33 cDAI。
      3. T2时刻:池子总资产变为240 DAI。池中总凭证为 183.33 cDAI。最新汇率为 240/183.331.309240 / 183.33 \approx 1.309
      4. 取款计算
        • A取款 = 100 cDAI ×\times 1.309 ≈ 130.9 DAI
        • B取款 = 83.33 cDAI ×\times 1.309 ≈ 109.08 DAI
    • 结论:Token凭证法结果一致,但极大简化了计算,只需维护一个全局汇率即可。

4.4. 抵押物与抵押率

  • 核心原则超额抵押 (Over-collateralization),即抵押物的价值必须高于借款的价值。
  • 抵押率设定规律
    • 高波动性、低流动性的代币,需要极高的抵押率案例:视频中展示了一个不知名代币的抵押率高达 10000%
    • 低波动性、高流动性的代币(如WBTC, ETH),需要较低的抵押率(通常在130%-175%之间)。
  • 准入机制:并非任何资产都能成为抵押物,通常需要经过严格的风险评估和社区治理投票。

4.5. 清算机制 (Liquidation)

  • 目的:在借款人抵押物价值不足以覆盖其债务时,强制出售其抵押物,以保护存款人的资金安全。

  • 健康因子 (Health Factor):衡量一笔贷款安全性的关键指标。

    健康因子 = \frac{抵押物总价值 \times 清算阈值}{总借款价值}
    • 健康因子 > 1时,贷款是安全的。
    • 健康因子 < 1时,贷款即可被清算。
    • 清算阈值 (Liquidation Threshold):一个百分比参数(如75%),代表抵押物价值相对于债务的最低安全线。注意:这个词念作 yù zhí,而非“fá zhí”。
  • 案例:清算触发计算

    • 初始状态:假设ETH价格为2000 DAI,清算阈值为75%。用户抵押1 ETH,借出1250 DAI。
    • 健康因子计算 健康因子 = \frac{2000 \times 0.75}{1250} = \frac{1500}{1250} = 1.2 此时健康因子 > 1,贷款安全。
    • 价格下跌:ETH价格跌至1600 DAI。
    • 新的健康因子计算 健康因子 = \frac{1600 \times 0.75}{1250} = \frac{1200}{1250} = 0.96 此时健康因子 < 1,这笔贷款可以被任何一个Keeper触发清算。
  • 清算方式对比

    • 荷兰式拍卖 (Dutch Auction):如MakerDAO采用。
      • 优点:可能获得更好的清算价格。
      • 缺点:效率较低,需要时间。
    • 现货市场出售 (Direct Market Sale):直接在DEX上卖掉。
      • 优点:速度极快,能迅速消除风险。
      • 缺点:若市场价格是因短暂的“插针”(价格瞬间大幅下跌后迅速恢复)导致的,可能会造成用户不必要的巨大损失。

4.6. 价格来源:预言机 (Oracle) 的重要性

预言机是借贷协议的“命脉”,任何失误都可能导致灾难性后果。

  • 风险:黑客可以通过操纵预言机,使其在短时间内提供一个错误的价格,然后利用这个价格差进行套利,从而掏空协议资金。
  • 案例:历史上的预言机攻击
    • 2019年 Synthetix:因预言机问题,导致价值10亿美元的3700万枚sETH被低价交易。
    • 2020年 bZx:因预言机被操纵,损失800万美元。

5. 使用借贷产品的理由

  • 存款人
    • 赚取利息:将闲置资产放入协议中,获得比放在钱包里更高的收益。
  • 借款人
    • 加杠杆做多:抵押ETH借出稳定币,再用稳定币买入ETH,重复此过程,可以放大ETH上涨带来的收益。
    • 加杠杆做空:抵押稳定币借出看跌的代币,立即卖掉。待该代币价格下跌后,再用更少的稳定币买回并偿还借款,赚取差价。
    • 无卖出再投资:持有并看好ETH的长期价值,但又发现另一个有潜力的项目(如PEPE)。可以抵押ETH借出稳定币去投资PEPE,这样既没有丢失ETH的头寸,也抓住了新机会。
    • 获取使用价值:某些代币具有投票等治理功能。如果不想卖掉自己的主流资产,可以抵押它们,借出治理代币去参与投票,事后再还回。