Skip to content

Latest commit

 

History

History
823 lines (628 loc) · 53.3 KB

wzl.md

File metadata and controls

823 lines (628 loc) · 53.3 KB
timezone
Asia/Shanghai

请在上边的 timezone 添加你的当地时区,这会有助于你的打卡状态的自动化更新,如果没有添加,默认为北京时间 UTC+8 时区 时区请参考以下列表,请移除 # 以后的内容

timezone: Pacific/Honolulu # 夏威夷-阿留申标准时间 (UTC-10)

timezone: America/Anchorage # 阿拉斯加标准时间 (UTC-9)

timezone: America/Los_Angeles # 太平洋标准时间 (UTC-8)

timezone: America/Denver # 山地标准时间 (UTC-7)

timezone: America/Chicago # 中部标准时间 (UTC-6)

timezone: America/New_York # 东部标准时间 (UTC-5)

timezone: America/Halifax # 大西洋标准时间 (UTC-4)

timezone: America/St_Johns # 纽芬兰标准时间 (UTC-3:30)

timezone: America/Sao_Paulo # 巴西利亚时间 (UTC-3)

timezone: Atlantic/Azores # 亚速尔群岛时间 (UTC-1)

timezone: Europe/London # 格林威治标准时间 (UTC+0)

timezone: Europe/Berlin # 中欧标准时间 (UTC+1)

timezone: Europe/Helsinki # 东欧标准时间 (UTC+2)

timezone: Europe/Moscow # 莫斯科标准时间 (UTC+3)

timezone: Asia/Dubai # 海湾标准时间 (UTC+4)

timezone: Asia/Kolkata # 印度标准时间 (UTC+5:30)

timezone: Asia/Dhaka # 孟加拉国标准时间 (UTC+6)

timezone: Asia/Bangkok # 中南半岛时间 (UTC+7)

timezone: Asia/Shanghai # 中国标准时间 (UTC+8)

timezone: Asia/Tokyo # 日本标准时间 (UTC+9)

timezone: Australia/Sydney # 澳大利亚东部标准时间 (UTC+10)

timezone: Pacific/Auckland # 新西兰标准时间 (UTC+12)


{wzl}

  1. 自我介绍:区块链硕士,defi研究者,web3学习者
  2. 你认为你会完成本次残酷学习吗?会的

Notes

2024.09.09

债务代币 摘要 债务代币是利息累积的代币,在借款和还款过程中铸造和销毁,代表代币持有者所欠的债务。主要有两种类型的债务代币:稳定利率债务代币和可变利率债务代币。此外,这些债务代币遵循 ERC20/EIP20 标准,但不可转让,提供多种方法以获取用户和池的最新借款信息及其他相关数据。

关键点 铸造与销毁: 债务代币是在借款和还款时铸造和销毁的,代表用户欠的债务。 类型: 主要有两种类型的债务代币:稳定债务代币和可变债务代币。 标准兼容性: 债务代币根据 ERC20/EIP20 标准建模,但不可转让,且不实现转账和授权功能。 用户债务查询: balanceOf() 方法总是返回用户最新累积的债务。 基础资产地址: 通过 UNDERLYING_ASSET_ADDRESS() 方法获取债务代币的基础资产地址。 借贷池地址: 债务代币关联的借贷池地址可以通过 POOL() 方法获得。 供给信息: 稳定债务代币提供多种方法以获取用户和协议的供给信息、平均利率等。

2024.09.08

IAToken 接口 摘要 文档详细描述了 IAToken 接口的定义以及相关功能,包括铸造和销毁 aTokens、转移资产和处理流动性事件等。它制定了铸造、销毁和转移资产的方法,确保了在不同情况下的流动性管理和资产转移的透明性与安全性。此外,文档还定义了多个重要事件,以便在相关操作执行时进行跟踪。

关键点 接口继承: IAToken 接口继承自 IERC20 和 IScaledBalanceToken,确保了代币功能和可扩展性。 铸造功能: 铸造函数用于将一定数量的 aTokens 铸造给用户,并更新流动性指数。 事件跟踪: 通过 Burn 事件跟踪 aTokens 的销毁,以及相应的资产转移情况。 转移记录: Transfer 事件在代币转移时被触发,便于记录所有转移活动。 销毁功能: 销毁函数从用户的账户中销毁 aTokens,并将底层资产发送到指定接收者。 储备金库铸造: mintToTreasury 函数用于将 aTokens 铸造到储备金库,支持流动性管理。 清算处理: transferOnLiquidation 函数处理清算事件时的代币转移,确保流动性和资产安全。

2024.09.07

IProtocolDataProvider 摘要 IProtocolDataProvider 是一个用于与 Aave 协议交互的智能合约接口,它定义了一系列函数以获取有关资产的信息,包括所有储备的代币列表、资产的配置数据、流动性数据和用户的储备数据。这些功能对于开发者了解每个资产的借贷情况及其操作状态至关重要。

重点 TokenData 数据结构: 该接口包含了一种名为 TokenData 的数据结构,表示代币的基本信息。 地址提供者: 函数 ADDRESSES_PROVIDER() 返回 LendPoolAddressesProvider 的地址提供者。 储备资产列表: getAllReservesTokens() 函数用于获取所有储备资产的代币列表。 A 代币列表: getAllATokens() 函数提供所有 A 代币的列表。 资产配置数据: getReserveConfigurationData(address asset) 函数可以获取特定资产的配置数据,涵盖多种参数。 流动性和债务信息: getReserveData(address asset) 函数返回资产的流动性和债务相关信息。 用户储备数据: getUserReserveData(address asset, address user) 函数用于获取特定用户与特定资产的储备数据。

2024.09.06

ILendingPoolAddressesProviderRegistry 摘要 ILendingPoolAddressesProviderRegistry 是 Aave 协议的一部分,主要用于多个市场的 LendingPoolAddressesProvider 的索引。该合约允许注册和注销地址提供者,并提供查找注册的地址提供者列表和相应市场 ID 的功能。

关键点 主要合约: ILendingPoolAddressesProviderRegistry 是 Aave 协议的核心合约之一,专门用于管理多个市场的地址提供者。 事件跟踪: 合约中定义了事件,用于注册和注销地址提供者,便于开发者和用户跟踪地址的变更。 地址检索: 用户可以方便地检索到已注册的地址提供者列表,从而进行有效的市场管理。 唯一标识: 每个地址提供者通过唯一的 ID 与其相应市场关联,确保了市场的唯一性和可识别性。 技术标准: 合约设计采用 Solidity 0.6.12,符合开源合约的标准,确保了代码的安全性和可维护性。 市场协调: 此合约有助于协调不同市场之间的通讯和操作,提升了协议的互操作性。 更新记录: 此合约的最后更新发生在三年前,显示出该文档维护的时间信息,提醒用户关注合约的更新动态。

2024.09.05

AAVE 在区块链领域是一个开源和非托管的加密货币借贷协议。其目标是创建一个开放、透明并且不需要信任的金融生态系统,使用户能够通过区块链技术在全球范围内进行借贷活动。

在 AAVE 平台上,用户可以存入或借出一系列的加密货币,包括 ETH(以太坊)、USDT(泰达币)、DAI(Dai 稳定币)等。存款人将他们的资产存入特定的市场合约,并获得代表他们存款的 aTokens。这些 aTokens 会随着时间的推移而产生利息。

AAVE 平台的另一个独特之处是它支持 "闪电贷"。闪电贷是一种无抵押借款,借款人可以在一笔交易中借款和还款,只要他们在交易结束时归还借款,无需提供任何抵押物。

总的来说,AAVE 是一个利用区块链技术创造的去中心化金融(DeFi)借贷平台。

简单来说,AAVE就是区块链上的“银行”。

2024.09.04

ILendingPool V2 是一个智能合约接口,提供多种功能用于管理借贷流程,包括存款、提款、借款、还款等。该接口还定义了一系列事件,以便在执行相关操作时记录状态变化,确保透明度和可追溯性。同时,它支持灵活的利率策略和抵押品管理,提高了资金的使用效率和借贷的安全性。

关键点 存款功能: 用户可以将基础资产存入借贷池,并获得相应的aTokens作为回报。 提款功能: 用户可以提取其存入的基础资产,销毁对应的aTokens。 借款机制: 用户可以在满足抵押要求的情况下借入基础资产,可选稳定或浮动利率。 还款操作: 用户可以还款,从而减少其债务,并销毁相应的债务代币。 闪电贷功能: 本接口允许在单个交易中快速借入资金,必须在交易结束前还清。 抵押品管理: 用户可以启用或禁用特定资产作为抵押品,以便在借贷活动中使用。 财务状态查询: 提供用户的账户数据,包括总抵押物、总债务及可借款余额等信息。

2024.09.03

Aave Protocol v2 概述 Aave Protocol v2 是一个去中心化金融(DeFi)协议,提供借贷服务。其核心合约包括多个主要组件,确保用户能够高效地进行资产借贷和管理。以下是主要合约及其功能的详细说明:

主要合约 LendingPool

Aave Protocol 的主要入口,用户与 Aave 进行大多数交互的地方,包括存款、借款等操作。 LendingPoolAddressesProvider

协议的主要地址注册合约,负责特定市场的合约地址管理。用户可以通过调用此合约获取最新的合约地址。 LendingPoolAddressesProviderRegistry

包含不同市场的活动 LendingPoolAddressesProvider 地址列表。 aTokens

代币化的存款,用于在 Aave 协议中生成收益。它们实现了大多数标准的 EIP-20/ERC20 代币方法,并包含 Aave 特定的方法,如 permit(),支持无手续费转账和单交易批准及操作。 稳定和可变债务代币

用于表示借款位置的代币,禁用了大多数标准的 EIP-20/ERC20 方法,因为债务代币不可转让。 辅助合约 LendingPoolCollateralManager

通过 delegatecall 实现抵押品管理的操作,包括 liquidationCall() 函数。该函数应仅通过主 LendingPool 合约调用。 Lending Pool Configurator

提供配置 LendingPool 合约的功能,包括激活/禁用储备、借款、抵押品使用等。所有相关操作都会在区块链上发出事件,便于监控。 Interest Rate Strategy

存储计算和更新特定储备利率所需的信息。每个合约存储优化的基础曲线,利率根据借款金额和总流动性变化。 Price Oracle Provider

提供 Aave 协议所需的资产价格数据,使用 Chainlink 作为主要数据源,并在必要时提供后备方案。 Library contracts

Aave 协议中使用的各种库合约,详细信息可在 Github 上找到。 相关链接 Aave Protocol v2 GitHub Aave Protocol v2 NPM 包 通过这些合约,Aave Protocol v2 提供了一个灵活且高效的借贷平台,用户可以在此进行资产管理和收益生成。

2024.09.02

Aave协议概述 摘要 Aave是一个去中心化的非托管流动性协议,用户可以作为存款人或借款人参与其中。存款人通过提供流动性赚取被动收入,而借款人则可以选择超额抵押或单区块流动性借款。该协议通过以太坊区块链上的智能合约实现,确保安全性并消除中介的需求。 工作流程 image 这张图展示了Aave协议的工作流程和参与者。图中分为三个主要部分: 参与者 贷款人(Lenders):提供流动性到Aave协议中。 借款人(Borrowers):从Aave协议中借款。 钱包(Wallets):用于存储和管理用户的加密资产。 去中心化应用(Dapps):与Aave协议集成的去中心化应用程序。 Aave协议功能 Aave协议提供了以下几种主要功能:

固定利率贷款(Stable Rate Loan):提供固定利率的贷款。 浮动利率贷款(Variable Rate Loan):提供浮动利率的贷款。 利息代币(Interest Bearing Tokens):用户存入的资产会生成利息代币,代表用户的存款和应得的利息。 无抵押闪电贷(Uncollateralized Flash Loans):提供无需抵押的闪电贷,必须在同一交易中偿还。 资金池 每种贷款类型和功能都对应一个储备资金池(Reserve LendingPool),这些资金池用于管理和分配贷款和存款。

工作流程 贷款人将资金存入Aave协议的储备资金池。 借款人可以选择固定利率或浮动利率贷款,从储备资金池中借款。 用户的存款会生成利息代币,代表他们的存款和应得的利息。 去中心化应用可以与Aave协议集成,利用无抵押闪电贷等功能。 这张图清晰地展示了Aave协议的参与者、功能和资金流动的整体架构。

2024.09.01

Maker Protocol Vow合约概述 合约名称 vow.sol

类型/类别 DSS —> 系统稳定器模块

  1. 引言(摘要) 摘要: Vow合约代表Maker协议的资产负债表。具体而言,Vow作为系统盈余和系统债务的接收者。其主要功能是通过债务(Flop)拍卖来覆盖赤字,并通过盈余(Flap)拍卖来释放盈余。

Vow合约交互

  1. 合约细节 Vow(术语表) sin: 系统债务队列。 Sin: 队列中的总债务金额。 Ash: 拍卖中的总债务金额。 wait: 债务队列的长度。 sump: 债务拍卖出价大小,即任何一次债务拍卖要覆盖的固定债务数量。 dump: 债务拍卖的批量大小,即用于覆盖lot/sump的初始MKR数量。 bump: 盈余拍卖的批量大小,即任何一次盈余拍卖要出售的固定盈余数量。 hump: 盈余缓冲区,必须超过该值才能进行盈余拍卖。 清算管理器 Fess - 将不良债务推送到拍卖队列(将债务添加到队列)。 Flog - 释放排队的债务以进行拍卖(从队列中实现债务)。 Heal - vow调用heal在vat合约上以抵消盈余和债务(优化债务缓冲区)。 Kiss - 抵消盈余和拍卖中的债务。释放拍卖中的债务并进行Heal(vat.heal)。 Flap - 触发盈余拍卖(flapper.kick)。 Flop - 触发赤字拍卖(flopper.kick)。 vow合约调用kick在flop和flap上启动拍卖(债务和盈余拍卖)。

系统数据 系统配置 Vow.wait - Flop延迟 Vow.sump - Flop固定出价大小 Vow.dump - Flop起始批量大小 Vow.bump - Flap固定批量大小 Vow.hump - 盈余缓冲区 债务(SIN)队列 当一个Vault被清算(bite),被扣押的债务会被放入Vow的拍卖队列中(标记为sin[timestamp] - 系统债务单位)。这发生在bite操作的区块时间戳。债务在经过规定的Vow.wait(flop延迟)时间后,可以通过flog释放进行拍卖。

Sin在债务队列中存储,但可拍卖的债务并没有明确存储。这是因为可拍卖的债务是通过比较Sin(即持有队列中的债务)与Vow在Vat.dai[Vow]中记录的DAI余额得出的。例如,如果Vat.sin[Vow]大于Vow.Sin和Ash的总和,则差额可能有资格进行Flop拍卖。

注意:

在执行cat.bite / vow.fess时,债务tab被添加到sin[now]和Sin中,这会阻止该tab金额发送到flop拍卖,所有DAI通过flip拍卖回收。理论上,解除Sin中的tab金额并不是必要的,但在实践中实际上是必要的。如果不解除该债务,则在需要发送flop拍卖时,可能会有一个大的Sin阻止它。因此,总结来说,每个sin[era]的注册金额> 0时,应在启动flop拍卖之前进行flog。

每个sin[era]不需要是单个bite,它将把所有在同一以太坊区块中的bite组合在一起。

auction-keeper将flog每个具有正Sin的era,如果woe + Sin >= sump,其中woe = vat.sin[vow] - vow.Sin - vow.Ash。

会计 Vow.Sin - 计算系统中排队的总债务。 Vow.Ash - 计算拍卖中的总债务。 3. 关键机制与概念 需要注意的是,Maker协议将偏离其均衡状态。这发生在通过抵押品拍卖和Vault稳定费用积累接收系统债务和系统盈余时。Vow合约包含触发债务(flop)和盈余(flap)拍卖的逻辑,这些拍卖旨在纠正系统的货币失衡。

总结

系统债务: 在Vault被清算的情况下,其债务被Vow合约作为Sin(系统债务单位)接收。Sin金额随后被放入Sin队列。 系统盈余: 由于稳定费用的积累,导致Vow中有额外的内部DAI。然后通过盈余拍卖(flap)释放该盈余。 4. 注意事项(潜在用户错误来源) 当Vow被升级时,必须同时更新多个引用(End、Jug、Pot)。 Vow是唯一具有非零Sin余额的用户(不是vat不变,因为可以有多个Vow)。 Ilk存储分布在Vat、Jug、Pot和Vow模块中。cat还存储清算罚金和最大拍卖规模。 稳定费用的一部分通过在每次调用Pot.drip()时增加Vow中的Sin数量来分配给DAI储蓄率(DSR)。 设置不正确的vow值可能导致盈余丢失或被盗。 5. 失败模式(操作条件的界限与外部风险因素) Vault清算 如果没有参与者调用kiss、flog或heal来调和/排队债务,可能会出现失败模式。 拍卖 如果用户不调用flap或flop来启动拍卖,可能会出现失败模式。 Vow.wait设置过高(wait时间过长),将导致无法进行flop拍卖。这带来了低抵押品的风险。 Vow.wait设置过低,可能导致过多的flop拍卖,同时阻止flap拍卖的发生。 Vow.bump设置过高,可能导致无法进行flap拍卖。因此,如果没有进行flap拍卖,将不会有MKR竞标,进而不会有成功拍卖的自动MKR燃烧。 Vow.bump设置过低,导致flap拍卖对参与者不盈利(lot大小低于燃气费用)。因此,在flap拍卖中不会有MKR竞标,结果将没有自动MKR燃烧。 Vow.sump设置过高,导致无法进行flop拍卖。这将导致系统无法从低抵押状态中恢复。 Vow.sump设置过低,flop拍卖对参与者不盈利(lot大小低于燃气费用)。这将导致由于自动MKR铸造而导致的MKR通货膨胀。 Vow.dump设置过高,flop拍卖可能无法关闭或铸造大量MKR,造成MKR稀释的风险和治理攻击的可能性。 Vow.dump设置过低,flop拍卖必须多次kick才能引起保持者的兴趣。 Vow.hump设置过高,flap拍卖将永远不会发生。如果没有进行flap拍卖,则不会出售盈余,因此也不会燃烧竞标的MKR。 Vow.hump设置过低,可能导致盈余通过flap拍卖被拍卖,而在用于抵消清算的sin之前,导致需要flop拍卖,使系统运行效率低下。

2024.08.31

Maker Protocol债务拍卖概述 合约名称 flop.sol

类型/类别 DSS —> 系统稳定器模块

  1. 引言(摘要) 摘要: 债务拍卖用于通过拍卖固定数量的MKR来重新资本化系统。在此过程中,竞标者通过提供接受减少的MKR数量来竞争,以换取他们最终将支付的DAI。

Flop与Maker Protocol的交互

  1. 合约细节 Flopper(术语表) flop - 债务拍卖(通过通货膨胀MKR并出售以换取稳定币) lot - 拍卖数量 / 待售的MKR数量 guy - 最高出价者(地址) gal - 拍卖收入的接收者(接收DAI收入,通常是Vow合约) ttl - 出价有效期(单次出价的最大持续时间) beg - 最小出价减少量 pad - 在tick期间增加的lot大小(默认50%) tau - 最大拍卖持续时间 end - 拍卖结束时间 / 最大拍卖持续时间 kick - 启动拍卖 / 提交新的MKR出价 dent - 提交出价,减少lot大小(提交固定DAI出价并减少lot大小) deal - 认领获胜出价 / 结算已完成的拍卖 vat - Vat的地址 gem - MKR代币(地址) kicks - 总拍卖次数,用于跟踪拍卖id live - cage标志 wards [usr: address], rely/deny/auth - 授权机制 Bid - 特定拍卖的状态 {bid, lot, guy, tic, end} bid - DAI出价金额 / 支付的DAI tic - 出价到期 tick - 重启拍卖 由治理设置的参数 Maker治理投票者决定债务限额。当系统的DAI债务超过该限额时,将触发债务拍卖。

Maker治理设置Vow.dump,决定拍卖的起始lot以及pad,决定在tick期间lot可以增加多少。 只有Vow合约被授权调用kick(),治理合约被授权调用file()以更改beg、ttl、tau。 信息说明: cage将Flop设置为不再活跃,yank在全球结算期间用于将出价返回给竞标者,因为dent和deal无法再被调用。

  1. 关键机制与概念 Flop拍卖过程始于Maker治理投票者确定系统债务限额。债务拍卖在系统的DAI债务超过该限额时触发。

为了确定系统是否存在净债务,必须核对盈余、累积的稳定费用和债务。任何用户都可以通过向名为Vow的系统合约发送heal事务来完成此操作。如果存在足够的债务(即债务在治愈后大于Vow.sump),任何用户都可以发送Vow.flop事务以触发债务拍卖。

Flop是一种反向拍卖,保持者竞标他们愿意接受的最少MKR数量,以换取他们在拍卖结算时必须支付的固定DAI金额。竞标者基本上会以减少的lot数量的MKR竞争固定的DAI出价。一旦启动,bid将设置为拍卖出价大小(Vow.sump),lot将设置为足够大的数量(Vow.dump)。拍卖将在最新出价持续时间(ttl)过去或拍卖持续时间(tau)达到时结束。还款过程在首次出价时开始。首次出价将偿还系统债务,每个后续出价将偿还之前(不再获胜)的竞标者。当拍卖结束时,过程通过清理出价和为获胜竞标者铸造MKR来结束。

如果拍卖在没有收到任何出价的情况下到期,任何人都可以通过调用tick(uint auction_id)来重启拍卖。这将执行两项操作:

重置bids[id].end为now + tau 重置bids[id].lot为bids[id].lot * pad / ONE 拍卖交互示意图

拍卖期间的出价要求 在拍卖期间,lot数量将随着每个新的dent出价而减少,减少的数量为beg。例如,beg可以设置为5%,这意味着如果当前竞标者的lot为10(MKR)且出价为100(DAI),则下一个出价的lot最多为9.5(MKR),出价仍为100(DAI)。

提交出价 当一个出价被另一个竞标者击败时,新获胜者的内部DAI余额用于退款给之前的获胜竞标者。一旦提交,出价无法取消。

示例出价流程: Vow kick一个新的Flop拍卖。 竞标者1提交出价,减少lot大小,出价金额从初始金额减少。竞标者1的DAI余额在Vat中减少,Vow的DAI余额在Vat中增加。 竞标者2提交出价,减少竞标者1的lot。竞标者2的DAI余额在Vat中减少,竞标者1的DAI余额在Vat中增加(从而退款给竞标者1)。 竞标者1提交出价,减少竞标者2的lot。竞标者1的DAI = Vat.dai[bidder1] - bid;竞标者2的DAI = Vat.dai[bidder2] + bid。 竞标者2(以及所有其他竞标者)决定不再继续接受更低的lot,因此他们停止出价。一旦Bid.tic到期,竞标者1调用deal,新的MKR代币将铸造到他们的地址。 注意: 在Flop拍卖期间,beg实际上是最小减少量。在dent中,新的出价必须使lot * beg小于或等于当前的lot大小。由于Flop拍卖的理论是竞标者的出价是以更少的MKR代币(lot)换取相同数量的DAI(bid),因此beg是每个出价的减少量。

  1. 注意事项(潜在用户错误来源) 保持者(Keepers) 在运行保持者以在拍卖中进行出价时,主要的失败模式可能发生在保持者指定了不盈利的MKR价格时。此失败模式的原因在于,系统无法阻止用户在拍卖中支付显著高于代币公平市场价值的价格(这适用于所有拍卖类型,包括flip、flop和flap)。在Flop拍卖中,DAI金额在整个拍卖期间是固定的,因此保持者的风险在于,他们可能会做出“获胜”出价,支付DAI的出价但未能获得任何MKR(lot == 0)。这种不良策略的后续执行将受到其Vat余额中DAI(而非MKR)数量的限制。

2024.08.30

Maker Protocol盈余拍卖概述 合约名称 flap.sol

类型/类别 DSS —> 系统稳定器模块

  1. 引言(摘要) 摘要: Flapper是一种盈余拍卖。这些拍卖用于将系统中的固定数量盈余DAI拍卖换取MKR。这些盈余DAI来自于Vaults积累的稳定费用。在这种拍卖类型中,竞标者以不断增加的MKR出价进行竞争。拍卖结束后,拍卖的DAI将发送给获胜竞标者,系统随后会燃烧从获胜出价中获得的MKR。

Flap与Maker Protocol的交互

  1. 合约细节 Flapper(术语表) Flap - 盈余拍卖(以MKR出售稳定币)[合约] wards [usr: address] - rely/deny/auth 授权机制 [uint] Bid - 特定拍卖的状态 [Bid] bid - 为lot(MKR)提供的数量 [uint] lot - 批量数量(DAI) [uint] guy - 最高出价者 [address] tic - 出价到期 [uint48] end - 拍卖结束时间 [uint48] bids (id: uint) - 按id存储所有Bid [映射] vat - 存储Vat地址 [address] ttl - 出价有效期/最大出价持续时间(默认:3小时) [uint48] beg - 最小出价增幅(默认:5%) [uint] tau - 最大拍卖持续时间(默认:2天) [uint48] kick - 启动拍卖/将新的DAI lot放入拍卖 [函数] tend - 提交出价,从而增加出价大小/提交MKR出价(增加bid) [函数] deal - 认领获胜出价/结算已完成的拍卖 [函数] gem - MKR代币 [address] kicks - 总拍卖次数 [uint] live - cage标志 [uint] file - 由治理用于设置beg、ttl和tau [函数] yank - 在全球结算期间用于将tend阶段的拍卖移动到End,通过检索抵押品并向最高出价者偿还DAI [函数] tick() - 如果没有出价且原始end已过,则重置end值。 由治理设置的参数 Maker治理投票者决定盈余限制。当系统中的Dai数量超过该限制时,将触发盈余拍卖。

通过file设置的参数:

beg ttl tau 注意: MKR治理还决定Vow.bump,它为每个Flap拍卖设置Bid.lot,以及Vow.hump,它决定盈余缓冲区。

  1. 关键机制与概念 该机制始于MKR持有者(Maker治理投票者)。MKR持有者通过投票系统指定系统中允许的盈余数量。一旦达成一致,盈余拍卖将在系统中Dai的盈余超过投票决定的数量时触发。系统盈余在Vow中确定,当Vow没有系统债务并且累积的Dai超过盈余拍卖大小(bump)加上缓冲区(hump)时。

为了确认系统是否存在净盈余,用户可以通过向名为“Vow”的系统合约发送heal事务来完成此操作。如果系统中存在净盈余,则盈余拍卖将在任何用户发送flap事务时开始。

拍卖开始后,固定数量(lot)的DAI将被出售。竞标者将以增加的MKR出价竞争固定的DAI数量。换句话说,竞标者将继续以超过设定的最小出价增幅(即beg)的MKR出价。

盈余拍卖在出价持续时间结束(ttl)且没有其他出价被提交或拍卖持续时间(tau)达到时正式结束。在拍卖结束时,获得的MKR将被销毁,从而减少整体MKR供应。

拍卖交互示意图

  1. 注意事项(潜在用户错误来源) 保持者(Keepers) 在运行保持者以在拍卖中进行出价时,主要的失败模式可能发生在保持者指定了不盈利的MKR价格时。此失败模式的原因在于,系统无法阻止用户在拍卖中支付显著高于代币公平市场价值的价格(这适用于所有拍卖类型,包括flip、flop和flap)。在flap拍卖中表现不佳的保持者面临着为DAI支付过高MKR的风险,因为出价大小的上限仅限于他们的MKR余额。

拍卖中的出价增幅 在tend过程中,每次新的tend出价将增加beg百分比。竞标者必须知道拍卖的id,指定正确的lot数量,出价至少比上一个出价高出beg%,并且必须有足够的MKR余额。一个风险是“前跑”(front-running)或恶意矿工。在这种情况下,诚实的保持者出价

过去出价 + ‘ b e g ‘ 过去出价+‘beg‘ 将在不诚实的保持者出价之前提交,从而阻止诚实保持者的出价被接受,迫使他们以更高的价格重新出价。

快速示例: beg可以设置为3%,这意味着如果当前竞标者出价为1 MKR,则下一个出价必须至少为1.03 MKR。整体而言,出价增幅系统的目的是激励早期出价并加快拍卖过程。

错误地提交出价 竞标者将MKR代币从他们的地址发送到系统/特定拍卖。如果一个出价被另一个出价击败,失败的出价将退还到该竞标者的地址。然而,需要注意的是,一旦提交出价,就无法取消。唯一可能的方式是如果出价被击败(或如果系统进入全球结算)。

出价流程示意图: Vow kick一个新的Flap拍卖。 竞标者1发送出价(MKR),使bid超过在kick时设定的初始0值。 接下来,竞标者2出价,至少增加竞标者1的出价beg。 竞标者1然后出价,至少增加竞标者2的出价beg。 竞标者2以及所有其他参与拍卖的竞标者决定不再继续出更高的出价,因此他们停止出价。一旦Bid.tic到期,竞标者1调用deal,盈余DAI代币将发送到获胜竞标者的地址,系统随后销毁从获胜竞标者那里获得的MKR。 5. 失败模式(操作条件的界限与外部风险因素) 其他失败模式 由于MKR被销毁而导致的失败:可能出现的情况是,MKR代币使交易回滚(例如,被停止或Vow的调用burn()权限被撤销)。在这种情况下,deal无法成功,直到有人解决MKR代币的问题。 当存在大量盈余时:这将导致许多Flap拍卖的发生,因为盈余超过bump + hump总是以bump增量进行拍卖。然而,拍卖是并行进行的,因此这将“淹没保持者市场”,可能导致任何拍卖上出价过少。

2024.08.29

Maker Protocol的盈余拍卖概述 合约名称 flap.sol

类型/类别 DSS —> 系统稳定器模块

  1. 引言(摘要) 摘要: Flapper是一种盈余拍卖。这些拍卖用于拍卖系统中固定数量的盈余Dai,以换取MKR。这些盈余Dai来自于从Vaults累积的稳定费用。在这种拍卖类型中,竞标者通过增加MKR的出价进行竞争。一旦拍卖结束,拍卖的Dai将发送给获胜竞标者,系统随后会销毁从获胜出价中获得的MKR。

Flap与Maker Protocol的交互

  1. 合约细节 Flapper(术语表) Flap - 盈余拍卖(以MKR出售稳定币)[合约] wards [usr: address] - rely/deny/auth 授权机制 [uint] Bid - 特定拍卖的状态 [Bid] bid - 为lot(MKR)提供的数量 [uint] lot - 批量数量(DAI) [uint] guy - 最高出价者 [address] tic - 出价到期 [uint48] end - 拍卖结束时间 [uint48] bids (id: uint) - 按id存储所有Bid [映射] vat - 存储Vat地址 [address] ttl - 出价有效期/最大出价持续时间(默认:3小时) [uint48] beg - 最小出价增幅(默认:5%) [uint] tau - 最大拍卖持续时间(默认:2天) [uint48] kick - 启动拍卖/将新的DAI lot放入拍卖 [函数] tend - 提交出价,从而增加出价大小/提交MKR出价(增加bid) [函数] deal - 认领获胜出价/结算已完成的拍卖 [函数] gem - MKR代币 [address] kicks - 总拍卖次数 [uint] live - cage标志 [uint] file - 由治理用于设置beg、ttl和tau [函数] yank - 在全球结算期间用于将tend阶段的拍卖移动到End,通过检索抵押品并向最高出价者偿还DAI [函数] tick() - 如果没有出价且原始end已过,则重置end值。 由治理设置的参数 Maker治理投票者决定盈余限制。当系统中的Dai数量超过该限制时,将触发盈余拍卖。

通过file设置的参数:

beg ttl tau 注意: MKR治理还决定Vow.bump,它为每个Flap拍卖设置Bid.lot,以及Vow.hump,它决定盈余缓冲区。

  1. 关键机制与概念 该机制始于MKR持有者(Maker治理投票者)。MKR持有者通过投票系统指定系统中允许的盈余数量。一旦达成一致,盈余拍卖将在系统中Dai的盈余超过投票决定的数量时触发。系统盈余在Vow中确定,当Vow没有系统债务并且累积的Dai超过盈余拍卖大小(bump)加上缓冲区(hump)时。

为了确定系统是否有净盈余,必须对系统中的收入和债务进行核对。任何用户都可以通过向名为“Vow”的系统合约发送heal交易来完成此操作。如果系统中存在净盈余,则在任何用户向Vow合约发送flap交易时,盈余拍卖将开始。

拍卖开始后,固定数量(lot)的DAI将被出售。竞标者将以增加的MKR出价竞争固定的DAI数量。换句话说,竞标者将继续以超过设定的最小出价增幅(即beg)的MKR出价。

盈余拍卖在出价持续时间结束(ttl)且没有其他出价被提交或拍卖持续时间(tau)达到时正式结束。在拍卖结束时,获得的MKR将被销毁,从而减少整体MKR供应。

拍卖交互示意图

  1. 注意事项(潜在用户错误来源) 保持者(Keepers) 在运行保持者(更多信息这里)以在拍卖中进行出价时,主要的失败模式可能发生在保持者指定了不盈利的MKR价格时。此失败模式的原因在于,系统无法阻止用户在拍卖中支付显著高于代币公平市场价值的价格(这适用于所有拍卖类型,包括flip、flop和flap)。在flap拍卖中表现不佳的保持者面临着为DAI支付过高MKR的风险,因为出价大小的上限仅限于他们的MKR余额。

拍卖中的出价增幅 在tend过程中,每次新的tend出价将增加beg百分比。竞标者必须知道拍卖的id,指定正确的lot数量,出价至少比上一个出价高出beg%,并且必须有足够的MKR余额。一个风险是“前跑”(front-running)或恶意矿工。在这种情况下,诚实的保持者出价

将在不诚实的保持者出价之前提交,从而阻止诚实保持者的出价被接受,迫使他们以更高的价格重新出价((过去出价 + beg) + beg)。不诚实的保持者需要支付更高的燃气费用,以尝试让矿工优先处理他们的交易,或者与矿工勾结以确保他们的交易优先处理。随着出价接近MKR<>DAI的当前市场价格,这一点可能变得尤为重要。

快速示例: beg可以设置为3%,这意味着如果当前竞标者出价为1 MKR,则下一个出价必须至少为1.03 MKR。整体而言,出价增幅系统的目的是激励早期出价并加快拍卖过程。

错误地提交出价 竞标者将MKR代币从他们的地址发送到系统/特定拍卖。如果一个出价被另一个出价击败,失败的出价将退还到该竞标者的地址。然而,需要注意的是,一旦提交出价,就无法取消。唯一可能的方式是如果出价被击败(或如果系统进入全球结算)。

出价流程示意图: Vow kick一个新的Flap拍卖。 竞标者1发送出价(MKR),使bid超过在kick时设定的初始0值。竞标者1的MKR余额减少,Flap的余额增加了出价大小。bid.guy从Vow地址重置为竞标者1的地址,bid.tic重置为now + ttl。 接下来,竞标者2出价,至少增加竞标者1的出价beg。竞标者2的MKR余额减少,竞标者1的余额增加了竞标者1的出价。竞标者2与竞标者1的出价之间的差额从竞标者2发送到Flap。 竞标者1然后出价,至少增加竞标者2的出价beg。竞标者1的MKR余额减少,竞标者2的MKR余额增加了竞标者2的出价。竞标者1增加的出价金额从竞标者1发送到Flap。 竞标者2以及所有其他参与拍卖的竞标者决定不再继续出更高的出价,因此他们停止出价。一旦Bid.tic到期,竞标者1调用deal,盈余DAI代币将发送到获胜竞标者的地址(竞标者1)在Vat中,系统随后销毁从获胜竞标者那里获得的MKR。gem.burn(address(this), bids[id].bid)。 5. 失败模式(操作条件的界限与外部风险因素) 其他失败模式 由于MKR被销毁而导致的失败 可能出现的情况是,MKR代币使交易回滚(例如,被停止或Vow的调用burn()权限被撤销)。在这种情况下,deal无法成功,直到有人解决MKR代币的问题。在停止的情况下,这可能包括部署新的MKR代币。任何使用MCD系统的个人都可以完成此新部署,但治理需要将其添加到系统中。接下来,需要用新的MKR代币替换旧的盈余和债务拍卖。最后,至关重要的是能够使用新版本进行投票。

当存在大量盈余时 这将导致许多Flap拍卖的发生,因为盈余超过bump + hump总是以bump增量进行拍卖。然而,拍卖是并行进行的,因此这将“淹没保持者市场”,可能导致任何拍卖上出价过少。这可能发生在保持者未能同时对多个拍卖进行出价,从而导致网络拥堵,因为所有保持者都试图对所有拍卖进行出价。这也可能导致潜在的保持者勾结(如果资本池足够大,他们可能更愿意合作以在系统的代价下均分)。

2024.08.28

Maker Liquidation 2.0 模块总结

  1. 引言 摘要: 在Maker协议中,清算是自动将不足抵押的Vault的抵押品转移至协议的过程,并随之转移Vault的债务。在清算合约(Dog)中,拍卖会迅速启动,以出售转移的抵押品以换取DAI,试图抵消现在分配给协议的债务。

  2. 特性 即时结算 与旧版Liquidation 1.2系统使用的英式拍卖不同,Liquidation 2.0采用荷兰拍卖,能够即时结算。拍卖价格根据初始价格和拍卖开始后的时间计算。没有锁定期的设计减少了拍卖参与者的价格波动风险,并加快了资本回收速度。

闪电借贷抵押品 这一特性使得参与者在没有持有DAI的情况下也能参与拍卖。参与者可以将拍卖的抵押品出售给其他协议以换取DAI,从而利用DeFi中的流动性。

价格作为时间的函数 价格与时间的曲线通过接口指定,价格在当前时间被视为拍卖初始价格和设定时间的函数。研究最有效的价格曲线仍在进行中,初步实现了线性、阶梯指数和连续指数等选项。

拍卖重置 拍卖可以在两种情况下重置:拍卖开始后经过的时间过长(由tail参数控制)或当前价格与初始价格的比率低于某一水平(由cusp参数指定)。重置过程将拍卖的起始时间调整为当前时间,并重新设定起始价格。

改进的清算者钱包安全性 如果清算者选择使用clipperCallee模式,则无需在该账户上存储DAI或抵押品。清算者只需持有足够的ETH以执行交易,所有操作都可以在一个交易中完成。

  1. 合约细节 由治理设置的参数 Abacus/LinearDecrease: 拍卖开始后价格降至零的秒数。 Clipper: 涉及拍卖的多个参数,如初始价格的增幅、清算激励等。 Vault清算 清算函数(Dog.bark)会自动转移不足抵押的Vault的抵押品,并启动拍卖。与Liquidation 1.2不同,Liquidation 2.0在调用清算函数时会一次性转移所有债务。

拍卖启动 拍卖启动函数(Clipper.kick)会进行多项检查并执行相关操作,包括验证调用者权限、检查清算是否启用、记录拍卖参数等。

清算激励机制 清算者的激励机制包括固定的DAI奖励和与清算债务规模线性相关的DAI奖励,以鼓励清算者减少系统风险。

  1. 结论 Maker的Liquidation 2.0模块通过引入荷兰拍卖、闪电借贷和改进的清算机制,显著提高了清算效率和安全性,降低了参与者的资金风险,为DeFi生态系统的稳定性做出了贡献。

2024.08.27

抵押模块概述 介绍 抵押模块是Maker去中心化稳定币系统(MCD)的关键组成部分。它为每种新抵押类型(称为ilk)在Vat合约中部署,并包含管理该特定抵押物的适配器和拍卖合约。

模块组件 抵押模块主要由三个核心组件组成:

Join适配器:

这些是智能合约,允许用户将抵押物存入和提取出Vat合约。 针对不同的代币类型,有不同的Join适配器,例如用于ERC20代币的GemJoin、用于以太币的ETHJoin和用于Dai稳定币的DaiJoin。 Join适配器确保系统的安全性,只允许受信任的合约与Vat进行交互。 Flip合约:

这些合约处理当一个Vault因抵押不足而被清算时的拍卖过程。 Flip合约拍卖抵押物,以生成Dai来偿还未偿还的债务。 其他合约:

抵押模块可能包含特定于该抵押类型的其他合约,例如价格预言机。 关键概念 受信任的适配器:Join适配器作为唯一的受信任入口,负责在系统中存入和提取抵押物。这确保了Vat的安全性和完整性。

抵押物特定逻辑:每个Join适配器都有略微不同的逻辑,以处理其支持的代币类型的独特特性(例如,ERC20与以太币)。

清算拍卖:Flip合约处理当Vault变得抵押不足时的拍卖过程,出售抵押物以生成Dai来偿还债务。

潜在风险 Vat升级:如果Vat合约升级,可能需要创建新的Join适配器以与更新后的合约配合使用。

抵押代币升级:如果抵押代币合约升级或被冻结,用户可能会暂时无法从系统中取回其抵押物。

钓鱼攻击:随着系统的发展,用户与恶意Join适配器交互的风险增加,这可能导致用户资金被盗。

2024.08.26

模块名称:Vault核心模块 类型/类别: Vault核心模块 —> ( Vat.sol, Spot.sol )

  1. 引言(摘要) 核心模块是系统的关键组成部分,包含了Maker协议的整个状态,并控制系统在预期正常操作状态下的核心机制。

  2. 模块详情 核心模块组件文档

  3. 关键机制和概念 Vat - 核心Vault、Dai和抵押物的状态保存在Vat中。Vat合约没有外部依赖,维护Dai的中央“会计不变性”。 Spot - poke是spot中唯一不需要身份验证的函数。该函数接受一个bytes32类型的ilk进行“poke”。poke调用两个external函数,peek和file。

  4. 注意事项(潜在用户错误来源) Vat中的方法尽可能通用,因此接口可能相当冗长。需要小心不要混淆参数的顺序。任何对Vat进行auth的模块都具有完全的根访问权限,因此可以窃取系统中的所有抵押物。这意味着添加新的抵押类型(及其适配器)存在相当大的风险。 当Cat升级时,必须同时更新多个引用(End、Vat.rely、Vow.rely)。它还必须依赖于End,即系统的pause.proxy()。 spotter中的方法相对简单,与dss的其他部分相比,用户错误的空间较小。在单个未授权的方法poke中,如果提供了错误的bytes32,调用将失败。任何对spot进行授权的模块都具有完全的根访问权限,因此可以添加和删除可以被“poke”的ilks。虽然这不会完全破坏系统,但可能会造成相当大的风险。

  5. 失败模式(操作条件的界限和外部风险因素) 编码错误 Vat - Vat中的错误可能是灾难性的,可能导致系统中所有Dai和抵押物的丢失(或锁定)。可能无法修改Vault或转移Dai。拍卖可能停止运行。关闭可能失败。 Spot - spot中的错误最有可能导致抵押物的价格不再更新。在这种情况下,系统需要授权一个新的spot,以便能够更新价格。总体而言,这不是灾难性的失败,因为这只会暂停所有价格波动一段时间。 数据源 Vat - 依赖一组受信任的预言机提供价格数据。如果这些价格源失败,可能会导致铸造无抵押的Dai,或者安全的Vault可能会被不公平地清算。 Spot - 也依赖一组受信任的预言机提供价格数据。如果这些价格源失败,可能会导致铸造无抵押的Dai,或者安全的Vault可能会被不公平地清算。 治理 Vat - 治理可以授权新的模块对Vat进行操作。这使得它们可以窃取抵押物(slip)或铸造无抵押的Dai(suck/添加无价值的抵押类型)。如果使这样做的经济保护措施失效,系统可能会变得脆弱,容易受到恶意行为者的攻击,导致抵押物被抽走。

2024.08.25

接下了,要详细学习一个maker协议的白皮书

Maker协议是一个去中心化的稳定币系统,其核心产品是与美元软挂钩的Dai稳定币。该协议通过超额抵押的保险库机制来铸造和管理Dai,并使用一系列智能合约模块来维持系统的稳定性和安全性。重要组成部分包括抵押品管理、清算机制、Oracle喂价、治理投票等。Maker协议旨在为加密货币生态系统提供一个稳定的价值单位和借贷平台。

要点 Dai稳定币通过需求和供给的动态平衡来维持与美元的软挂钩 用户可以通过锁定加密资产作为抵押品来铸造Dai 系统通过清算机制、MKR代币调节等多重防线来维持偿付能力 智能合约模块包括核心、抵押品、Dai、稳定器、Oracle等多个组件 使用复杂的利率累积函数来计算每个保险库的稳定费 紧急关闭机制作为最后的保护措施,确保用户资产安全 治理通过MKR代币投票来管理系统参数和升级

2024.08.24

DAI 的价值如何保持稳定?

除了降低 MakerDAO 作为贷方的风险外,CDP(抵押债仓)机制也有助于将 DAI 与美元挂钩。MakerDAO 还可以通过社区投票来调整稳定费和 DAI 储蓄率(即在 DAI 储蓄率智能合约中支付给质押者的利息),以控制 DAI 的供需。这三大工具共同作用,维持 DAI 与美元的 1:1 挂钩比率。下面我们具体分析其运行原理:

当 DAI 的价格低于挂钩比率时,系统会鼓励用户偿还债务、收回抵押品并销毁 DAI。为了实现这一目标,MakerDAO 可以通过提高稳定费,使借贷成本增加,从而减少 DAI 的供应。同时,DAO 还可以提高 DAI 储蓄率,增加对 DAI 的投资需求,从而拉高其价格。

当 DAI 的价格高于挂钩比率时,情况则相反。如果降低稳定费,DAO 将鼓励更多 DAI 的生成,增加总供应量,从而压低价格。此外,MakerDAO 还可以通过降低 DAI 储蓄率来减少 DAI 的需求,促使投资者寻找其他方式赚取利息。

这些机制协同运作,确保 DAI 的价格稳定,尽量维持其与美元的 1:1 挂钩比率。

2024.08.23

DAI的特性 挂钩机制:DAI与美元1:1挂钩,采用超额抵押机制。例如,125%的强制平仓比率意味着每1美元的DAI背后有1.25美元的加密货币作为抵押。 稳定性:DAI的稳定性依赖于稳定费和DAI储蓄率的调节,确保供需平衡。 学些了DAI模块的代码

2024.08.22

Maker 协议笔记 核心概念: Dai: 与美元挂钩的稳定币,旨在为加密货币经济带来稳定性。 MKR: 治理代币,持有者拥有投票权,可以决定协议的未来发展方向。 多抵押 Dai (MCD): Maker 协议的最新版本,允许用户抵押多种以太坊资产来生成 Dai。 主要功能: 允许用户通过抵押加密资产生成 Dai 稳定币。 提供更强大的挂钩机制,确保 Dai 的稳定性。 支持多种抵押品类型,为用户提供更多选择。 每个区块支付稳定费,提高协议的效率和可持续性。 目标: 为每个人创造一个包容性的经济赋权平台。 使每个人都能平等地进入全球金融市场。 重要性: Maker 协议是去中心化金融 (DeFi) 的一个重要组成部分。 它为用户提供了新的金融服务和工具。

2024.08.21

MakerDAO 简介

MakerDAO 是一个基于以太坊的去中心化金融(DeFi)协议,其核心是稳定币 DAI 和抵押贷款系统。用户可以将加密货币抵押到 MakerDAO 的智能合约中,借入与美元挂钩的稳定币 DAI。

运作机制

  1. 超额抵押:用户需要提供超过借款价值的抵押物才能借入 DAI。
  2. 稳定机制:MakerDAO 通过算法机制和 MKR 代币持有者的参与,确保 DAI 的稳定性。
  3. 清算机制:当抵押物价值下降至一定程度时,系统会自动清算抵押物,偿还借款并维护 DAI 的价格稳定。

主要功能

  • 稳定币:DAI 作为一种稳定币,可在 DeFi 应用中作为支付、借贷和交易媒介。
  • 借贷:用户可以将加密资产抵押给 MakerDAO,借入 DAI,无需中心化机构介入。
  • 抵押收益:用户可以将闲置的加密资产抵押给 MakerDAO,获得利息收益。
  • 去中心化治理:MakerDAO 采用去中心化治理机制,由 MKR 代币持有者共同投票决策协议的未来发展。

优点

  • 去中心化:无需中心化机构控制,透明、安全、可审计。
  • 稳定性:通过超额抵押和稳定机制保障 DAI 的价格稳定。
  • 开放性:任何人都可以参与 MakerDAO 的生态系统,使用 DAI、借贷或抵押。
  • 治理性:MKR 代币持有者可以参与协议的治理,共同决定协议的发展方向。

缺点

  • 风险:抵押资产价值波动可能会导致清算风险。
  • 复杂性:MakerDAO 的运作机制较为复杂,需要用户具备一定的理解能力。
  • 清算效率:清算机制可能存在效率问题,可能会影响 DAI 的价格稳定。

发展方向

  • 现实世界资产 (RWA) 集成:MakerDAO 正在探索将现实世界资产集成到其协议中,以增加抵押资产的多样性和稳定性。
  • 跨链扩展:MakerDAO 计划将 DAI 扩展到其他区块链,扩大其使用范围。
  • 新功能开发:MakerDAO 正在开发新的功能,例如借贷、衍生品交易等,以进一步完善其 DeFi 生态系统。

总结

MakerDAO 是一个重要的 DeFi 协议,其稳定币 DAI 和抵押贷款系统为用户提供了去中心化的金融服务。随着 RWA 的集成和跨链扩展,MakerDAO 有望在未来成为 DeFi 生态系统的重要组成部分。

2024.08.20

MarkerDAO学习笔记

概念

MakerDAO 是一个基于以太坊的去中心化超额抵押稳定币协议,其核心产品是 DAI,一种与美元挂钩的稳定币。MakerDAO 的目标是通过超额抵押机制来维持 DAI 与美元的 1:1 锚定,并提供一个去中心化、透明和安全的金融系统。

DAI 的运行逻辑

  1. 抵押: 用户将支持的资产(例如 ETH、USDC 等)存入 MakerDAO 的 Vault(保险库)中,并按照一定比例获得 DAI。
  2. 借出: 用户可以将 DAI 借出,并支付稳定费 (Stability Fee) 作为利息。
  3. 偿还: 用户需要偿还借出的 DAI 和稳定费,才能取回抵押资产。
  4. 清算: 如果抵押资产的价值低于债务和稳定费,Vault 会被清算,抵押资产会被拍卖,拍卖所得用于偿还债务。

价格稳定机制

MakerDAO 通过以下机制来维持 DAI 的价格稳定:

  1. 稳定费调整: 当 DAI 价格高于 1 美元时,降低稳定费,鼓励用户创建 Vault 生成 DAI;当 DAI 价格低于 1 美元时,提高稳定费,刺激用户关闭 Vault 销毁 DAI。
  2. DAI 存款利率 (DSR) 调整: 用户可以将 DAI 锁定在 MakerDAO 的 DSR 合约中获得储蓄收益。当 DAI 价格高于 1 美元时,降低 DSR,减少 DAI 的需求;当 DAI 价格低于 1 美元时,提高 DSR,增加 DAI 的需求。
  3. 紧急关停: 在紧急情况下,MakerDAO 可以触发紧急关停机制,暂停 Vault 的创建和操作,并冻结喂价机制,以保护 DAI 持有者的利益。

PSM 模块

PSM (Peg Stabilization Module) 是 MakerDAO 推出的锚定稳定模块,旨在为 DAI 的价格提供双边缓冲保护。用户可以将支持的稳定币资产(例如 USDC)存入 PSM,按照 1:1 的固定汇率铸造 DAI,并支付 0.1% 的交易费用。

清算和拍卖机制

当 Vault 的抵押资产价值低于债务和稳定费时,会触发清算机制。清算过程包括:

  1. 清算拍卖: 抵押资产会被拍卖,拍卖所得用于偿还债务。
  2. 债务拍卖: 如果拍卖所得不足以偿还债务,会进行债务拍卖,用户可以用 DAI 支付债务,并获得一定数量的 MKR 作为奖励。

生态

MakerDAO 的生态系统不断发展,包括:

  • DAI: 稳定币
  • Vault: 保险库
  • PSM: 锚定稳定模块
  • Spark Protocol: 借贷协议
  • Endgame Plan: 去中心化计划

竞争对手

MakerDAO 的主要竞争对手包括:

  • Aave: 去中心化借贷协议
  • Frax Finance: 混合型稳定币协议
  • Curve Finance: 稳定币交易平台

总结

MakerDAO 作为去中心化超额抵押稳定币协议的先驱,其 DAI 稳定币已经成为 DeFi 生态系统的重要组成部分。MakerDAO 正在不断发展和创新,并积极探索新的应用场景,以实现其去中心化和金融普惠的目标。

2024.08.19

了解稳定币的概念以及分类,笔记如下:

稳定币学习笔记

1. 稳定币概述

  • 稳定币是加密货币生态系统的重要组成部分,旨在提供稳定的价值存储和交易媒介。
  • 稳定币通常与法定货币挂钩,例如美元,以降低价格波动性。
  • 稳定币可以分为中心化稳定币和去中心化稳定币。

2. 中心化稳定币

  • 例如 Tether (USDT),由中心化实体发行并由法币储备支持。
  • 优点:价格稳定,易于使用。
  • 缺点:缺乏透明度,依赖中心化实体,存在系统性风险。

3. 去中心化稳定币

  • 例如 MakerDAO 的 Dai (DAI),通过抵押加密货币来维持价格稳定。
  • 优点:去中心化,透明度高,抗审查。
  • 缺点:资本效率低下,抵押品风险,价格波动性。

4. 算法稳定币

  • 利用算法来控制稳定币的市场结构和经济基础,旨在实现去中心化和价格稳定。
  • 例如 Ampleforth (AMPL) 的弹性模式和 Empty Set Dollar (ESD) 的铸币税模式。
  • 优点:去中心化,价格稳定性。
  • 缺点:复杂性高,风险较高,需要强大的社区支持。

5. 新一代算法稳定币

  • 例如 Fei Protocol、Reflexer 和 Float Protocol,在抵押机制、交易者激励措施和紧急救市措施等方面有所创新。
  • 优点:更高的资本效率,更强的价格稳定性。
  • 缺点:仍处于实验阶段,需要时间和实践来验证其可行性。

6. 稳定币的未来

  • 稳定币市场将继续增长,机构采用将加速发展。
  • 监管环境将更加完善,稳定币将更加安全可靠。
  • 稳定币将在日常生活中得到更广泛的应用,例如支付、跨境汇款和工资支付等。

7. 总结

稳定币是 DeFi 生态系统的重要组成部分,为加密货币市场提供了稳定性。算法稳定币是稳定币发展的重要方向。未来,稳定币将更加安全可靠,并在日常生活中得到更广泛的应用。