研究报告丨理解算法稳定币的不稳定性
摘 要:
算法稳定币是一种由计算机代码(即智能合约)控制的加密货币,旨在动态降低其相对特定资产(如美元)价格的波动性。但随着算法稳定币近几年来的迅速发展,它们的波动性远远超过人们的预期。在本文中,我们深入研究了算法稳定币的核心,并回答了两个基础问题,即:算法稳定币是否从设计上就存在波动性?它们在实践中能否保持稳定性?具体来说,我们首先对三种流行的算法稳定币进行了深入研究,并建立了一个建模框架对它们的核心协议进行了形式化。通过形式化验证,该框架可以鉴别出稳定币可能变得不稳定的临界条件。其次,我们对Basis Cash的实际交易过程进行了系统性实证分析,将理论可能性与市场观测值联系起来。最后,我们还对算法稳定币未来发展的设计决策提出了几点建议。
1. 引言
众所周知,加密货币的价格有非常大的波动性,币价经常快速波动。因此,将加密数字货币价值与外部资产(如美元)挂钩的稳定币应运而生。与非稳定币(如比特币[19]、以太坊[24])相比,稳定币尝试用各种机制来降低其相对锚定资产的价格波动性。其中,最常见的是有抵押资产背书的稳定币,即其价值由商品、法定货币或其它加密货币等外部资产作为抵押品来支撑。例如,同美元锚定的USDC稳定币[5]。与背书稳定币不同,算法稳定币通常没有其他资产支撑,但它通过算法稳定价格,不会降低过多的资本效率,因此近年来越来越受到关注。一般来说,算法稳定币是通过算法控制通证供应量从而实现价格稳定,这一点类似于中央银行发行和回购货币。在本文中,我们主要关注算法稳定币,后文中也会简称为稳定币(背书稳定币不是本文主要讨论对象)。
假设有一种与美元锚定的算法稳定币,其中设计了可以动态调整其供应量的智能合约,并可以以此来降低它本身的价格波动性。我们先简单解释一下这个算法逻辑,后面再详细讨论更深入的内容。当稳定币价格超过1美元时,智能合约“生产”并向市场投放更多通证。这样一来,稳定币供应量增加、价格下降,逐渐趋近锚定价格;当稳定币价格低于1美元时,会降低货币供给,逐渐将稳定币价格拉回到1美元。在实践中,不同算法稳定币模型会基于前述思想用不同的模型来实现对自身稳定币的价格控制。虽然有很多有意思的研究在尝试创造这类模型,但研究它们是否真正发挥作用的工作并不多。
在本文中,我们从理论和实践两方面对算法稳定币的波动性进行了基本分析,并尝试回答以下两个问题:1. 算法稳定币是否从设计上就存在波动性? 2. 算法稳定币是否能在实践中保持稳定性?
本文分析目标在于为算法稳定币的设计及实现方案提供一个更为全面的解读,并着重分析它们的波动性。我们相信,波动性的研究对于现存算法稳定币的优化和未来设计都至关重要。本文主要贡献如下:
1.对三种流行的算法稳定币进行案例分析,并建立了一个通用的形式化建模及验证框架,该框架可用于识别稳定币可能变得不稳定的具体条件;
2.进一步地,我们基于以太坊真实交易,对Basis Cash项目进行了实证研究,并成功将理论可能性(稳定币可能波动)与2020年12月至2021年1月间的实际市场表现(预期外的波动结果)联系起来。
2. 背景
我们将算法稳定币分为三类,即Rebase类、铸币权份额类及部分抵押类。在本节中,我们以一些热门项目为例来分别简要介绍这三种算法稳定币的关键设计。
2.1 以Ampleforth为代表的Rebase类
一般的ERC20代币价格都是弹性的,Rebase类的算法稳定币通过一些常规性调整机制,例如调整稳定币的总供应量,来管理弹性的价格。更具体的说,这种自适应调整是通过“rebase”过程自动实现的。在代币供应变化过程中,目标稳定币价格会逐渐稳定至原先锚定的价格上,比如1美元。我们以Ampleforth[1]为例进行说明。
按照Ampleforth的设计机制,智能合约在每天UTC凌晨2点对Ampleforth进行一次代币供量调整。当Ampleforth价格高于锚定价格时,系统会同时增加所有用户地址中的AMPL余额,但整个过程用户持有的AMPL在总供应量中的占比并不会发生变化。假设Ampleforth最初锚定价格为1美元,价格上涨20%,即1.2美元。那么一个拥有100枚AMPL的账户,在经过系统重调后,系统余额就会变为120枚AMPL(实际情况中,是通过多次调整完成)。反之,当Ampleforth价格低于锚定价格时,所有用户持有的AMPL余额会同时按比例减少。
2.2 以Basis Cash为代表的铸币权份额类
算法稳定币的铸币权份额代币类模型通常会引入了两种加密货币,即稳定币和权益代币。原则上说,权益代币是被用来在稳定币价格高于原先锚定价格时增加货币供给的。除了这两种代币,铸币权份额类算法稳定币通常还会发行可赎回债券,以便在稳定币价格低于锚定价格时形成激励机制回拉价格。以Basis Cash[2]为例做进一步解释。该协议共包含三种代币:
BAC稳定币。BAC是Basis Cash发行的稳定币,锚定价格1美元。
BAS权益代币。BAS是指Basis Share,它是一种ERC20代币,并在通胀时为持币用户提供BAC的通胀收益。BAS的设计目的是通过动态增加BAC的供给来防止BAC价格过高。目前,BAS可以通过参与去中心化金融平台上的流动性挖矿来获得,例如Uniswap[6]。
BAB债券。BAB是指Basis Bond,其价格等于BAC当前价格的平方,即[if !msEquation] [endif]。BAB的设计为参与者提供了一个折扣获取BAB的方式。其设计目的是当BAC价格脱锚时,重新将价格拉回至1美元。
Basis Cash整个协议是通过两种机制,即通证的扩张和紧缩来自适应调整BAC的供应从而稳定BAC的价格。下面我们简单介绍这两个过程。
扩张。扩张的机制的目的在于,BAC价格高于锚定价格时增加BAC的供应量。按照Basis Cash的设计,扩张会在两种情况下被触发。第一种情况,BAC将作为奖励铸造并发放给BAS持有者。也就是说,对任何拥有一定数量BAS的人来说,扩张过程都会按比例将新的BAC进行分配;另一种情况,在价格高于锚定时,BAB持有者可以按照1:1的价格赎回BAC,从而增加BAC的数量。通过这两种方式,BAC的供应量均会有所增加,BAC的价格也会被预期逐渐降低。
紧缩。紧缩的机制旨在减少BAC的供应量。即,当BAC价格低于1美元时,用户可以销毁BAC来低价购买的BAB,若价格再次高于1美元,用户可以用BAB债券1:1赎回稳定币BAC,形成一个套利空间,激励用户购买并销毁BAC。从设计上说,紧缩供应期望能够防止BAC的价格太过低于锚定价格。
2.3 以Frax为代表的部分抵押类
相对于前两种算法稳定币,一种在其基础上,增加了使用部分稳定币作为抵押资产的稳定币登上舞台。一方面,与DAI等现有的抵押式稳定币相比,部分抵押类稳定币可以降低代币的托管风险,并避免超额抵押的出现;另一方面,相对于完全由算法控制的稳定币而言,这类稳定币的价格稳定性更高。下面我们将以FRAX[4]为例进行介绍。
FRAX是首个部分抵押的算法稳定币项目,系统中有两种代币,分别为锚定价值1美元的稳定币FRAX和治理代币FXS。其中,[if !msEquation][endif]为抵押率,根据系统算法每小时调整一次,每次调整0.25%,以此来维持FRAX价格的稳定。初始时,抵押率为1。当抵押率为0.5时,铸造一枚新的FRAX需要价值0.5美元的其它稳定币作为抵押;当抵押率为1时,需要全额抵押来铸造FRAX;当抵押率为0时,FRAX是纯算法稳定币。
原则上,铸造n个FRAX需要价值[if !msEquation][endif]的抵押物并燃烧价值[if !msEquation][endif]的FXS。当FRAX价格高于1美元时,会存在套利机会使用户用1美元的价值铸造高于1美元的FRAX,从而激励用户铸造更多的FRAX,降低FRAX的价格;当FRAX价格低于1美元时,用户可以销毁1枚FRAX换取价值1美元的代币组合,该组合主要是质押代币和FXS。这种措施会激励用户更多地购买FRAX、减少FRAX供应量来提高FRAX的价格。
3. 建模及验证
3.1 稳定币建模
在本节中,我们重点提出了一个由六种时间自动机[7]组成的形式化框架M≔〈P,E,∁,S,B,X〉,并且每种都包含一组元组Q≔〈S,s_0,X,A,T,I,S_n 〉。其中,S为有限的状态集,s_0∈S为初始状态,X为一组非负实数的时钟变量,S_n⊆S为各种接受状态集,A为动作集,I为状态的不变式集合。假定ϕ为约束函数,则T⊆S×ϕ(X)×2^X×A×S就是状态变迁的集合,其中每一个变迁是〈s,a,g,R,s^' 〉, s和s^'分别为源状态和目标状态,a为动作,g是转换条件,R为等待重置的时钟集。
另外,M通过四类同步通道Ω≔实现通信。其中,ω_e和ω_c是用来触发代币供应的扩张和紧缩过程,ω_x用来模拟市场交易活动和更新稳定币价格,而ω_u则是来同步E,∁和X的变化。图1是我们为Basis Cash建立的形式化模型,该模型对其它类型的稳定币同样适用。由于篇幅的限制,我们只阐述BAC。
P模拟了核心协议的五种状态,即初始状态,预扩张状态,扩张状态(价格高于锚定价格时),预紧缩和紧缩状态(价格低于锚定价格时)。在扩张和紧缩过程开始前,通道ω_e和ω_c会被激活。
E定义了一个包含时钟t和三种状态的过程。当t处于系统规定的供应扩张时间(例如24点)时,只要E接收到P的请求,系统就会开始扩张稳定币的供应(即全局变量N_bac)。对Basis Cash而言,E为其建立了两个扩张转换并通过通道ω_u与X同步。
∁抽象了整个供应紧缩过程。类似E,∁中也通过更新全局变量来减少稳定币的整体供应量。不过,这里还模拟了供应量保持不变的情形(投资者没有用BAC换取BAB)。
S和B是用来模拟交易中买方和卖方的行为,他们随机生成交易请求,并通过通道ω_x来完成与其他市场参与方的通信和交互。
X抽象了类似Uniswap等具有自动做市功能的DEX。在X中,所有成交价格都根据AMM及稳定币池计算。不仅如此,X还定义了出售和购买状态,来表示究竟处于买方市场(即卖方多于买方)还是卖方市场(即买方多于卖方)。
3.2 形式化验证
基于上述工作,我们进一步提出了基于时序逻辑[21]来形式化规范定义稳定币的价格稳定性属性。具体来说,稳定性被定义为ΑG类型的时序逻辑表达式,即相关属性应用于整体状态空间中的所有路径和路径里的所有状态之上[21]。
AG(P.Expanded∧E.Updated)⟹!X.Buy(扩张有效性)
AG(P.Contracted∧∁.Updated)⟹!X.Sell(紧缩有效性)
Basis Cash反常波动示例
稳定性属性。 为了形式化描述价格波动弹性,我们引入了扩张有效性和紧缩有效性。以Basis Cash为例,当P处于供应扩张阶段且E处于Updated状态时(即系统增加货币供给),X不应为购买状态,即不处于买方市场。同样的,当P处于供应紧缩阶段且∁处于Updated状态时,X不应为出售状态,即不处于卖方市场。
反例分析。我们利用Uppaal 模型检测工具对Basis Cash中的时间自动机[16]进行了验证。图2为引起Basis Cash违反稳定性属性的两个例子,即其发生了不合预期的波动,分别是无效扩张和无效紧缩。在图2a中,系统处于供应扩张阶段,开始铸造并发放新的稳定币,但此时BAC的需求量却出现增加,以致于DEX进入了购买状态而不是出售状态,最终导致BAC价格没有如预期下跌,出现无效扩张;在图2b中,当BAC价格低于其锚定价格时,系统处于供应紧缩阶段,用户可以将手里的BAC拿来换取BAB。然而,如果交易没有发生,导致BAC的供应未发生变化,那系统供应紧缩也就失效了。
4. 实证分析
在本章,我们将基于上文Basis Cash的形式化建模和验证,在真实市场进行数据观测的实证分析。其中所有数据及其查询语句都可以从Dune Analytics[3](https://explore.duneanalytics.com/dashboard/winky)平台上获取。
正常情况。图3a和3b分别代表正常的供应扩张和供应紧缩过程。如图3a所示,随着新BAC的铸造,BAC价格开始逐渐降低;类似的,在图3b中,随着BAC的销毁,BAC价格开始慢慢上涨。
无效扩张。图3c和图3e表示3.2节中提到的BAC在2020年12月14日至15日的无效扩张过程。从图3c中我们可以清楚的看见,BAC供应量在14日0点和15日0点分别都有所增加,而价格却在14日0点后的7小时内(红色区间)从1.35美元上涨至1.56美元,在15日0点后的7小时内(红色区间)从1.62美元涨至1.76美元,涨幅分别为15.72%和8.40%。这种无效扩张可以归因于图3e所示的市场需求变化。在图3e中,由于早期BAC-DAI池流动性挖矿收益率非常高,导致即便当时BAC正处于系统扩张供应阶段,整个市场对BAC的需求仍迅速增加。这种对BAC的需求也可以由另一个数据侧面观察到,即这批2020年12月14日新铸造的BAC中,约92%的BAC在供应扩张后的2小时内迅速流入流动性挖矿池中。
无效紧缩。图3d和图3f证实了因无效紧缩而可能对BAC带来的未预期波动。从2021年1月11日至本文撰写之时,尽管系统一直处于紧缩供应阶段,BAC的价格却一直维持在其锚定价格以下,如图3d所示。而导致这种无效紧缩的原因在于用户参与度过低,即许多投资者担心若BAC价格一直维持在1美元以下,则无法达到用BAB赎回BAC的条件,因此不愿意销毁BAC来购买BAB债券,Basis Cash的紧缩供应操作失效。正如图3f所示,BAC的销毁数量自1月11日后相较前几日明显减少。
设计决策。首先,从提高稳定性上来说,货币供应紧缩政策的设计比供应扩张政策更加重要。因为加密货币的价格通常更容易下跌,如何在稳定币价格低于锚定价格时让投资者重拾信心,这一点十分关键。开发者在设计之初也可以将协议与更多生态系统结合,以此来丰富稳定币的应用场景提升需求。此外,算法控制的次数和周期也是稳定币设计过程中的关键因素。
5. 相关工作
随着稳定币近年来收到越来越多的关注,研究人员持续在做一些为其设计货币政策的研究工作[11][14]。Saito[22]等人提出将需求量波动转移到供应量波动中,从而来稳定加密货币价格;Caginalp[10]等人利用资产流动方程建立了一个有关加密货币及其稳定性的模型;Amentrano[8] 提出一种供应弹性的加密货币,即哈耶克货币;Sams[23]则在此基础上进一步提出了铸币权份额模式。除此之外,有关算法稳定币设计综述的研究论文和行业报告[9],[12],[13],[15],[17],[18],[20]也不在少数,不仅对不同稳定币进行了细致分类,还详细阐述了各个模式的优缺点,不同程度上成为了之后落地应用的理论基础。
6. 结论
本文对算法稳定币的波动性进行了深入的理论和实证分析。首先,我们为稳定币建立了一个形式化建模及验证框架,用来识别稳定币可能波动的具体条件。然后,我们通过实证分析,验证了该模型与实际市场表现的一致性。最后,我们展望了稳定币未来发展的研究方向。本文中使用的各项数据均可在https://explore.duneanalytics.com/dashboard/winky上获得。
参考文献
[1] Ampleforth. https://www.ampleforth.org/ (2021)
[2] Basis Cash. https://basis.cash/ (2021)
[3] Dune Analytics. https://duneanalytics.com/ (2021)
[4] Frax. https://frax.finance/ (2021)
[5] Tether. http://tether.to (2021)
[6] Uniswap. http://uniswap.io (2021)
[7] Alur, R., Dill, D.L.: A theory of timed automata. Theoretical computer science 126(2), 183–235 (1994)
[8] Ametrano, F.M.: Hayek money: The cryptocurrency price stability solution. Available at SSRN 2425270 (2016)
[9] Bullmann, D., Klemm, J., Pinna, A.: In search for stability in crypto-assets: are stablecoins the solution? ECB Occasional Paper (230) (2019)
[10] Caginalp, C.: A dynamical systems approach to cryptocurrency stability. arXiv preprint arXiv:1805.03143 (2018)
[11] Caginalp, C., Caginalp, G.: Opinion: Valuation, liquidity price, and stability of cryptocurrencies. Proceedings of the National Academy of Sciences 115(6), 1131– 1134 (2018)
[12] Clark, J., Demirag, D., Moosavi, S.: Sok: Demystifying stablecoins. Available at SSRN 3466371 (2019)
[13] Hileman, G.: State of stablecoins (2019). Available at SSRN (2019)
[14] Iwamura, M., Kitamura, Y., Matsumoto, T., Saito, K.: Can we stabilize the price of a cryptocurrency?: Understanding the design of bitcoin and its potential to compete with central bank money. Hitotsubashi Journal of Economics pp. 41–60 (2019)
[15] Klages-Mundt, A., Harz, D., Gudgeon, L., Liu, J.Y., Minca, A.: Stablecoins 2.0: Economic foundations and risk-based models. In: Proceedings of the 2nd ACM Conference on Advances in Financial Technologies. pp. 59–79 (2020)
[16] Larsen, K.G., Pettersson, P., Yi, W.: Uppaal in a nutshell. International journal on software tools for technology transfer 1(1-2), 134–152 (1997)
[17] Mita, M., Ito, K., Ohsawa, S., Tanaka, H.: What is stablecoin?: A survey on price stabilization mechanisms for decentralized payment systems. In: 2019 8th International Congress on Advanced Applied Informatics (IIAI-AAI). pp. 60–66. IEEE (2019)
[18] Moin, A., Sekniqi, K., Sirer, E.G.: Sok: A classification framework for stablecoin designs. In: Financial Cryptography (2020)
[19] Nakamoto, S.: Bitcoin: A peer-to-peer electronic cash system. Tech. rep., Manubot (2019)
[20] Pernice, I.G., Henningsen, S., Proskalovich, R., Florian, M., Elendner, H., Scheuermann, B.: Monetary stabilization in cryptocurrencies–design approaches and open questions. In: 2019 Crypto Valley Conference on Blockchain Technology (CVCBT). pp. 47–59. IEEE (2019)
[21] Pnueli, A.: The temporal logic of programs. In: 18th Annual Symposium on Foundations of Computer Science (sfcs 1977). pp. 46–57. IEEE (1977)
[22] Saito, K., Iwamura, M.: How to make a digital currency on a blockchain stable. Future Generation Computer Systems 100, 58–69 (2019)
[23] Sams, R.: A note on cryptocurrency stabilisation: Seigniorage shares. Brave New Coin pp. 1–8 (2015)
[24] Wood, G., et al.: Ethereum: A secure decentralised generalised transaction ledger. Ethereum project yellow paper 151(2014), 1–32 (2014)
Scan QR code with WeChat