研究報告:理解演算法穩定幣不確定性

摘 要:

演算法穩定幣是一種由計算機程式碼(即智慧合約)控制的加密貨幣,旨在動態降低其相對特定資產(如美元)價格的波動性。但隨著演算法穩定幣近幾年來的迅速發展,它們的波動性遠遠超過人們的預期。在本文中,我們深入研究了演算法穩定幣的核心,並回答了兩個基礎問題,即:演算法穩定幣是否從設計上就存在波動性?它們在實踐中能否保持穩定性?具體來說,我們首先對三種流行的演算法穩定幣進行了深入研究,並建立了一個建模框架對它們的核心協議進行了形式化。透過形式化驗證,該框架可以鑑別出穩定幣可能變得不穩定的臨界條件。其次,我們對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和ω_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)