本文總共分為中篇闡述自動做市商算法、現狀及未來迭代的思考,本文為中篇。下篇請點擊
目錄
7.?Curve的StableSwap和交易公式
8.?CurveV2的動態權重、可定制的價格錨定和平滑的價格過渡
9.?CurveV2在2代幣池中的做市商函數
10.與CPMM和StableSwap相比,CurveV2的價格函數
11.價格重錨過程:Xcp標準、EMA價格預言機、相對價格變化步長s
12.CurveV2的動態交易手續費
13.DEX聚合器:BalancerSOR算法的通用解決方案
14.Pivot算法:解決無常損失問題的一種嘗試
15.單邊流動性解決方案
Curve的StableSwap和交易公式:
Curve將恒定加和做市商(CSMM)和恒定乘積做市商(CPMM)合并在一起,以實現更低的價格滑點。我們可以把這個算法看作是向Uniswap/Balancer模型添加一個固定價格部分,使最終的做市函數錨定于一個價格。
Curve1?V1,被稱為StableSwap,設計了用于穩定幣交易的算法。它將CSMM與權重相乘并加上CPMM:
Curve1?V1
StableSwap—efficientmechanismforStablecoinliquidity
https://curve.fi/files/stableswap-paper.pdf
首先我們考慮一個特殊情況,即流動性池中每種代幣的數量是相同的。很容易證明在平衡點處時這個方程成立。但是,當流動性池失衡時,如果χ是一個常數,則該等式將不再成立。因此,我們需要將χ變量化。CurveV1選擇了一種χ的函數形式,使它在流動性池極端不平衡時變為零,這意味著該方程由CPMM主導。在平衡點下,χ等于A。A是一個常數,通過模擬歷史數據進行優化。代入χ給了我們一個始終成立的方程。
多鏈DEX聚合器Rango已集成Terra自動做市商Astroport:1月30日消息,多鏈DEX聚合器Rango宣布已集成基于Terra的自動做市商(AMM)Astroport,從而增強Rango的智能路由系統。[2022/1/30 9:23:20]
接下來,讓我們推導出StableSwap如何實際計算交易結果。根據當前池中的代幣數量,我們可以計算出D。例如,如果我們想換出代幣j,我們可以將x?分離開來并求解x?的方程:
該方程可以簡化為二次形式。可悲的是,現在鏈上Vyper語言里沒有可以解二次方程的數學庫。因此,StableSwap使用了牛頓法來求解x?。迭代公式每次迭代都將其精度加倍。因此,可以在設定的gas上限內計算可接受的x?。最后,交換前后x?之間的差值將是購買的代幣j的數量。
牛頓法
它是一種在實數域和復數域上近似求解方程的方法
https://en.wikipedia.org/wiki/Newton%27s_method
FromStableSwapwhitepaper
FromStableSwapwhitepaper
與CPMM相比,StableSwap做市商受壓、以x+y=常數方向壓平。這確保交易價格接近或等于1,在平衡點附近有非常小的滑點。當池中的一個代幣幾乎售罄時,價格開始急劇下降。這很容易理解:函數的曲率/滑點被集中/推到別處,以確保在平衡點附近的低滑點。
該模型中的CPMM和動態權重被用于懲罰提前知道消息的大額訂單,防止池中的代幣被完全售罄。
自動做市商Centaur Swap已在Polygon上線:DeFi解決方案提供商Centaur宣布,其自動做市商(AMM) Centaur Swap(CS)已經在Polygon上線。交易者、Farmer和流動性礦工開始參與其推廣計劃。WHEY和CNTR代幣已成功遷移至Polygon,Centaur已經在Quickswap上部署代幣流動性。[2021/8/29 22:44:35]
優點:通過添加CSMM和CPMM以及動態權重,Curve的StableSwap實現了非常小的滑點,非常適合穩定幣。
缺點:價格始終錨定在1。如果市場價格與流動性池價格顯著不同,流動性池將被買空。因此,StableSwap僅適用于穩定幣。
CurveV2的動態權重、可定制的價格錨定和平滑的價格過渡:
為了確保更平穩的價格過渡和可定制的價格錨定,Curve11V2將動態權重χ修改為K,如下所示:
Curve11?V2
Automaticmarket-makingwithdynamicpeg
https://curve.fi/files/crypto-pools-paper.pdf
K0在0和1之間變化,χ和K作為K0的函數繪制如下:
我們可以從上圖中了解CurveV2如何使價格轉變得平滑。它實際上使動態權重在遠離平衡點時迅速下降。γ值越小,下降越快。使動態權重快速下降到零本質上相當于強制函數表現得更像CPMM,即使流動性池只是有一點不平衡。
DW在twitter12上發布了一條很棒的推文,解釋了相同的概念。
DW?在?Twitter12的推文
https://twitter.com/dken_w/status/1422623679150649345
AOFEX商務副總裁Vivian:DeFi走向大眾的最重要的一步是AMM自動做市商機制和流動性挖礦的玩法:據官方消息,AOFEX商務副總裁Vivian在《佟掌柜的朋友們·海外項目專場》圓桌會議上主題為“新格局競爭下 區塊鏈生態中各類角色如何搶灘市場”表示,DeFi走向大眾的最重要的一步,始終是AMM自動做市商機制和流動性挖礦的玩法,這兩者都是傳統金融無法實現的新東西。自動做市商機制讓新的資產從發行到流通的過程變得非常短,也真實地反應出用戶對資產的實際價格預期。流動性挖礦則讓每一個普通用戶都可以參與其中獲取收益,直接促成了DEFI項目的火熱。AOFEX為了也開設了專門的DEFI挖礦參與通道,用戶將幣抵押在平臺,平臺再去選擇安全優質的項目參與,并且把收益給到用戶。
AOFEX數字貨幣金融衍生品交易所,旨在為用戶提供優質服務和資產安全保障。[2021/4/26 21:00:20]
價格過渡問題得到了解決。現在我們討論CurveV2如何實現其他不是1的價格錨定。有一個價格錨定意味著在做市曲線上存在一個平衡點,在平衡點處按價格標度縮放的代幣數量相等:
CurveV2在2代幣池中的做市商函數:
縮放后的代幣數滿足與StableSwap類似的等式。以最簡單的2幣流動性池為例,做市商函數可以用A、γ、p、D、x、y表示。該函數可以簡化為關于x,y的三次函數。
該函數的典型值圖如下所示:
與CPMM和StableSwap相比,CurveV2的價格函數:
Visa加密貨幣負責人:自動做市商將可兼容加密資產:金色財經報道,Visa加密貨幣負責人Cuy Sheffield今日發推文解釋了為什么非加密貨幣受眾也對自動做市商(AMM)感興趣。Sheffield稱,自動做市商就像獨立于任何公司或管理員的網站,世界上任何人都可以訪問并快速地將一項資產轉換為另一項資產。因此,與其要求公司建立和運營交易所,列出特定資產,然后讓專業交易者選擇用戶進行交易的資產,網站將充當交易所,用戶列出任何他們想要的資產,擁有資產的用戶結合算法則可充當專業交易員或做市商的角色。世界上任何想要購買該資產的人都可以立即進入該市場并通過互聯網獲取它,這可以適用于法幣(穩定幣)、數字商品(ETH和BTC),甚至適用于收藏品或游戲內資產(NFT)。它們還使任何人都可以輕松有效地在掛鉤相同的兩種形式的資產之間進行轉換,例如DAI/USDC,有點類似于將PayPal帳戶中的100美元快速轉換為Cash App帳戶中的100美元。[2020/9/28]
也可以繪制代幣x相對于代幣y的價格曲線。在平衡點(1000,1000)附近CurveV2價格函數恒定。與StableSwap相比,CurveV2略微延遲了價格變動,而不是完全延遲。與CPMM相比,隨著交易量的增加,價格開始以較小的滑點做出反應。總而言之,CurveV2在平衡點附近實現了非常小的滑點,并且在其他區域比CPMM實現了更好的滑點。至于其他非1的價格錨定,我們只需更改上面三次/六次方程中的p。因此,錨定價格的問題也解決了。
我們可以使用類似的在StableSwap中的牛頓法來計算交換結果。首先,我們根據池中當前的代幣數量計算D。其次,如果我們想換出代幣i,我們再次使用牛頓法來求解x?。同樣,x?的差異將是我購買的代幣數量。
為了確保多項式函數的根可以在設定的gas上限內求解,Curve白皮書討論了他們選擇的起始猜測,以及函數中的參數。他們使用一種稱為模糊測試的方法來確定這些最佳值。目前,我們不知道有關此方法的任何詳細信息,并且很想了解更多信息。
價格重錨過程:Xcp標準、EMA價格預言機、相對價格變化步長s:
為了確保小滑點,CurveV2通過改變價格標度不斷重錨做市商函數。然而,價格重錨可能導致流動性提供者承受價值損失。CurveV2引入了一個名為Xcp的變量來緩解這個問題:
Ocean Protocol與Balancer Labs合作將創建數據自動做市商:9月24日消息,基于區塊鏈的數據貨幣化創業公司OceanProtocol宣布將與BalancerLabs合作,創建首個用于數據的自動做市商(AMM)。據悉,OceanProtocol旨在幫助個人和企業解鎖數據并將其貨幣化,將數據和人工智能的好處擴展到少數囤積、控制并從中致富的組織之外。Ocean創始人TrentMcConaghy表示,創建高效的數據市場是實現這一目標的關鍵,因此與BalancerLabs達成合作。(CoinDesk)[2020/9/24]
如果一次重錨后的損失大于累積的Xcp的一半,則該算法將保持做市商函數不變。有幾個問題我們想在未來回答,因為白皮書只簡要討論了Xcp。查看其源代碼可能會有所幫助。
Xcp值是否與用流動性池中當前代幣數計算出的價值成正比?
存入或取出流動性是否計入Xcp?
如果取出流動性計入Xcp,如果Xcp減少幅度過大會阻止取出流動性嗎?
對于價格重錨,CurveV2使用EMA價格預言機來確定預言機價格。新的預言機價格向量由最近一次交易價格向量和前一個預言機價格向量的線性組合確定。新價格標度向量的變化方向與預言機價格相似,但不完全等于新預言機價格。他們通過引入相對價格變化步長s,將價格標度向量滯后于預言機價格。該方程可以使用歐幾里得幾何輕松導出。EMA價格預言機和價格標度延遲是為了減少近期價格波動的影響并更好地代表長期市場價格。
關于相對價格變化步長s,根據我們“刷新Curve官網”的經驗,部分流動性池的s變化頻率至少為十分鐘的量級以上。CurveV2如何更新s是一個有趣的問題,超出了我們當前知識的范圍。查看其源代碼也會有所幫助。
下面顯示了一個演示一次價格重錨過程的圖:
假設我們在x=1000開始我們的交易,并在x=1400結束我們的交易。最初,價格錨定于1。交易后,價格移動到0.6。為簡化起見,僅出于演示目的,我們將新的價格標度設置為與現貨價格相等,并求解六次方程以獲得D。現在做市商函數錨定于0.6,如上所示。
價格重錨本質上相當于找到一個新的做市商函數,該函數穿過當前代幣數量位置,在(x0,y0)處有一個平衡點,使得y0/x0為等于(x0,y0)處導數的絕對值。一個有趣的課題是獲取真實的Curve流動性池參數,做一個更好的價格重錨過程的演示。
CurveV2的動態交易手續費:
由于上面討論的CurveV2的做市商特性,將交易費用設為2級交易費用與動態權重的線性組合是合理的,衡量我們離平衡點有多遠。CurveV2選擇的fmid和fout值分別為0.04%和0.4%。下圖展示了2代幣池中的費用如何變化:
優點:做市商函數可以錨定于任何價格,適合所有代幣,而不僅僅是穩定幣。價格過渡比StableSwap更平滑。CurveV2還根據其內部的價格預言機不斷更新價格標度,以更好地代表市場價格,確保在平衡點附近交易。動態費用確保在此基礎上提供甚至更好的價格。
缺點:由于求解三次方程和六次方程,Gas費用可能會更高。僅根據其內部價格預言機進行價格重錨可能存在風險。我們想知道在通過Xcp標準時,是否存在價格標度與市場價格明顯不同的情況。如果是這種情況,與其他預言機交叉檢查價格可能會有所幫助。
Curve的StableSwap和動態錨定V2是為了使交易滑點盡可能小。StableSwap始終錨定于1,而V2使錨定價格跟隨市場價格。
下面將討論AMM算法的一些最新進展和可能的改進。
DEX聚合器:BalancerSOR算法的通用解決方案:
DEX聚合器是聚合現有AMM協議以實現更好交易結果的協議。如上所述,Balancer的SOR算法也適用于DEX聚合器,以確保數學上最優的交換策略。
Balancer的SOR算法的一般解決方案,沒有任何價格函數近似,可以表示如下:
因為價格函數可以是任何形式,具體取決于生成它們的AMM算法。這意味著滿足總代幣數量守恒和相等最終價格等條件的方程可能沒有解析解。
因此,我們引入了一種在機器學習等領域常用的技術,稱為梯度下降。我們將損失函數定義為不同價格函數值的方差。在選擇一個起始猜測后,我們可以迭代(通過損失函數相對于該變量的偏導數改變每個交換量,乘以學習率l)以獲得最佳結果,在一定的誤差接受范圍內。
由于作為最終等價函數的總交易量是單調的,因此該方法應該能夠找到全局最小值。同樣,上面的計算假設沒有簡單的解決方案。
Pivot算法:解決無常損失問題的一種嘗試:
Pivot算法試圖通過使做市商函數經過一個固定點(x0,y0)來對其進行樞軸旋轉。
(x0,y0)處的價格將始終是設計的當前市場價格Pt。這在概念上確保套利總是將流動性池帶回到點(x0,y0)。由于此功能,無常損失將為零。然而,實際上,該算法沒有足夠的參數來擬合當前儲備和。這意味著我們必須等待流動性池回到(x0,y0),然后更改做市商函數。
從上圖中我們可以看出,交易后的點不在新的做市商函數上。如果當前市場價格低于當前儲備的現貨價格,則流動性池也可能沒有任何動力回到(x0,y0)。
我們想知道是否存在這樣的函數通過(x,y)和(x0,y0)以及在(x0,y0)處的可調導數來適應市場價格。如果我們假設函數是凸的,那么市場價格不能小于這兩個點之間的線性段斜率。因此,如果做市商函數必須是凸函數,則此問題可能沒有完整的解決方案。
單邊流動性解決方案:
流動性提供者在存入流動性時可能不方便存入所有類型的資產。我想知道是否存在與Bancor采取的彈性供應方法不同的其他機制。直覺上,有兩種解決方案:1.首先使用相同的協議交換部分代幣2.無論如何存入單邊流動性,讓套利將價格帶回市場價格。
例如,我們希望將流動性存入一個等值的2代幣池中。
我們只有代幣x。不難計算我們需要交換多少,以便交換后每種代幣的價值相等。也很容易證明β總是在0和1之間,這意味著一個合理的結果。但是,交易后的價格可能與存入流動性時的價格不同。因此,我想知道協議是否真的將交換和流動性存入作為一項原子操作。進行交易時也存在價格滑點。到目前為止,Balancer和Curve等協議如何處理單邊流動性存入仍然是我們的一個問題。如果滑點很小,則進行上述操作是合理的。
BalancerandCurve白皮書中描述的第二種方法是是直接存入單邊流動性。這可能會大大改變價格。由此產生的套利也可能使無常損失變得重大。我們個人在Balancer白皮書和文檔中沒有看到任何懲罰措施。另一方面,Curve在存入單邊流動性時引入了一種稱為不平衡費的東西,其范圍從0%到0.02%。在現實中,由于套利和無常損失,在第二種方法下存入單邊流動性并沒有真正的動機。
了解更多與單邊流動性相關的其他創新將會很有趣。
由于本論文過長,?AMM算法的一些最新進展和可能的改進及后續內容將于下篇公布。
原文鏈接:https://link.medium.com/ynEydZUihjb???
作者:LeoLiu,GuangwuXie
翻譯:VanessaCao
校對:LeoLiu,GuangwuXie
排版:JaneHu
感謝:FangyuanZhao,ShowenPeng,DW,LianxuanLi,DaveWhite,DanRobinson,VanessaCao,JaneHu
金色財經區塊鏈9月26日訊?我們發現,在所有公鏈“拉升”的背后,幾乎都是經濟模式爆發的結果,因為只有當用戶在經濟上獲得了真正回報,公鏈的最終價值才會反饋到價格上.
1900/1/1 0:00:002021年9月22日-具有可編程隱私屬性的區塊鏈公鏈?Findora,其背后的開發者之一DiscreetLabs宣布,開發者現在可以通過Findora開發者網絡上的以太坊虛擬機部署智能合約.
1900/1/1 0:00:009月24日消息,中國人民銀行發布進一步防范和處置虛擬貨幣交易炒作風險的通知。通知指出,近期,虛擬貨幣交易炒作活動抬頭,擾亂經濟金融秩序,滋生賭博、非法集資、詐騙、傳銷、洗錢等違法犯罪活動,嚴重危.
1900/1/1 0:00:00金色財經區塊鏈9月22日訊?美國證券交易委員會主席GaryGensler近日接受《華盛頓郵報》專欄作家大衛·伊格內修斯的采訪,在談到穩定幣時言辭激烈,他認為穩定幣現在就像賭場里的撲克籌碼一樣.
1900/1/1 0:00:00根據商務部進一步開展商務領域促消費重點工作的指示,為壯大綠色循環消費,積極擴大重點領域消費,促進消費增長,9月30日起,西安市商務局、西安市金融工作局聯合品牌家電賣場在西安市范圍內的經營門店.
1900/1/1 0:00:00更名聲明 自2021年9月23日起,我們歷時4年主導開發的CESS分布式存儲項目,正式更名為EDCS分布式存儲項目,請相互告知,務必知悉!我們是一支有夢想、富有創造力的計算機研發團隊.
1900/1/1 0:00:00