作者介绍:
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):
数据:7000 万 USDT 从 Tether 金库转至 Bitfinex:12月15日消息,Whale Alert 数据显示,北京时间 10:44:51,7000 万枚 USDT 从 Tether 金库转至加密交易所 Bitfinex。[2022/12/15 21:46:26]
图一:Uniswapv3虚拟流动模拟
Curve稳定币白皮书中的公式(1):
图二:有外部价格来源的AMM
在这裡Pcd代表Pcurrent_down,Pcu代表Pcurrent_up
而对应关係为:
对应的恒定乘积公式为:
被标记为孙宇晨的地址从 Aave V2 中撤回1000万枚TUSD并转入币安:10月21日消息,PeckShield在推特上表示,被Etherscan标记为孙宇晨的地址从Aave V2中撤回1000万枚TUSD并转入币安。本月至今,孙宇晨相关地址已从Aave撤回了近2亿美元稳定币。[2022/10/21 16:34:53]
而在这之间:
流动性计算公式对应
Uniswapv3白皮书中的公式(6.7):
由于它们的价格定义之间存在倒数关係,对应的公式为:
此公式的一个具体应用是:
Juno Network 发布向从 Terra 迁移至 Juno 上项目提供激励的提案:5月15日消息,Cosmos 生态智能合约公链 Juno Network 发布向从 Terra 迁移至 Juno 上项目提供激励的提案。该提案建议提供 100 万枚 JUNO(社区池提供 70 万,发展基金提供 30 万),用于项目迁移和持续开发,且该部分资金将由多签地址管理。[2022/5/15 3:17:19]
平方展开可以得到:
从上面的公式我们很容易的可以了解,当y0保持不变,Pcd和Pcu数值越接近,相对应的流动性I则越大。
换句话说:
流动性不可能是无限的,在UniswapV3中对应最小的tick会限制L的大小。
由此可以推断在LLAMMA中,我们还需要定义一个指标来衡量价格之间的最小差异,来继续Uniswapv3和Curve的类推。
对应最小差价
ENS 发起新提案,计划将过期域名的临时溢价从 2000 美元提高到 10 万美元:1月10日消息,以太坊域名项目ENS 现已在Snapshot发起对最新治理提案的投票,计划将过期域名的临时溢价起始价格从 2000 美元提高到 10 万美元,每小时下调150美元,并在28天后降低为0,以防止域名“狙击”的情况。[2022/1/10 8:37:41]
从A的定义中可以看出?,当p↓和p↑越接近时,A则越大,流动性集中度越高:
Uniswapv3中,只有能被tickSpacing整除的tick才能被预设。因此,tickSpacing决定了LP分配流动性的最低价格范围。tickSpacing越小,价格范围越窄、越精确。在Uniswapv3中,不同的费用等级决定了不同的tickSpacing。
然而,crvUSDLLAMMA不需要那麽多tickSpacing。由于LLAMMA仅有ETH-crvUSD,因此只需要让每一个tickSpacing=100basepoint。?
来自Uniswapv3的公式(6.1):
Audius、DODO、Livepeer 等应用从 The Graph 托管服务迁移到主网:6月11日消息,区块链数据索引项目 The Graph (GRT)表示,Audius、DODO、Livepeer、mStable、Opyn、PoolTogether、Reflexer 和 UMA 等应用现已完全从 The Graph 的托管服务迁移到主网,成为 The Graph 主网上的 10 个子图,且均可使用 GRT 来支付网络使用费。[2021/6/11 23:29:40]
在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
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。