月亮链 月亮链
Ctrl+D收藏月亮链
首页 > DOGE > 正文

Curve:自动做市商(AMM)算法的数学原理及其未来发展_cur币种

作者:

时间:1900/1/1 0:00:00

本文总共分为中篇阐述自动做市商算法、现状及未来迭代的思考,本文为中篇。下篇请点击

目录

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是一个常数,通过模拟历史数据进行优化。代入χ给了我们一个始终成立的方程。

接下来,让我们推导出StableSwap如何实际计算交易结果。根据当前池中的代币数量,我们可以计算出D。例如,如果我们想换出代币j,我们可以将x?分离开来并求解x?的方程:

研究:Solana自动做市商性能领先于以太坊等主流公链:3月3日消息,Dragonfly Research的一项实验通过测试六种主流区块链的自动做市商性能,最终发现Solana的Orca DEX在每秒交易数方面明显领先。Orca DEX每秒管理273.34笔交易,每590毫秒创建一个新区块。BNB Chain紧随其后,在PancakeSwap上每秒交易数为194.6笔,其次是Polygon、Avalanche、Celo,最后是以太坊。

研究人员“GM”的一篇博客文章认为,虽然以太坊EVM兼容链上构建了一个丰富的生态系统,但结果表明,如果你现在想要真正的高性能,你必须关注EVM之外的领域。在这篇博文的早期版本中还建议用户最终需要“放弃EVM”(此部分内容现已被删除)。GM的结论是,随着时间的推移,其他Layer 1区块链将超越EVM兼容链。(Cointelegraph)[2022/3/3 13:34:38]

该方程可以简化为二次形式。可悲的是,现在链上Vyper语言里没有可以解二次方程的数学库。因此,StableSwap使用了牛顿法来求解x?。迭代公式每次迭代都将其精度加倍。因此,可以在设定的gas上限内计算可接受的x?。最后,交换前后x?之间的差值将是购买的代币j的数量。

牛顿法

它是一种在实数域和复数域上近似求解方程的方法

https://en.wikipedia.org/wiki/Newton%27s_method

FromStableSwapwhitepaper

Stellar在协议升级中推出自动做市商:金色财经报道,在周三早上的协议升级中,代币化汇款协议Stellar推出了一个自动做市商(AMM),它将与其基于订单簿的路由和匹配引擎一起运行。Stellar生态系统负责人Justin Rice表示,在协议级别添加AMM是开发人员和用户之间的一个普遍要求。这种整合将使向协议添加新资产变得更加容易。AMM功能将在美国东部时间上午11点(北京时间23:00)上线。[2021/11/4 6:30:34]

FromStableSwapwhitepaper

与CPMM相比,StableSwap做市商受压、以x+y=常数方向压平。这确保交易价格接近或等于1,在平衡点附近有非常小的滑点。当池中的一个代币几乎售罄时,价格开始急剧下降。这很容易理解:函数的曲率/滑点被集中/推到别处,以确保在平衡点附近的低滑点。

该模型中的CPMM和动态权重被用于惩罚提前知道消息的大额订单,防止池中的代币被完全售罄。

优点:通过添加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的函数绘制如下:

自动做市商BurgerSwap发布补偿计划:官方消息,BSC链上首个自动做市商BurgerSwap发布补偿计划,在区块高度7781159(5月27日06:54:46 PM之前,UTC时间),持有遭受攻击的BURGER LP将有资格获得补偿。

此前消息,BurgerSwap更新闪电贷细节,共被盗走4400枚WBNB、140万枚USDT等代币。已修复Bug并重新开放兑换和流动性,随后公布补偿计划。[2021/5/31 22:58:10]

我们可以从上图中了解CurveV2如何使价格转变得平滑。它实际上使动态权重在远离平衡点时迅速下降。γ值越小,下降越快。使动态权重快速下降到零本质上相当于强制函数表现得更像CPMM,即使流动性池只是有一点不平衡。

DW在twitter12上发布了一条很棒的推文,解释了相同的概念。

DW?在?Twitter12的推文

https://twitter.com/dken_w/status/1422623679150649345

价格过渡问题得到了解决。现在我们讨论CurveV2如何实现其他不是1的价格锚定。有一个价格锚定意味着在做市曲线上存在一个平衡点,在平衡点处按价格标度缩放的代币数量相等:

CurveV2在2代币池中的做市商函数:

缩放后的代币数满足与StableSwap类似的等式。以最简单的2币流动性池为例,做市商函数可以用A、γ、p、D、x、y表示。该函数可以简化为关于x,y的三次函数。

该函数的典型值图如下所示:

V神:预测市场在过去一个月才意识到自动做市商对用户重要性:The Block研究总监Larry?Cermak在推特表示,对于预测市场,我很惊讶在这次选举中赔率(OI值)还这么低,这可能是历史上最大的投注事件。对于非加密用户来说,用户界面和用户体验仍然是一个问题。但我也认为,预测市场将在未来几年崩盘。对此V神回复称,公平地说,预测市场(PM)社区似乎在过去的一个月才意识到自动做市商(AMMs)对于用户体验的重要性。今日消息,V神推荐Libra项目负责人关注预测市场类DeFi项目。[2020/11/3 11:33:03]

与CPMM和StableSwap相比,CurveV2的价格函数:

也可以绘制代币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的变量来缓解这个问题:

Visa加密货币负责人:自动做市商将可兼容加密资产:金色财经报道,Visa加密货币负责人Cuy Sheffield今日发推文解释了为什么非加密货币受众也对自动做市商(AMM)感兴趣。Sheffield称,自动做市商就像独立于任何公司或管理员的网站,世界上任何人都可以访问并快速地将一项资产转换为另一项资产。因此,与其要求公司建立和运营交易所,列出特定资产,然后让专业交易者选择用户进行交易的资产,网站将充当交易所,用户列出任何他们想要的资产,拥有资产的用户结合算法则可充当专业交易员或做市商的角色。世界上任何想要购买该资产的人都可以立即进入该市场并通过互联网获取它,这可以适用于法币(稳定币)、数字商品(ETH和BTC),甚至适用于收藏品或游戏内资产(NFT)。它们还使任何人都可以轻松有效地在挂钩相同的两种形式的资产之间进行转换,例如DAI/USDC,有点类似于将PayPal帐户中的100美元快速转换为Cash App帐户中的100美元。[2020/9/28]

如果一次重锚后的损失大于累积的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

标签:CurveCURSWAPSTASCURVE价格cur币种EmiSwapSTAR币

DOGE热门资讯
比特币:观点:比特币与100年前福特提出的能源支持货币的概念相似_比特币行情软件哪个好用

9月19日消息,1921年,美国实业家亨利福特提议创建一种“能源货币”,它可以构成新货币体系的基础——这与中本聪2008年比特币(BTC)白皮书中概述的点对点电子现金系统有着惊人的相似之处.

1900/1/1 0:00:00
稳定币:为什么大家都想发行稳定币?_ETHE

在加密货币行业里,稳定币似乎一直都是核心争议话题之一,而且还有许多新问题不断涌现。我们发现,一些公司和协议几乎每周都会宣布各种的稳定币举措,似乎加密货币行业中的每个人都急于推出自己的稳定币.

1900/1/1 0:00:00
NFT:金色DeFi日报 | DeFi市值达$1439.53亿 创历史新高_DEFY

DeFi数据1.DeFi总市值:1394.67亿美元 DeFi总市值数据来源:Coingecko2.过去24小时去中心化交易所的交易量:35.

1900/1/1 0:00:00
INT:Loot的孪生兄弟More Loot的领取教程_ETH

MoreLoot背景4日凌晨Loot创始人dom发了个推特,宣布130万个Mloot可免费领取.

1900/1/1 0:00:00
比特币:那些投资比特币的大公司现在怎样了?_YVBOOST

2021年,注定是个不平凡的一年。比特币自2021开年就屡破新高,创下纪录,吸引众多的目光。这些目光当中,吸引力众多的机构。机构的入场将比特币价格维持在高位.

1900/1/1 0:00:00
SHI:Layer 2增长浪潮中3大投资机会:基础设施、应用程序和原生资产_milo币会超过shib币

注:原文作者为BenGiove,Bankless撰稿人兼ChapmanCrypto总裁,以下为全文编译。永远不要低估简并的力量.

1900/1/1 0:00:00