原文:《SPOT, 实现AMPL野心的新型算稳》
作者:鸡鸡鸡鸡鸡。
(资料图)
TL;DR
1.Spot 是以 AMPL 为底层抵押资产的债券型算稳,其最大的作用是减少 AMPL rebase 带来的波动性,松散的锚定 AMPL。提高了 AMPL 的可组合性;
2.Spot 代表的是对抵押品(AMPL 债券)的单边索赔权,所以没有清算,所以原则上不需要预言机的参与;
3. 其机制利用了零息债券,所以如果抛开零息债券本身锁定期的问题,只是以账面价值计算,它是 100% 抵押的算稳。在这种机制下,对治理的要求非常低,基本上可以算作是一个全自动运行的算稳系统;
4. 同时,Spot 的机制确保即使用户减少到 0,其价值也不会归零,并且能够随时重启制度,更为重要的是,Spot 只会出现其价值超过抵押品,但是不会出现抵押品不足的情况。这点有些类似 OHM 但是却不完全一样。
算稳的困境
在正式讨论 SPOT 之前,我们来看一个老生常谈的问题:什么样的算稳才算是一个好(理想)的算稳,它需要具备哪些条件?如果按照之前我写过的几篇算稳文章的说法,一个好的算稳应该具备以下几个特点:
价值稳定。稳定币的概念近似于我们现实生活中货币的概念(法币稍微有点不同,不过暂时也能等同考虑),所以对于绝大多数的算稳来说,价值稳定几乎和价格稳定可以划上等号。不过因为通胀等因素的影响,价值和价格其实并不一样。价值稳定对于稳定币」价值存储「的功能更为重要。不过,此处为了说明的简单,我们就用购买力稳定来来表示价值稳定。
可组合性要好。货币另外两个重要功能就是作为」交换媒介「和」支付手段「,这点体现在区块链里,就是可组合性要够好。对于绝大多数算稳,因为其本身就是属于普通代币(e.g. ERC-20)的范畴,所以在做好价值稳定的基础上并不存在可组合性的问题。但是对于今天的主角 AMPL 来说,因为其 rebase 机制的存在,所以其可组合性一直为人所诟病。当然,」可组合性要好「并不是只是要求在技术上可组合,同时还要满足流动性也要好的要求。
可信中立。即对所谓的」治理「要求非常低。这点其实除了和区块链里的去中心化有关外,还关乎着货币的第三个重要功能,价值尺度的问题。稳定币只有做到可信中立,整体机制并不需要人为去调整依旧可以稳定运行,其」价值尺度「的功能才有意义。否则,今天调个利率,明天调个抵押率,后天因为治理攻击损失了用户的抵押品,这样的算稳,仍然不是我们想要的算稳。
铸造/兑换/赎回自由。最后一个特点,就是自由兑换,自由铸造,自由兑付。这点对于很多 token 来说都没问题,但是对于稳定币来说,就没那么容易。虽然平常我们是可以自由兑换,铸造,使用稳定币,但是别忘了,这些合约依旧是可以把你加入黑名单的。关于这一点其实我个人并不想讨论,大家毕竟都是因为 BTC 入的行,BTC 背后代表的东西我想不用多说大家也或多或少有理解。
如果我们按照上述的特点大致套一下现有主流算稳,看看会是怎样的结果。
USDT/USDC
首先,这两兄弟虽然里面带了 USD,但是我们依旧需要明白,USDT/USDC 并不是 USD,而是通过线下抵押 USD 铸造出来的算稳。这种牵扯到线下的算稳,还是直接用的美元抵押,势必就会存在中心化的问题。尽管在经历了一系列操作后,它们会定期公开自己的资产储备,对外宣布自己是至少 100% 足额抵押,但是这种完全由中心化机构控制的」算稳「,披露的数据可信度再高也不如完全可以链上追踪的资产可信度高。更遑论经常发生的黑名单事件,让人们对于它们的怀疑愈发加深。
不过,我们不得不承认的是,这两兄弟的流动性,可组合性,价值稳定(主要是价格稳定)方面确实做得好,当然先行者优势也确实很大。
DAI
DAI 可以说是最广为人知并且符合绝大多数人认知的算稳。其机制我想我们不必多说。初代的 DAI 确实也是一个充满着理想主义的产物,但是随着规模的扩张,各种链上链下环境的影响,现在的 DAI 早已成了一个 70% 以上的抵押品是 USDC 的产物。导致这个结果的因素很多,但是归根结底还是因为受」治理「的禁锢太多,因为治理,放弃了原本存在的负利率改为强调锚定 1 刀的策略,因为治理,让 USDC 占比越来越大,因为治理…………笔者个人比较反感在这种本身具有」尺度「功能的项目上加入太多治理。总之,虽然它的流动性和可组合性很好,但是其初心已改,笔者现在基本上就把 DAI 看成一个 warpped USDC 用。关于 Maker 机制的一些特别补充,笔者在之前的《研究|温故知新,重新看看算稳的故事》里说了很多,有兴趣的朋友可以看看。
FRAX
FRAX 的主要机制,动态抵押率以及 AMO 都有不少人写过,我这边就不再赘述。如果我们把抵押品的资产分为 USDC 为代表的稳定币抵押品和其他非稳定币抵押品的话,FRAX 其实和 DAI 在这方面还是挺像的。不过两者最为核心的区别在于运营思路的区别。DAI 的做法基本上就是按照央行思路去搞,所以涉及到很多治理会直接影响到 mint 机制,而FRAX 采用的更多是商业银行的打法,以 AMO 为核心,扩展自己的影响力。当然,这其实也和一开始 FRAX 就采用 USDC 作为抵押品的机制有关,导致它对抵押品本身的影响很小。
它的特点其实和上面几个大差不差,但是相对于上面几个老大哥来说,除了流动性差了点,其他方面已经做的不错了。
AMPL
作为引领算稳潮流的存在,AMPL 的出现是一次彻彻底底的社会实验。没有抵押品,不锚定美元而是锚定经过 CPI 调整后的美元(基本上可以代表美元购买力),保证自己价格的稳定,根据市场需求,通过 rebase 机制调整用户钱包内 AMPL 数量来调整 AMPL 总的流动性以保持购买力,太大胆了,太前卫了。这个核心的 rebase 机制理论上彻底摆脱了治理,依托纯粹的数学达到了可信中立。但是,也正因为 rebase,导致其可组合性一塌糊涂:没有多少人愿意长期持有 AMPL 这种今天有 1000 个,明天起来就剩 900 个,后天 1200 个的」稳定币「资产。这也导致其流动性一直上不去,对应的应用也非常少,最出名的也就是 AAVE 了。如果看文字很抽象的话,看下下面图的对比就知道 AMPL 与其他 token 的区别:别的 token 是随着需求扩张,代币价格上涨,AMPL 是随着需求扩张,数量增加,反之亦如此。
通过上面几个比较出名的算稳,我们发现现在的算稳存在着某种困境:无论是 USDT/USDC 这类直接就是以法币作为抵押品的算稳,还是 DAI/FRAX 这种对于 USDC 二次打包的算稳,本质上都在追求对美元价格的强锚定,而这种锚定势必会受到美元通胀/通缩的影响,所以为了维持算稳的价值稳定性,就需要引入大量人为治理来协调整个机制的运行,这就无法做到真正的可信中立。
而 AMPL 锚定的是美元购买力,而不是锚定价格,理论上可以完全摆脱人为治理,完全交由市场供需来维持整个机制的运行。本来作为最为贴切理想算稳的存在是很好的东西,可组合性又一言难尽,就差这一步,就没有什么好方法去解决下么?在以前写过的文章里,我大概提到过这可能需要把 AMPL 打包成 NFT,通过预言机协调来实现可组合性。但是 AMPL 团队最近推出了更为靠谱的一个手段,将 AMPL 打包成零息债券,作为抵押品铸造新的算稳出来,这就是 SPOT。
SPOT——利用 defi 可组合性诞生的新一代算稳
SPOT 本质上是以 AMPL 零息债券为抵押品的算稳,它主要利用了两个协议,AMPL 和 ButtonWood。AMPL 自然不必多说,在 SPOT 里主要是作为基础抵押品的存在,但是由于 AMPL rebase 的特性,直接拿 AMPL 作为抵押品会让抵押品价值波动较大,所以这里 AMPL 利用了 ButtonWood 这个协议来对冲 rebase。
ButtonWood
我们可以稍微看看 ButtonWood 这个协议。准确的说,ButtonWood 是一个 defi 工具,其提供的核心功能就是让开发者快速得构建各种结构化产品,例如按照不同比例将不同风险等级的资产打包成一个产品,提高资金利用率,降低整体风险。这就类似于传统企业的所有权可以被分为债权和股权,当进行权益索赔时,债权人优先索赔,企业偿付完债权人后才会偿付给股权持有者。相当于债权人的权利能得到最大保障,算是一种安全资产,而股权人承担企业的绝大部分风险,与此同时换取企业上市或出售后获得的超额回报。
而 ButtonWood 主打的核心概念叫 Tranche,它支持其他协议将资产抵押进 ButtonWood,铸造出不同风险等级的 tranche 资产,每种 tranche 资产的风险等级不同,较为安全的 tranche 资产相当于是基本抵押品,而风险等级较高的资产则可以看做是标的资产的杠杆头寸, 不过无论哪种 tranche,它都是个 erc-20 代币,所以在技术上的可组合性没有啥问题。大概的原理示意图如下:
具体原理我们可以用 AMPL 作为抵押品铸造 Tranche 资产为例子,看下铸造 Tranche 和赎回资产的流程。
铸造 Tranche
如图所示,用户可以将 AMPL 作为抵押品抵押到 TrancheBond 协议中,然后协议就会按照设置的风险档次比率,铸造出对应比例的 tranche 资产。
假设在 AMPL 的 TrancheBond 协议中:
风险档次比率为:Tranche-A 20/ Tranche-B 30/ Tranche-C 50
用户抵押 1000AMPL,就会获得对应:
· 200(1000*0.2)的 AMPL-A
·300 的 AMPL-B
·500 的 AMPL-Z
如果我们将 AMPL-A 定义为类似公司债权的安全资产,则经过这次交互,用户获得了保值率最高的 200 个安全资产,这部分资产会在后续赎回时保持优先偿付。而 AMPL-B 则是风险上升一级的资产,TrancheBond 在优先偿付完 AMPL-A 之后,就会偿付 AMPL-B 的债务。最后的 AMPL-C 则是最后偿还,承担了最多风险的资产,同时也是享有超额收益权的资产(未来公司价值的上涨或下跌),类似于公司股权。
通过这次交互,用户的仓位值仍然等同于持有他们原来的 AMPL。然而,他们现在拥有代表不同风险等级的 AMPL 资产。
赎回抵押品
知道了如何 mint,就需要知道如何 redeemed. 既然 tranche 的思路和企业所有权类似,那么对于偿付来说,就一样需要按照不同风险等级进行不同优先级的偿付。
如图所示,当对应的 tranche 资产到期后,会优先偿付风险等级最低的 A-trache, 尽量确保这部分的偿付能做到 1:1。然后偿付 B 类资产,最后偿付 Z 类资产,风险等级越高的资产偿付顺序越靠后,所以越有可能承担损失或获得超额利润。
我们依旧用上面用 AMPL 铸造的 tranches 作为例子来看下不同市场条件下的赎回过程。
假设 AMPL 的市场需求降低,根据 rebase 机制,市面上的 AMPL 流通量需要减少,此时对应 tranche 的偿付额度分配如下:
· 每个 A-tranche 获得 1 AMPL 的全额偿付;
·每个 B-tranche 获得 1AMPL 的全额偿付;
·Z-tranche 获得剩余的 AMPL,算下来每个 Z-tranche 大概可以获得 0.5 个 AMPL;
假设 AMPL 的市场需求增加,根据 rebase 机制,市面上流通的 AMPL 数量需要增加,此时对应 tranches 的偿付额度分配如下:
·每个 A-tranche 获得 1 AMPL 的全额偿付;
·每个 B-tranche 获得 1AMPL 的全额偿付;
·Z-tranche 获得剩余的 AMPL,算下来每个 Z-tranche 大概可以获得 1.2 个 AMPL;
我们可以发现,在这个例子中,Z-tranche 承担了 AMPL 价值变化的风险,但是获得了 AMPL 增值的所有好处。当然,ButtonWood 还有很多其他功能,不过和我们今天的 SPOT 关系不是很大,所以有兴趣的朋友可以在后面的附录里去他们官方文档去查看具体内容。而对于 Tranche 来说,一句话总结其原理:
它就是利用债券的原理将资产的波动包裹起来,在需要兑付的时候释放波动给对应风险等级的 Tranche 资产。
开始组合
我们来稍微详细看下上面这个 AMPL 为例的 tranche 资产有什么特点,我们暂时称这个资产为 NewAMPL(这里指的是 A-tranche+B-tranche 作为抵押品生成的整体资产叫 NewAMPL)。
可以发现 NewAMPL 有如下几个明显的特点:
如果我们以 AMPL 购买力作为衡量 NewAMPL 价值的尺度,那么该资产无论何时都是至少 100% 抵押的资产,但是如果我们以个人 AMPL 的持有量或者以 AMPL 总市值作为标准,因为 rebase 会影响 z-tranche,那么它就可能变成一个不足额抵押的资产。
不同抵押品产生的 A-tranche 不能互换,因为每个 A-tranche 对应不同的到期时间,经历了不同的市场条件,对于原抵押品的价值存储程度也不同
这种资产只是代表对抵押品的单向索赔权,其价值随着抵押品的变化而变化。所以不需要锚定什么东西,也不需要清算。所以理论上可以不涉及预言机这个 Defi 世界里最容易出问题的东西。
所以,对于这样的 NewAMPL 来说,除了第三个特点外,另外两个特点始终都会存在抵押率不足的可能性:要不 AMPL 本身 rebase 机制导致,要不因为 A-tranch 不可互换会导致用户在赎回抵押品的时候流动性不足。所以我们需要调整一下两者的组合,让它变得更加可靠。
Spot 的具体设计
首先一个调整,就是 AMPL 在 SPOT 系统中进行抵押,目前只会以 20:80 的比例产生两类 tranche,高级 tranche(Sr-tranche), 初级 tranche(Jr-tranche)。Sr-tranche 代表风险最低的债券,获得优先偿付权,而 Jr-tranche 则承担了 AMPL 价值的波动,同时也会获得大部分 AMPL 价值提升时的收益。而作为 SPOT 只包含 Sr-Tranche 作为抵押品。而为了让 Sr-tranche 能够任意交易,SPOT 引入了 Rotators 的概念。整个 SPOT 的运行原理可以用下图来表示:
整个过程概括来讲就是:
SPOT 以 Sr-tranche 和到期被自动赎回的 AMPL 为一揽子资产为抵押品,通过激励措施引入 Rotator 让其注入等额或超额新生成的 Sr-tranche 来替代已经到期的 Sr-tranche, 从而在表面上达到一个 Sr-tranche 能够随意被赎回的循环系统。
而在这个过程中有几个细节需要额外注意。
铸造和赎回都要手续费,手续费部分会给到费用缓冲区。而铸造的 Sr-tranche 代表对未来 AMPL 的赎回权,所以实际上就是一种零息债券(简单解释下零息债券。这种债券不支付利息,只是以票面价值的折扣价出售,到期会以票面价值赎回)
SPOT 的抵押品除了有未到期的 Sr-tranche 外,还有已经到期的 Sr-tranche 被自动赎回变成的 AMPL,但是这部分 AMPL 存储在一个被称为 hoding pen 的特殊数据结构中,同时该数据结构里还包含了诸如哪个 Sr-tranche 被赎回成了 AMPL 等信息。所以其抵押品是 Sr-tranche 和 AMPL 组成的一揽子资产。需要注意的是 holding pen 里的 AMPL 也会参与 rebase.
所以当用户赎回资产时,是按比例在整个一揽子资产中赎回的。例如你拥有 Spot 1% 的份额,你在赎回资产的时候,就是赎回每个 Sr-tranche 的 1%+holding pen 中 1% 的 AMPL
Sr-tranche 有最小锁定期,即哪怕你用铸造的 Spot 马上换成 Sr-tranche,也要等一段时间才能把 Sr-tranche 换成 AMPL。只有过了最小锁定期后的 Sr-tranche 会参与这个循环,这个代表什么呢?我们知道 Sr-tranche 和其包含的抵押品理论上应该是严格的 1:1 的,但是因为有最小锁定期的存在,整个 SPOT 里 Sr-tranche 和其对应的 AMPL 是大于 1:1 的。举个例子,假设现在最小锁定期的 Sr-tranche 有 100,而符合 SPOT 循环系统抵押品的 SR-tranche 也有 100,那么就 SR-tranche 这部分的抵押品来说,在当前时间发生问题时,单就 Sr-tranche 本身而言就有近似 200% 的抵押率来让 SPOT 循环系统的 SR-tranche 进行偿付。
Rotator 的思路就是尽量让在系统中未被赎回的 Sr-tranche 保持一个均衡水平,以此维持流动性。所以有多少 Sr-tranche 被赎回,理论上就该有多少新的 Sr-tranche 被铸造并且加入到系统中。这一点上它的激励思路也较为简单,就是你帮我做流动性,我就给你 SPOT 奖励,例如:
如果一个用户在赎回 N 个 Sr-tranche 的同时注入新的 N 个 Sr-tranche,那么该用户就能获得 N*奖励乘数的 SPOT 奖励。这部分奖励目前优先从一个费用缓冲区里发放,如果缓冲区里的钱不够了,就会铸造新的 SPOT 给这个用户。当然,这要遵循对应的通胀公式
基本上,Spot 的原理就说完了。对,它的原理确实很简单。下面我们来思考一下这样设计的 Spot 遇到价格波动时会发生什么样的情况。
SPOT 的状态
如果我们对上文所述的 SPOT 机制有所了解,就会发现 SPOT 的抵押品只会有三种状态:
Tranche 状态(Fresh):所有 SPOT 完全由未到期的 Sr-Tranche 生成。持有这种状态下生成的 SPOT 就相当于持有不会被 rebase 影响的 AMPL。
混合状态(Mixed): 抵押品是由 holding pen 里的 AMPL+未到期的 Tranche 组成。这种状态理论上只是 Fresh 和 Mature 之间过渡的状态,这种状态可能是 SPOT 占比最多的状态,处于这种状态下的 SPOT 抵押率在现有的 Sr-tranche 和 Jr-Tranche 比例下(20:80),基本上不会小于 100%。
AMPL 状态(Mature):抵押品完全成了 AMPL。这种状态就是我们能想到的最危险的一种状态。所以抵押品变成了 AMPL,这就意味着 SPOT 完全和 AMPL 一致,受 rebase 影响。
知道了 SPOT 背后的状态类型,我们就能分析一下 SPOT 是否会有死亡螺旋的风险。
SPOT 价格大于抵押品
理论上 SPOT 本身的价值应该就是整个抵押品集合中对应比例的价值。抵押品价值上升,同样数量的 SPOT 能兑换的抵押品总价值也上升,所以 SPOT 价格也会上升。但是,如果出现了 SPOT 单边上涨的情况,那么套利者可以抵押同样的 AMPL 铸造出 SPOT 出售到市场,把 SPOT 价格打成新的平衡价格。而这个时候用户要么用已有的 AMPL 去铸造 SPOT,要不就需要买 AMPL 去铸造 SPOT,这会视价格加倍走向平衡。
当然,由于 SPOT 的抵押品归根结底是对未来 AMPL 的赎回权,而 AMPL 锚定的是 CPI,这从理论上来说,就代表其价值是会逐年增长的,例如假设 CPI 每年涨 5%,同时 AMPL 现价 1 刀的话,那么 100 个 SPOT 兑换的 100 个 AMPL 在明年就很可能变成 105 刀。所以 SPOT 本身还担当了对于通货膨胀的保护,即假设 SPOT 卖方认为通货膨胀率是 3%,那么他就有可能会以 5% 的溢价出售 SPOT,而认为通货膨胀率大于 5% 的买家就会接受这个价格。
不过价格上升不是我们需要担心的,我们更在乎的是出现挤兑的情况以及价格下跌的情况。
出现挤兑
对于 SPOT 来说,所谓的挤兑也就是整个新旧 tranche 循环失效,即 Rotator 模块失灵,用户不愿意存入新的 Sr-tranche 来维持系统运转。这样下去,最差的后果就是所有的抵押品都变成了 AMPL,那么这个情况下就需要看下 AMPL 那边的变化了。而这其实就和 SPOT 本身没啥关系了。如果 AMPL 价值下跌,那么代表赎回权的 SPOT 本身价格本身也会跟着跌。但是就抵押品 AMPL 本身来说,其抵押率一直都不会低于 100%。
SPOT 价格低于抵押品
这个最容易想,买 SPOT 赎回抵押品,一直到价格平衡。但是需要注意的是,因为赎回的是 Sr-tranche。不过这种做法和 Terra 不同,因为你赎回的本身就是已经存在的 AMPL 或 Sr-tranche,所以不会对 AMPL 的供应产生任何影响。
遗留问题
看完上面的内容,我们会发现其实还有两个问题没有说清楚。SPOT 的抵押品只是 Sr-tranche(A-tranche),那么为何在前端页面抵押 AMPL 的时候还要生成 Jr-tranche(Z-tranche),并且显示 Jr-tranche 也有最小锁定期?对于这个问题的前半部分,官方给的答案如下:
而这一问题的后半部分,如果你去看下 z-tranche 对应的合约,你会发现其实你能够在到期之前赎回,只是它前端没给你这个入口。个人推测还是为了锁住更多的 AMPL 在里面,提高市面上 AMPL 的价格,通过 rebase 供应更多的 AMPL,最终提高自己总的供应量。这个思路对于这种 rebase 机制的代币来说不得不说真的聪明。
而另外一个问题就是,如果我们他们官网铸造 SPOT,会发现他们的 Z-tranche 和 A-tranche 均大于 100%,这是为啥?这里其实还是 rebase 在起作用。A-tranche 抵押率大于 100% 其实比较容易理解,因为目前 A:Z 的比例是 20:80,那么这 20% 不参与 rebase 的 A-tranche 就应该是自己的 100%+4 倍于己的 Z-tranche 抵押率。而 Z-tranche 里的 AMPL 本身就需要吸收自己抵押品里 AMPL 的波动以及 A-tranche 里 AMPL 的波动,最近一段时间 AMPL 溢价很高,导致其抵押率一直大于 100%,实际上 Z-tranche 本身相当于 1.25x 的 AMPL 杠杆。
最后就是 tranche 面板里 Bond/Action 的意思是啥也还没说,不过社区里的人告诉我说这个代表当你去赎回抵押品或者 rotator 时的类似系统里现货的 CDP 是多少,当然,具体的解释可能需要等官方更新后续文档。
总结
我们可以看到,推出 SPOT 其实是 AMPL 进行扩张的一个重要步骤。在同样市场条件下,通过暂时减少 AMPL 在市场上的流通量,让 AMPL 价格上升,最终提高代币供应。同时巧妙地用债券的思路减少了 rebase 对 AMPL 现货产生的影响,甚至可以反过来利用 AMPL 本身锚定的 CPI,让 rebase 变成了对于 AMPL 本身价格上涨的预期,实在是太棒了。