Skip to content

Latest commit

 

History

History
545 lines (395 loc) · 21.2 KB

Week6.md

File metadata and controls

545 lines (395 loc) · 21.2 KB

DeFi I

[TOC]

Bridges 请参阅上一节 Lecture

DeFi 去中心化金融:一个基于区块链和智能合约的 P2P 金融系统,无需任何中心化的可信中介机构。

DeFi的性质:

  • Non-Custrodial 无托管:参与者在任何时候都对自己的资金拥有完全控制权(full control)
  • Permissionless 无需许可:任何人都可以使用金融服务,不会被第三方审查或限制。
  • Openly Auditable 开放审计:任何人都可以审计系统的状态。
  • Composable 可组合性:金融服务可以任意组合以创造新的服务和产品。被称为 money Legos。

对于构建 DeFi 需要:

  1. 区块链primitives:transaction, atomicity, smart contracts, etc. 区块链原语提供基础设施

  2. Keeper / 维护者:触发状态更新的外部链下代理 Keeper确保系统运行

    监控区块链状态

    在需要时触发智能合约更新

    保证系统正常运行和及时响应

  3. Governance 治理机构:管理DeFi应用的方式(可能通过多个EOA实现) 治理机制实现民主决策

    决定应用程序的发展方向

    EOA(外部拥有账户)参与投票

    可以修改协议参数

    确保社区参与度和去中心化决策

    通常通过治理代币实现

  4. Oracles / 预言机:导入链下信息的方式(例如,价格数据、真实世界事件的结果等) 预言机提供必要的外部数据

  • 连接区块链和外部世界的桥梁
  • 提供可靠的外部数据源
  • 常见用途:
    • 获取资产价格信息
    • 获取真实世界事件结果
    • 提供跨链数据

核心应用:

  • PFL (Protocols for Loanable Funds):实现资金的借贷
  • Stablecoins:token pegged to 一些其他的 currency (e.g., USDC)
  • Automated Market Makers (AMMs): 实现资产 assets/代币交易

Oracles

与DeFi协议相关的信息可分为三类:

  • 链下真实信息,例如,月球距离地球的距离
  • 链上真实信息,例如,特定地址的代币余额
  • 链上对链下真实信息的估计(Estimate)

Oracles 使我们能够进行这样的链上估计(on-chain estimate)

EVM是一个隔离的沙盒环境。Oracles 是一种将链下数据导入沙盒/区块链的机制。 Centralized:需要信任数据提供者,并承担提供者可能不诚实的风险,即当提供操纵过的数据所获得的收益超过诚实行为时。 Decentralized:链下数据的正确性在链上无法验证,因此去中心化预言机依靠激励机制来确保链下数据的准确和诚实报告。

预言机最常见的用例之一是导入价格数据(例如,一个ETH值多少美元?) 在链上,我们可能知道一个ETH以多少USDT、USDC或其他与美元挂钩的稳定币交易(但流动性可能比中心化交易所更低)。如果我们想要建立一个基于真实(链下)价值来在链上买卖ETH的智能合约怎么办? 预言机可以提供聚合价格feed,从不同渠道(包括链上和链下数据)收集随时间变化的价格数据。

PLF: Protocol for Loanable Funds

PLF 是一个建立在 Distributed Ledger 基础上的可借贷资金市场协议

  • 存在借款人 (borrower) 对可借贷资金的需求 (Demand)
  • 存在储蓄者 (saver) 对可借贷资金的供给 (Supply)
  • Interest Rate 是一个关键变量(借贷成本)

资金通过智能合约进行池化管理(pooled),让人们可以以去 Trustless 的方式进行借贷和储蓄并赚取利息 提供了访问某些其他代币的途径 可以在链上进行 leverage(杠杆操作)

Collateral 抵押物

Collateral 抵押品:是为了确保贷款价值而质押的资产。

从朋友那里借200美元 用您的笔记本电脑作为抵押品 如果在期限结束时没有还款,他们将保留笔记本电脑

Overcollateralising 超额抵押:使用价值超过贷款金额的抵押品来保护贷款人。例如:

笔记本电脑价值1000美元 即使笔记本电脑贬值(depreciate) 800美元 贷款人仍然能够收回200美元的贷款

风险管理:通过要求抵押品,降低了贷款人的风险。借款人违约时,贷款人可以通过处置抵押品来收回资金。

超额抵押的必要性:考虑到资产可能的贬值,为贷款人提供额外的安全边际,特别在加密货币领域更为重要,因为数字资产价格波动较大

智能合约自动管理抵押品,当抵押品价值下跌到某个临界点时会自动清算,通常要求较高的超额抵押率来应对加密货币的高波动性

由于账户是匿名的(pseudonymous),我们需要一些机制来防止盗窃(theft) 同时需要设置缓冲区,这样当抵押品价值下降时,PLF不会承担所有损失 Loans 采用 Overcollateralised(由 over-collateralisation ratio 定义),即借款人需要抵押的资产价值要高于贷款价值

抵押(post)1.50美元的资产A才能借到1.00美元的资产B Over collateralisation Ratio: 150%

贷款流程:

  1. Alice将代币A存入一个池化代币A资金的智能合约中
  2. Bob将代币B存入一个池化代币B资金的智能合约中
  3. Bob使用他存入的代币B作为抵押,借出一定数量的代币A,并需要支付利息
  4. Alice因为她提供(借出)的代币A而赚取利息

资金池模式:不是点对点借贷,通过智能合约创建流动性池,提供者将资金存入相应的资金池。 双方角色:Alice:资金提供者(放贷方)。Bob:借款人。双方通过智能合约自动撮合,无需直接互动。 经济激励:提供者(Alice)通过提供流动性赚取利息收益。借款人(Bob)通过支付利息获得所需资产,利率由市场供需决定。

为什么 Overcollateralised Load 有用?

某些可借资产可能具有额外的功能(如在某些协议中的投票权)或者带有收入流(例如:协议发行的代币向持有者支付分红 dividen)。换句话说,借贷者(也就是抵押者)并不期望其资产被卖掉。

Short(做空)资产的策略:

  • 供应资产A并借入资产B
  • 卖出资产B并买入资产A
  • 如果资产B价格下跌,则以较低价格买回资产B并偿还贷款 (这是一个典型的做空交易策略)

Long(做多)资产的策略:

  • 用户在所提供的资产价值上涨时获利,例如:提供ETH作为抵押,借入USDC
  • 将USDC卖出换成更多ETH
  • 期待ETH价格升值获利
Short Long
"卖高买低"的策略
借入资产并卖出
预期资产价格会下跌
"买低卖高"的策略
买入资产并持有
预期资产价格会上涨

Liquidation 清算

Price Volatility

价格可能会波动(Volatile) 如果抵押品变得毫无价值,那么 PLF 将承担损失(Absorb the loss) 确保 PLF 受到保护所需的机制 → Liquidations 清算

Liquidation

当 Loan 的 Overcollateralisation Ratio 下降到指定阈值时,Liquidator 可以通过折价购买部分 Collateral 来代表 borrorer 偿还(repay)未偿还的借入金额。

  • Liquidator 偿还借入的代币,并以折扣价获得已抵押的资产(post collateral)(外部触发) 这可以视为一种套利机会

  • 任何人都可以成为 Liquidator - 通常由 keepers 监控哪些贷款可以被清算

    这是一个开放的系统,不限制谁可以参与清算

    Keepers 是特殊的参与者,他们持续监控系统寻找清算机会

  • PLF 可能会对单个 Validator 可以偿还的金额设置上限(称为"平仓因子",close factor) 这是为了防止单个清算人垄断清算机会通过设置上限来确保系统的公平性

  • 在计算用户的 collateralisation ratio 时需要依赖 Oracles 提供资产价格 预言机(Oracles)是提供外部价格数据的可信数据源 这些价格数据对于确定是否需要清算至关重要

Liquidation threshold 清算阈值 $L_t$: 这是指贷款变为 Undercollateral 的百分比 即如果借入资产的价值上升到抵押品价值的x%以上,贷款就会被视为抵押不足

Health Factor 健康因子: Aave 的例子 $$ H = \frac{\sum \text{Collateral(in ETH)}\times L_t}{\text{Borrow(in ETH)}} $$ 清算因子 $L_t \in (0, 1)$。如 $H < 1$,则可以被清算。

Liquidation penalty 清算惩戒: 这是指在清算过程中购买抵押品时的折扣(即对被偿还资产价格收取的费用,该费用以抵押资产的形式支付给清算人)。

例如 A deposit 1 ETH 并通过 Aava 借 1000 USDC。假设借款时 1ETH=1500USDC 假设Liquidation Threshold = 0.8,Liquidation Penalty = 10%且没有close factor

这时候健康度为: $$ H = \frac{1\times 0.8}{1000 / 1500} = 1.2 $$ 如果借款后 1ETH = 1200 USD,则 Alice 的 borrow 变成了 1000 / 1200 = 0.83 ETH,因此健康因子变成了 $$ H = \frac{1 \times .8}{.83} < 1 $$ 因此其资产变成了 liquidable的。如果一个 Liquidator 花了 1000USDC 购买其的资产,其可以购买 1000/1200 = 0.83333 ETH + Liquidation Penalty,即 0.83 * 1.1 = 0.916

而对于 Alice,其还剩 1 - 0.916 = 0.084 ETH

健康因子是衡量贷款安全性的关键指标:H越高,贷款越安全 当H > 1时,贷款是安全的 当H < 1时,贷款可以被清算

清算阈值($L_t$)是一个风险管理参数:它决定了多少抵押品价值可以用于借贷 较低的阈值意味着更保守的风险管理 较高的阈值允许更多的借贷,但风险也更大

清算罚金机制的作用:激励清算人参与维护系统安全 对借款人形成警示,促使其保持健康的抵押率 补偿协议和清算人承担的风险

Features

智能合约持有一些被提供的代币

用户可以借入或提供一定数量的代币

借出总量占提供总量的百分比被称为该代币"市场"的 Ultilisation(使用率)

当使用率达到100%时,没有闲置流动性 idle liquidity(合约中没有可用资金!)

借款成本由特定的 interest rate model(利率模型 ) 决定

interest rate model 利率模型根据 utilisation 计算利率(例如线性模型、分段模型) 目的是平衡供需,维持市场效率 高使用率→高利率→激励更多存款 低使用率→低利率→鼓励更多借款 通过市场机制自动调节供需平衡

一个PLF可能为每种代币设置一个市场/智能合约

Stablecoin

一个 Cryptocurrency 使用额外的经济学结构去稳定其价格和购买力(purchase power)

Currency Peg/货币锚定:将货币 X 与目标货币 Y 之间固定汇率。例如:百慕大元。 目标可以是任何东西:例如,黄金、一篮子资产、SCR(特别提款权)中香蕉的价格。

Stablecoin 可以分为 3 类:

  1. Custodial stablecoins:需要依赖第三方机构来管理抵押品 例如:USDT (Tether)、USDC等 工作原理:用户存入美元等法币,第三方机构负责保管这些资金,并按1:1比例发行稳定币 优点:Easy peg keeping. 结构简单,易于理解 缺点:需要信任第三方机构的诚信和能力,缺乏weaker censorship resistance

  2. CBDCs:中央银行数字货币 (Central Bank Digital Currencies): 由政府/中央银行发行的数字货币,是法定货币(fiat currency)的补充,而非替代 例如:中国的数字人民币(e-CNY) 特点:具有法定货币地位,由中央银行担保,可与传统货币系统无缝对接。不必以资产或法定储备为背书。

  3. Non-custodial stablecoins 非托管型稳定币:不依赖第三方机构,使用智能合约和经济机制来维持稳定性 例如:DAI 工作原理: 使用加密资产超额抵押 通过算法自动调节供需 依靠经济激励机制而非信任 优点:去中心化程度高,无需信任第三方 缺点:机制相对复杂,可能面临特殊市场条件下的风险

这三种类型代表了数字货币在中心化程度和信任机制上的不同选择:从完全依赖第三方(托管型),到政府背书(CBDCs),再到完全去中心化(非托管型)。每种类型都有其特定的应用场景和优缺点。

Non-Custodial Stablecoin

区块链上的资产(如比特币、以太币)是完全数字化的,它们与现实世界的资产(如黄金、房地产)之间没有天然的联系

"无需信任"(trustless):不依赖任何中心化机构,"无需许可"(permissionless):任何人都可以参与,不需要获得授权,这两个特性排除了使用现实世界资产作为抵押物的可能性

不能使用传统资产(如美元)作为抵押,需要找到纯数字化、去中心化的稳定机制,必须在区块链生态系统内部解决价格稳定问题

Overcollateralising Stablecoin

我们可以用非稳定资产作为抵押品来创建稳定币,具体步骤如下:

  1. 锁定(Lock): 锁定非稳定资产作为 collateral 例如:锁定以太币(ETH)

  2. 铸造(Mint): 根据最低抵押率要求,铸造价值低于抵押品的稳定币 示例:锁定价值150美元的抵押品,铸造100美元的稳定币 这就是"超额抵押"的含义:抵押品价值必须显著高于铸造的稳定币价值

  3. 清算(Liquidate): 当抵押品价值降至特定阈值以下时,触发清算拍卖 买家必须提供相应数量的稳定币来购买被清算的抵押品 这个机制确保了系统的安全性

核心原则:通过这种机制,确保稳定币始终至少有1美元的资产支持。

注意:与 PLF 类似,稳定币也需要预言机(oracles)来提供抵押品的价格信息。

初始状态:

  • 小明存入1 ETH (价值 150美元)
  • 获得100个稳定币
  • 初始抵押率 = 150%

ETH价格下跌至120美元:

  • 新抵押率 = 120%
  • 触发清算

清算过程:

  • 清算人支付100个稳定币
  • 获得1 ETH(价值120美元)
  • 小明失去抵押品,但债务被清除

清算的真正目的:

  • 不是为了收回更多货币
  • 而是为了维持系统的抵押充足性
  • 确保每个稳定币始终至少有1美元的资产支撑

稳定机制:

  • 稳定币价格是通过供需来维持的
  • 如果价格高于1美元,人们会铸造更多稳定币卖出
  • 如果价格低于1美元,清算机制会收回一些稳定币

所以不是"下跌时收回更多货币",而是"确保每个稳定币始终有足够的抵押品支撑"。

稳定币的价格是由其在公开市场上的交易价格决定的。

  • 为了影响价格,我们需要影响这些市场:peg-stability mechanism 锚定稳定机制
  • 如果价格高于锚定价格 → 激励增加供应并卖出稳定币
  • 如果价格低于锚定价格 → 激励减少供应并购买稳定币

抵押率(Collateralization Ratio)设定最低抵押率为150% - 这是安全底线,不是固定铸币比率

用户可以选择更高的抵押率: 可以存200美元ETH,只铸造100个稳定币(200%抵押率) 可以存300美元ETH,只铸造100个稳定币(300%抵押率)

更高抵押率 = 更大安全边际 150%抵押:ETH跌20%就可能被清算 200%抵押:ETH跌35%才会面临清算风险

可以根据市场情况调整: 市场波动大时:选择更高抵押率 市场稳定时:可以接近最低要求

用户可以: 随时增加抵押品提高抵押率 在安全范围内取出多余抵押品 根据市场情况调整策略

Example: MakerDAO’s DAI

让我解释 MakerDAO's DAI 的运作机制:

  1. 金库开启 (Vault opening):用户可以:

    • 存入ETH作为抵押品
    • 指定两个关键数值:
      1. 抵押品数量(比如存入2 ETH)
      2. 想铸造的DAI数量(比如借出2000 DAI)
  2. **金库运行期间 (While vault open)**用户职责:

    • 持续监控抵押率
    • 防止触及清算线
    • 可以通过以下方式维持健康状态:
      1. 补充抵押品
      2. 归还部分DAI
      3. 或两者结合
  3. 清算机制 (Liquidation) 如果抵押率低于清算阈值:

    • 自动触发清算拍卖
    • 抵押品被拍卖
    • 用于偿还债务
  4. 金库关闭 (Vault closure) 用户可以通过:

    • 偿还全部借出的DAI
    • 取回抵押的ETH
    • 完成整个循环

实际运作示例:

  1. 开启:

    • 存入价值3000美元的ETH
    • 借出2000个DAI(抵押率150%)
  2. 监控期:

    • ETH价格下跌10%
    • 用户可能需要补充抵押品或还部分DAI
  3. 关闭:

    • 还回2000个DAI
    • 取回ETH

Collateral X, e.g. ETH, has a minimum collateralisation ratio of 150% (enforced by protocol) So for 150 USD of ETH, user can issue 100 USD Of DAI (the stablecoin) by creating a vault → Price of ETH can fall significantly without the collateral being worth less than the debt

Liquidation mechanism:

  • Assume Vault-V becomes liquidable
  • Vault collateral and debt automatically transferred to protocol
  • Collateral Auction: Liquidation contract starts to sell transferred collateral for DAI to cancel out the debt
  • Dutch auction: price starts high and falls until a bidder found
  • Difference between price offered for collateral in auction and on open market creates profit opportunity

How does DAI maintain it’s peg?

  • Key mechanism: repaying debt or minting more DAI creates profit opportunities as the price fluctuates (as explained before)
  • Interest rates: DAI charges minters (borrowers) a fee, which increases if the DAI price is below $1 and falls if the price is above $1
  • Creates an additional incentive to repay your debt if the fee is high
  • Liquidation mechanism: makes sure that there is always at least $1 of collateral backing each DAI

1. 抵押率规则

  • 最低抵押率:150%(由协议强制执行)
  • 示例: 存入价值150美元的ETH 最多可以借出100 DAI 这样即使ETH价格下跌,债务仍有保障

2. 清算机制详解 当金库(Vault)触发清算时:

  1. 抵押品和债务自动转移给协议
  2. 启动抵押品拍卖流程
  3. 采用荷兰拍卖模式:
    • 起拍价较高
    • 价格逐渐下降
    • 直到找到买家
  4. 套利机会:
    • 拍卖价格 vs 市场价格的差异
    • 吸引清算者参与

3. DAI 如何维持价格稳定(与1美元挂钩)

a) 价格调节机制: 当 DAI > $1:

  • 用户倾向铸造更多DAI
  • 增加供应,压低价格

当 DAI < $1:

  • 用户倾向偿还DAI
  • 减少供应,推高价格

b) 利率调节: 稳定费用(借贷利率):

  • DAI < $1:提高利率
  • DAI > $1:降低利率
  • 高利率刺激用户还债
  • 低利率鼓励用户借贷

c) 清算保障

  • 清算机制确保每个DAI至少有1美元价值的抵押品支持
  • 这为整个系统提供了安全底线

系统特点总结

  1. 多层保障:

    • 超额抵押
    • 动态利率
    • 清算机制
  2. 市场驱动:

    • 价格由供需决定
    • 套利者帮助维持稳定
  3. 自动化:

    • 清算过程自动执行
    • 利率自动调整
  4. 经济激励:

    • 利用套利机会
    • 利率调节行为
    • 清算奖励

这个系统通过多重机制和经济激励确保 DAI 的价格稳定在1美元附近,是一个精心设计的去中心化金融系统。

潜在的问题

让我帮你解释这些潜在问题:

  1. Soft-Pegged 软锚定问题
  • 非托管稳定币(如DAI)通常是软锚定的,价格会在目标价格附近波动fluctuates
    • 原因:交易费用和市场摩擦 friction
  • 实际影响:DAI价格可能在$0.98-$1.02之间波动
  1. Capital inefficiency 资本效率低下
  • 问题:过度抵押要求锁定大量资金

  • 例如:铸造1美元DAI需要锁定1.7美元ETH

  • 这意味着大量资本无法被有效利用

  • 增加了系统运营成本

  1. Oracle 依赖性

    • 系统需要外部价格信息才能运作

    • 预言机失效可能导致:

      • 错误的清算
      • 系统参数错误
      • 价格机制失效
  2. Death spirals 死亡螺旋风险 当抵押品价值快速下跌时:

    1. 触发大量清算
    2. 如果清算速度跟不上价格下跌
    3. 可能导致系统性风险
    4. 形成负反馈循环:
      1. 价格下跌
      2. 触发清算
      3. 抛售压力
      4. 进一步价格下跌
  3. 智能合约风险

    • 代码漏洞可能导致严重后果

    • 可能的风险:

      • 资金被盗
      • 系统参数被操纵
      • 清算机制失效

这些问题的实际影响:

  1. 稳定性挑战

    • 完全市场化的价格机制有其局限性

    • 极端市场条件下可能失效

  2. 效率问题

    • 高抵押率限制了系统规模

    • 增加了用户成本

  3. 技术风险

    • 预言机故障

    • 智能合约漏洞

    • 系统性风险