MakerDAO 清算 2.0 系统升级计划将英式拍卖改为荷兰式拍卖并支持闪电贷,以此降低清算者进入门槛和流动性成本。

撰文:曹一新,就职于 HashKey Capital Research
审核:邹传伟,万向区块链首席经济学家

2 月 3 日 MakerDAO 智能合约团队提出了第二代清算系统设计方案( MIP45 ),并于 4 月 19 日发起关于上线清算 2.0 系统的执行投票。这次升级主要目的是解决当前清算系统中的一些不有效的环节,避免再次发生 2020 年 312 事件中清算失灵导致资不抵债的情况。本文梳理 MakerDAO 清算系统的主要模块和功能,总结影响其运行效率的因素及此次更新计划的主要着力点。

清算 1.0 系统的主要设计

MakerDAO 实现了通过超额抵押链上原生数字资产,借出稳定币的机制。清算系统的主要任务有两点:

  1. 监视抵押品的价格变动,在触发清算线时及时对借贷头寸进行强制平仓,以免系统出现大量坏账;
  2. 由于清算涉及到该稳定币的销毁及发行,是该稳定币市场流通量产生波动性的一个重要来源,清算系统还应尽量维持稳定币的价格贴合锚定物的价格而波动。

稳定币的价格稳定机制

从去年 1 月份至今,DAI 的流通市值从不到 1 亿美元扩张到 52 亿美元,而其波动性较去年明显降低,说明市场对 DAI 已经形成比较强烈的共识和认可,MakerDAO 稳定币价的机制也已相对成熟。

HashKey 曹一新:解析 MakerDAO 清算系统及其更新计划 图 1. MakerDAO 支持多币种抵押的稳定币 DAI 价格变化

MakerDAO 通过调节短期稳定币的流通量来控制价格脱锚风险。系统内设借出 DAI 的稳定费率和存储利息两个指标,通过调高稳定费率将抬高 DAI 铸造者的资金成本从而激励他们返还 DAI 赎回抵押品;调高存储利息也有利于吸引市场里的 DAI 持有人将 DAI 锁仓赚取利息收益;这两者都将减少 DAI 的流通量,在其价格相对美元出现负溢价时具有拉平差价的作用。

而在过去半年,随着 DeFi 生态的大规模发展,DAI 一直处于供不应求状态,并多次维持较高的正溢价。MakerDAO 通过不断引入新的抵押品种类来扩大可支撑 DAI 发行的规模。在 2020 年 312 事件中,DAI 出现流动性枯竭,MakerDAO 通过社区投票引入靠链下法币储备金背书的 USDC 作为抵押品开扩张 DAI 的流通量。目前可通过 MakerDAO 自研工具 PSM 进行 DAI 和 USDC 之间的无滑点兑换,支撑着 DAI 一半以上的流通量。由于 Coinbase 提供了 USDC 和美元之间 1 比 1 兑换的渠道,故当 DAI 存在正负溢价的时候,投资者可通过 PSM、Coinbase 的两个兑换渠道进行套利,对维持 DAI 价格稳定有一定的作用。

HashKey 曹一新:解析 MakerDAO 清算系统及其更新计划 图 2. MakerDAO 稳定币 DAI 的抵押品分布

此外,当前 DAI 的存储利息已经低至 0.01%,一方面原因是很多其它专注借贷业务的 DeFi 项目和收益挖坑项目高昂的收益率吸引 DAI 持有人转而采纳第三方服务来获得更多的 DAI 增值;另一方面原因可能是 MakerDAO 系统已经不需要自己设立的储蓄模块来对超发的 DAI 进行回收锁仓,因为整个 DeFi 系统开始参与到对 DAI 流动性的调节过程中了。

三种拍卖

为了实现清算系统的两个主要功能,MakerDAO 清算 1.0 系统通过智能合约构建了三种英式拍卖系统,并利用激励机制鼓励第三方 Keeper 参与竞价。

盈余拍卖(Surplus Auction)

MakerDAO 的清算系统有点像一套由很多个零件组成的系统,这些零件的参数需要通过治理系统决定或更新,如何维持一个去中心化治理系统的良好运转是很大的挑战。治理代币 MKR 是治理系统投票人的筹码,盈余拍卖机制是面向 MKR 持有人的激励手段。

MakerDAO 提供的超额抵押高波动性数字资产来铸造稳定币的服务需要收取一定的稳定费,也可将其视为借贷利息。这种费用按照社区投票决定的年利率、区块生成的时间精度计算复利,并叠加到铸造者赎回抵押物时需要归还到稳定币总额。这部分盈余资金锁定在缓冲金库中,在后续将提到的债务拍卖中作为优先支配的缓冲金抵抗抵押品迅速贬值的风险。

当 MakerDAO 系统的净盈余(扣掉债务)超过一定阈值(例如,500K DAI,该阈值也通过 MakerDAO 的治理系统决定),就开启盈余拍卖。这一步判断工作可由任何人发起链上交易同步最新状态数据计算而得。当有人发起第一笔竞价交易,拍卖随即开始,固定数量的盈余(例如 50,000 DAI,由治理决定)将分批供竞拍者按照愿意支付的 MKR 从少到多竞拍,系统要求每次抬价至少高出前一竞拍价一定比例。

HashKey 曹一新:解析 MakerDAO 清算系统及其更新计划 图 3. 参与盈余拍卖的智能合约调用流程图(来自 MakerDAO doc)

同时,系统规定了每次拍卖的总时长及接受新报价的最长时间间隔,若超过总时长或最长时间间隔,则拍卖结束。竞拍者支付的 MKR 将被销毁,从而收缩了 MKR 的供应量,抬高 MKR 的价格;竞拍者本身也能以有利的价格将 MKR 变现。

抵押品拍卖(Collateral Auction)

治理系统决定了每种超额抵押资产的清算线指标,当抵押品与贷出额的比例跌破清算线,任何人都可发起抵押品拍卖的交易,并开启一轮拍卖。拍卖过程和盈余拍卖类似,竞拍人按愿意给固定数量抵押品支付 DAI 的数量从低到高出价,直到超过时限。这种拍卖会持续到借贷额和清算惩罚额被剩余的抵押品兜住,清算惩罚额是支付给成功竞拍的 Keeper 的奖励。当剩余的抵押品不够设定大小,则开启反向拍卖,竞拍人按愿意为固定 DAI 接受多少抵押品从高到低出价。

债务拍卖(Debt Auction)

在极端情况下,由于 Keeper 不愿意接受下行风险很大的抵押品资产等原因,可能出现抵押品市场价值跌破借贷额的情况,产生系统债务。应对这种情况,首先用缓冲金库的余额弥补债务;若没有或不够,且系统的债务超过了某个阈值,系统将启动债务拍卖,拍卖者用 DAI 竞拍全新铸造的 MKR。

312 事件分析

上述系统在实践过程中,未能承受住市场的压力测试,在 2020 年 3 月 12 日市场大跌行情中清算引擎失灵并产生五百四十多万美元债务。主要原因是:

  1. 交易拥堵:抵押品价格在短时快速下跌会集中触发大量清算交易,与其它交易一同竞争区块记账空间,上述抵押品拍卖需要多轮竞价、抵押品分批次出售的拍卖机制本身就非常低效和冗杂,在以太坊交易拥堵的情况下更加凸显出效率问题,最后出现 Keeper 以零支付捡漏的情况也就不足为奇了。
  2. 激励不足:此外 Keeper 通过交易手续费、当前市场抛售价格、清算惩罚金收入可计算出盈亏平衡点,抬高的手续费成本、抵押品的价格下行预期都会打压 Keeper 的清算热情。当抵押物的清算价格跌破盈亏平衡点,Keeper 参与拍卖的意愿可能骤减。清算系统的更新响应能力也非常弱,无法对激励 Keeper 参与拍卖的参数进行及时调整。
  3. DAI 流动性枯竭:随着抵押品在市场抛售,加剧其价格下行压力,从而可能产生更多的坏账,而大跌情况下投资者偏向于持有稳定币,市场上能用于清算的 DAI 的流动性骤减,导致其出现非常高的正溢价,市场上没有足够的 DAI 用来清算,也进一步抬高了 Keeper 用 DAI 来进行清算的成本。

面对这个情况,MakerDAO 通过将 DAI 的存储利率降低至 0 来刺激更多 DAI 流通至市场;降低 DAI 的借款利率降来激励投资者铸造更多 DAI;引入 USDC 作为新的抵押品种,这对于当时持有 USDC 的投资者是有很大吸引力的,因为抵押 USDC 换得的 DAI 可以正溢价在市场卖出;这些都是应对 DAI 流动性枯竭问题做的救急措施。

当 DAI 流动性问题得到缓解后,MakerDAO 清算系统的债务拍卖开启,新发行的 MKR 代币为系统筹集足够的 DAI 来弥补损失,最终度过难关。

HashKey 曹一新:解析 MakerDAO 清算系统及其更新计划 图 4. 2020 年 3 月 12 日 DAI 价格 K 线(来自 MakerDAO blog)

清算 2.0 系统的升级计划

清算 2.0 系统的升级计划核心目标是将清算系统与以太坊上整个 DAI 流通市场对接起来,提高在大规模清算时可供使用的 DAI 流动性;同时改进拍卖系统使之具备更低的门槛、更高的效率。

在此之前,MakerDAO 在 2020 年 8 月 31 日执行了清算 1.2 系统升级,为清算 2.0 系统升级做铺垫。为了应对极端行情下瞬时有大批坏账需要清算,而参与竞拍的 Keepers 人数不足且手头的 DAI 不够的情形,清算 1.2 系统升级内容允许治理系统通过限制任意时刻系统可同时启动的拍卖进程以及拍卖抵押品的总量来降低任意时刻的清算量,这样设计有利于 Keepers 选择不同时间点进入拍卖,并提高其资金利用率(循环利用抵押品兑换成 DAI 参与多轮拍卖)。

在清算 2.0 系统的升级计划中,主要有以下几点改进。

将英式拍卖改成荷兰式拍卖

在原系统中,英式拍卖不仅需要经历多轮报价,且 Keeper 投标的 DAI 将被锁定,直到被其他 Keeper 抬高或拍卖结束。清算 2.0 系统将英式拍卖改成荷兰式拍卖,由系统从一个价格起点按设定好的按时间递减函数式报价,竞拍人可在心理价位发送交易并及时结算。此外,系统将对荷兰式拍卖过程设置限时,耗时和报价下跌幅度超过阈值将重启拍卖。

取消 Keeper 准入门槛

在原来的英式拍卖中,Keeper 存在资金门槛。在改进计划中,抵押品不再按固定数量分批提供拍卖,在荷兰式拍卖中,任意数量的 Keeper 都可在接受的报价购买部分抵押品。

支持闪电贷

在支持及时结算的条件下,清算 2.0 系统支持闪电贷。本身不持有 DAI 的 Keeper 可在一次交易内将抵押品流转至外部 DEX 等协议兑换成 DAI 再归还至 MakerDAO,这大大降低了 Keeper 的流动性成本。

对 Keeper 的激励机制

在原系统设计中,对第一个参与拍卖的 Keeper 有奖励,但经历 312 事件后,激励 Keeper 参与最早期的清算对系统并没有好处。在更新计划中,拟对激励对象和不同类型抵押品的激励基金的分配进行调整,旨在为降低系统风险的清算行为提供更多激励,例如对于坏账规模高的抵押品种类分配更多的激励基金、对于不利于吸引 Keeper 前来清算的情形,用奖励弥补 Keeper 损失等。

此外,MakerDAO 也有可能会整合 DEX、聚合协议等拥有丰富流动性的外部资源,提高 Keeper 竞价的竞争性,并使整个清算系统能接触到更多市场流动性。

思考与总结

MakerDAO 的清算 1.0 系统是由三个英式拍卖吸引外部 Keepers 自发参与充当抵押品、稳定币、治理代币流动性的调节器。在 2020 年 312 大跌中未能承受住压力测试的主要原因是区块拥堵、DAI 流动性枯竭、极端情况下吸引 Keeper 参与的激励不足。治理系统虽然通过对风险参数的紧急调整缓解了 DAI 流动性枯竭问题,并利用债务拍卖弥补了资金漏洞,但社区对清算系统长期运转提出了更多改进意见。

近期开始执行投票的清算 2.0 系统升级计划从多个方面加以改进,主要手段是将英式拍卖改为荷兰式拍卖,提高拍卖效率,降低 Keeper 准入门槛;并通过支持闪电贷使 Keeper 能对接 DeFi 市场里的流动性资产完成清算,进一步降低了他们的流动性成本;升级计划也提出了要设计针对影响系统风险系数分情形进行不同激励的机制。

MakerDAO 在今年 519 大跌中的响应与 312 事件有明显差异,DAI 的价格在这段时间也相对更加稳定,这可能与 MakerDAO 扩充了抵押品的资产类别,特别是同为稳定币的 USDC 有比较大的关系。

MakerDAO 设计的清算系统比另外两款借贷产品 Aave 和 Compound 都要复杂,后者在清算过程中给 Keeper 提供更多自由度,Keeper 可通过监听预言机报价随时发送清算交易,而无需参与系统设定的拍卖过程,这可能与 MakerDAO 本身预言机报价的更新频率比较慢(至少 1 小时)有关。