作者介绍:
0xmc@0xreviews:机制审计、产品设计、密码经济学独立研究员。
0xjezex@0xreviews:代币经济学独立研究员,初级Solidity工程师,伦敦帝国理工学院金融科技硕士生。
0xstan@0xreviews:独立开发者,DappLearning核心贡献者。
paco@perp.com:Solidity开发者、安全研究员、DeFi爱好者。
前言
Curve稳定币最难的部分是LLAMMA。LLAMMA参考了Uniswapv3中的一些原则。但是,白皮书中的价格与Uniswapv3白皮书中的算法不同。我们将统一这两个项目,并尝试了解CurveCEO是如何设计这个演算法。
用Uniswapv3作为参考
本文中价格的定义与Uniswapv3互为倒数。因此,我们修改了Uniswapv3白皮书中的公式,让它与本文保持一致。简而言之,LLAMMA试图让Uniswapv3中的一切都变得动态,以便为crvUSD债务人和清算人提供更适当的价格。
恒定乘积公式(ConstantProductFomula)比较
Uniswapv3白皮书中的公式(2.2):
图一:Uniswapv3虚拟流动模拟
Curve稳定币白皮书中的公式(1):
图二:有外部价格来源的AMM
在这裡Pcd代表Pcurrent_down,Pcu代表Pcurrent_up
而对应关係为:
对应的恒定乘积公式为:
而在这之间:
流动性计算公式对应
Uniswapv3白皮书中的公式(6.7):
由于它们的价格定义之间存在倒数关係,对应的公式为:
此公式的一个具体应用是:
平方展开可以得到:
从上面的公式我们很容易的可以了解,当y0保持不变,Pcd和Pcu数值越接近,相对应的流动性I则越大。
换句话说:
流动性不可能是无限的,在UniswapV3中对应最小的tick会限制L的大小。
由此可以推断在LLAMMA中,我们还需要定义一个指标来衡量价格之间的最小差异,来继续Uniswapv3和Curve的类推。
对应最小差价
从A的定义中可以看出?,当p↓和p↑越接近时,A则越大,流动性集中度越高:
Uniswapv3中,只有能被tickSpacing整除的tick才能被预设。因此,tickSpacing决定了LP分配流动性的最低价格范围。tickSpacing越小,价格范围越窄、越精确。在Uniswapv3中,不同的费用等级决定了不同的tickSpacing。
然而,crvUSDLLAMMA不需要那麽多tickSpacing。由于LLAMMA仅有ETH-crvUSD,因此只需要让每一个tickSpacing=100basepoint。?
来自Uniswapv3的公式(6.1):
在LLAMMA中,A=100,来自Curve稳定币白皮书的公式(11):
设置n=-i,A=100,我们会得到:
设计Pcd和Pcu
我们希望LLAMMA具有以下属性:当ETH价格上涨时,矿池购买ETH。当ETH下跌时,矿池出售ETH。在这样的机制下,我们把Pcd和Pcu定义为Po的函数并且比线性函数更陡峭,因此它们的增长率会比Po更快。同时从图中可以看出两条曲线Pcu和Pcd分别通过两点(P↓,P↓)和(P↑,P↑)。满足以上要求的Pcd和Pcu其实有很多曲线。通用公式为:
当m<n
让我们从最简单的例子开始:
把Pcu和Pcd带入I的平方展开:
然后f2可以计算为:
不难发现f2在这种假设下很难理解和计算。如果Pcu和Pcd是?Po的三次函数:
把Pcu和Pcd带入I的平方展开:
重新计算f2:
可以看出,当?Pcu和Pcd是Po的三次函数,整个数学形式就简单多了。去掉了平方根项,计算方便多了。如果接受更高的订单,则AMM的价格和Po将相差很大,因此购买ETH的成本会更高,而导致更大的清算损失。总之,把Pcu和Pcd定义为Po的三次函数是一个更好的选择。
其他参数的推导
Pcu和Pcd是关于Po的三次函数,取特别数值Po=P↑,不难得到Y=Y0和X=0,于是:
鉴于I的公式,我们可以计算f和g:
在这边,我们最终得到完整的恒定乘积公式:
将上方公式转化为Y0二次方程式:
用一个未知数的二次方程求解Y0:
如果价格变动的够慢让预言机价格Po完全有能力遵循它,给定X和Y,使用Uniswapv3的计算公式,是有可能计算出ETH的Y↑是多少或美元的X↓最终将处于的区间内:
参考出处:Adams,Hayden,etal."Uniswapv3core."Tech.rep.,Uniswap,Tech.Rep,2021fromhttps://uniswap.org/whitepaper-v3.pdfEgorov,Michael,andCurveFinance.Curvestablecoindesign.Technicalreport,CurveFinance,Tech.Rep,2022fromhttps://github.com/curvefi/curve-stablecoin/blob/master/doc/curve-stablecoin.pdf
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。