Euler(EUL) — 次世代的DeFi借贷协议

不管是Compound 或是Aave 这样的初代借贷协议几乎已经是DeFi 世界的标准配备了,这些协议上面有着相对主流的代币可以提供或是借出,如ETH, USDC, MKR, BAT 等,让借贷协议成为一个去中心化的服务。

但除了主流的代币外,这些借贷平台并没有相对非主流的代币可供给或是借出,而在这些借贷协议中如果要上架一个新的代币,则需要透过治理框架投票后才可以上架,并不是所有使用者都可以上架任何代币,也就说不是无需许可(Permissionless) 的上架模式。比如说我想要在Compound 上架我自己铸造的代币XYZ 会需要经过COMP 持有者的投票才能上架。

但是这些小币依然有借贷的需求:小币的持有者在还没有应用场景时可以把代币放入借贷协议里面生利息;想做空的人会想借出小币来操作。而这些各式各样的代币所凝聚起来的也是个巨大的需求,在目前初代的借贷协议并没有满足这样的需求。

Euler(EUL)是新一代的协议,为一个无需许可的DeFi 借贷协议。任何使用者都可以上架几乎任意代币到Euler 当中作为代币的供给以及借出。举例来说我自己发行的XYZ 代币只要有在Uniswap v3 上面有跟WETH 结成交易对,就可以上架到Euler。

而可以上架任意代币伴随而来的是更高的风险,Euler 则提出了一系列的方式来管理风险,以下介绍Euler 几个特别的设计来达成无需许可的借贷协议。

资产分级

由于Euler 接受任何只要有在Uniswap v3 跟WETH 结成交易对的代币上架,这样不经许可的特性也会让每个代币的借贷市场风险较高。如果代币的价格波动太极端,而清算程序又无法充分偿还债务人的负债,就可能会在不同资产池造成坏帐。

为了应付这样的风险,Euler 将资产分成几个不同的层级。

隔离级(Isolation-tier)

资产可以用于提供(lend) 与借出(borrow),但是不能作为抵押品,同时这个资产只能单独借出,不能与其他资产混合着一起被借出。

比如说一个使用者他用了USDC 跟DAI 作为抵押,然后他想借出一个目前为隔离级的资产ABC,此时他并不能再借出另外一个资产XYZ,这个帐号就只能独立借出ABC。

隔离级的资产是没有任何限制的,任何资产预设都是隔离级,这样的好处是各种小币只要在Uniswap v3 上面有交易对都可以在Euler 上面借贷,只是不能当作抵押品。而且如果这个资产出现了极度波动导致清算,因为他跟其他借出资产是隔离的,所以清算时就不会波及到其他的资产。

试想如果一个借出资产XYZ 突然涨了1000 倍,如果没有隔离分级,跟他一起共用抵押品的资产ABC 的抵押品就会被跟着清算。

跨越级(Cross-tier)

资产可以用于提供(lend) 与借出(borrow),但是不能作为抵押品,但是可以跟其他资产一起被借出。在Cross 分级的资产让抵押品使用起来可以更加弹性,但由于清算时不同资产会互相影响,风险也比隔离级高。

抵押品级(Collateral-tier)

资产可以用于提供(lend) 与借出(borrow),而且可以作为抵押品。比如说USDC 跟DAI 都是Collateral-tier,代表他们可以作为抵押品借出其他资产,比如说借出LINK 或是UNI。

以上三个等级中,在没有经过治理框架的投票时,所有资产都是隔离级。如果需要提升到不同等级来增加资金利用率,可以发起投票来变更,当然随之而来的会提高系统的风险,而这样的利益关系跟EUL 持有者的利益关系一致。

调整过风险的借款能力

不管是什么借贷协议都相同,协议都会要求使用者确保他自己提供的抵押品的价值要高于负债的价值,也就是超额抵押来增加系统的安全性。当抵押品的价值快要不足以支撑负债时,就会被标记成可以清算的状态。

在Compound 上面是透过抵押品系数(Collateral factors) 来决定债务人可以借出多少价值的资产。比如说使用者在1 ETH 为$4000 时抵押了1 ETH 作为抵押品,想要借出UNI,当ETH 的系数为0.7 时,使用者可以借出价值等值于2800 美金的UNI。若抵押品价值下降到一个程度,或是借出资产(负债)的价值上升到一个程度,这两种状况都会让抵押品无法支持负债的价值,此时就会被标记成可被清算,此时清算人就可以触发清算程序。

但是这边没有针对每种不同的借出资产(负债)考虑不同的风险,仅有抵押品系数来考虑抵押品的风险。比如说一样是1 ETH 借出UNI 的状况,如果是借出一个我自己铸造的代币XYZ,其风险会比借出UNI 要大很多,但是只考虑抵押品系数时则无法针对每个资产设定不一样的风险系数。

Compound 上面因为都是上架主流代币,每个借出资产的风险可能都差不多,但是如果要可以上架任意代币就会需要考虑借出资产风险。

相较于Compound 仅考虑抵押品系数,Euler 除此之外还额外考虑了借出资产系数(borrow factors),这样除了用系数反应抵押品的波动风险外,还额外用了借出资产系数来反映负债品的波动风险。

举例来说,一个使用者抵押了一千美金等值的1000 USDC 并且想要借出UNI。当USDC 的抵押品系数为0.9,而UNI 的借出资产系数为0.7,那么这个使用者可以借到$1000 * 0.9 * 0.7 = $630 等值的UNI。

其中抵押品经过风险系数调整后的价值为$1000 * 0.9 = $900。而借出资产经过风险系数调整后的价值为$630 / 0.7 = $900。

这代表如果原本借出的UNI 价值为$630,当他的价值超过$900 时,这笔资产会被标记为可清算。另外一边虽然发生机率较小,但是如果1000 USDC 的价值跌到低于$900 时,也会被标记成可清算,如果用价格较为浮动的资产如ETH 作为抵押品就会有这样的情形发生。

相较于只考虑抵押品系数,额外考虑借出资产的风险系数可以有效地控制借出资产的风险。目前正在运作的Euler 系统中,ETH 的借出资产系数是0.91,1INCH 是0.28,而FLX (我不知道这是什么) 则是0.01。这些数字可以透过社群治理变更。

TWAP Oracle

为了计算出抵押品以及借出资产的价值是不是符合超额抵押,Euler 会需要监控使用者的资产价值。在Compound, Maker 跟Aave 上面通常是透过链下取得资产的价格资讯之后再透过预言机(Oracle) 放到链上让他们的合约可以取得价格资讯。

但在Euler 要达成无需许可的机制,上述的方法会有需要手动介入的程序,无法直接在链上搜寻到价格资讯。所以Euler 直接采用了Uniswap v3 提供的时间加权平均价格(TWAP) 的预言机来取得价格资讯,这样一来只要该资产有在Uniswap v3 提供流动性并且与WETH 结成交易对就可以在Euler 上架。

TWAP

TWAP 在Uniswap 上面的计算是某种资产在指定的时间间隔下的时间加权平均价格。一般来说TWAP 会更加的平滑,但是也会带有部分延迟效果,如下图的范例,TWAP 是平滑的曲线,而且会根据取样的时间会有所延迟。

TradingView 上面的TWAP 模组范例

时间太短的TWAP 比较不平滑但却即时。长时间间隔会更平滑,但却不能太即时的反应现况。TWAP 在Euler 适用的原因有几个:

  1. 对价格操纵有抵抗能力:像是闪电贷款套利在使用TWAP 之后的影响会减少,平滑的价格变化曲线让闪贷款无法利用瞬间的价格涨跌来达成目的。
  2. 避免不必要的清算:当突然有大单导致价格变化剧烈时,TWAP 不会马上反应,而接下来套利机器人又会进来让价格回归正常,如此一来就可以避免价格震荡引起不必要的清算。
  3. 减少MEV 攻击:TWAP 的连续性正好可以拿来做清算时的荷兰式拍卖,减少MEV (Miner Extractable Value, 矿工可提取价值) 攻击,这会在清算一节提到。

清算机制

当一个债务人经过风险调整后的负债价值超过他们风险调整后的抵押品价值时,就会被标记为可清算,此时清算人会介入,帮系统执行所需的清算并且领取清算的资产折扣奖励。

刚开始发生这种状况时,债务人还会有足够的抵押品可以偿还贷款,当然也有可能有拖欠贷款的风险,所以此时他们就会被清算来防止进一步坏帐的产生。

MEV 抵御机制

在Compound 跟Aave 中,清算的激励方式是将债务人的抵押品以固定的百分比折扣提供给清算人,通常是5–10%。这样做法的问题是清算人只能用最高的gas 想办法取得协助清算这笔债务的获利,但是由于矿工可提取价值(MEV) 的关系,经常可能会被提前执行(front-running) 而交易失败。另外的问题是固定的折扣对于大额资金的债务人来说是巨大的惩罚,所以这会让债务人只会想要借用比较小笔的资金,但这又造成小笔的清算可能不足以支付清算人的成本。

为了解决这些问题,Euler 采用了不同的方法。Euler 不采用固定比例的折扣百分比,而是让折扣随着该仓位的价值下降而逐渐上升,也就是折扣随着时间会愈来愈高,成为了一种荷兰式拍卖。这样的好处是潜在清算人都会需要自己决定是不是要以目前的折扣百分比来清算。每个清算人对于要获利多少有不同的想法,所以会在不同的时机执行清算。而因为Euler 采用了TWAP 这种价格会平滑的上升或下降的特性,让仓位的价值会平滑的下降,让清算折扣也变成一个平滑渐进的折扣,可部分抑制MEV 的发生。

如上图所示,在一般的清算方式中,当价格突破清算价格的那一刻(红点处),所有的清算人都会希望在此进行清算以获得5–10% 的固定折扣而无可避免地要用最高的gas 想办法抢到;而Euler 透过TWAP 平滑连续的价格变化曲线给定不同的折扣,清算人需要考虑自己想要的利润跟成本,决定要在哪个折扣点入场,这样分散的入场时机可以减缓MEV 的影响。

但就算如此其实还是无法完全防止MEV,因为矿工或是其他抢先交易者仍然可以直接窃取清算人的交易来执行。为了限制这样的行为,在Euler 上面的流动性提供者如果也执行清算,可以有资格获得「折扣助推器(discount booster)」,让流动性提供者在跟矿工竞争时可以在荷兰式拍卖中获得更多利益,导致抢先交易者可能会因此而放弃抢先交易。

利率

Compound 与Aave 采用了静态线性(或是分段线性)来决定协议的借贷成本。广义上来说,当从资金池流动性提供减少,或是借出资产的需求增加时,利率就会上升,反之亦然。

静态模型如果定出适当的参数效果会很好,如果定下不好的参数时就会出现问题。例如斜率太浅会导致借出资产的成本太低,资金池过度被使用导致债权人无法撤会他们的资金。而如果斜率太陡会导致借贷成本太高,没有人愿意借出资产导致资本效率低落。

响应式利率(Reactive Interest Rates)

为了避免每个借贷市场都需要决定以及调整最适合参数的问题,Euler 使用控制理论来协助调整借贷利率。具体来说Euler 使用了一个PID 控制器来达成:

  • 当资产利用率高于目标水平时,放大借款利率变化率
  • 当资产利用率小于目标水平时,抑制借款利率变化率

这样就产生了响应式利率,利率会随着标的资产的市场条件调整,而不需要持续的透过治理改变参数。

子帐号

资产的分层有助于隔离Euler 上的风险,但是却开启了一个新的使用者体验的问题。具体来说如果借出一笔在隔离层的资产时,这个帐号就会被锁定住而不能再借用其他的资产了。

因此Euler 针对每一个Ethereum 的帐号都能够创建256 个子帐号,这样就可以在同一个Ethereum address 中管理不同的资产,代币也只有批准一次后,就可以转入各个子帐号,而代币也可以自由地在不同子帐号之间转移。这让使用者根据他们的需求来隔离他们的债务变得更容易。

结论

Euler 为了达成不经许可就可以自由的开启借贷市场,从许多不同的设计方式下手来达到这个目的:

  • 隔离:透过资产分级隔离风险
  • 风险系数:同时针对抵押品以及借出资产设定风险系数,让不同风险的资产有不一样的系数
  • 荷兰式拍卖清算:透过TWAP 平滑的价格变化来进行清算折扣拍卖
  • 响应式利率:透过市场的回馈来调整利率

这些改善的方法都让Euler 成为了一个更为先进的借贷协议,不需许可的特性也更符合去中心化的目的。然后Euler 才刚上Ethereum mainnet,目前采取的措施是否可以有效的管理风险,还需要时间进一步的验证以及团队逐步的改善才能下定论。

比如说在讨论区询问borrow factor 的问题时提到了FLX 为0.01 的事情,开发人员是说因为FLX 放在Uniswap 流动性比放在Euler 的还要少,这导致了预言机可能会不准的问题,所以才手动把FLX 的系数调到0.01 来降低他们的风险。而预设的系数是0.23,但是还会密切观察这个预设数字要怎么订定才好。

由此可见确实还需要让子弹飞一会,来看看这样的设计是否可以满足不需许可的借贷协议这个目标。

本文链接地址:https://www.wwsww.cn/DeFi/10844.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。