2. 恒定和公式与恒定积公式:数学推导与局限性分析
聊到Curve的稳定币池设计,咱们得先搞清楚它的两个“前辈”——恒定和公式与恒定积公式。这两个公式是AMM的基石,但各有各的毛病。Curve正是看准了这些毛病,才搞出了自己的混合模型。
我个人习惯把这两个公式比作“跷跷板”和“双曲线”。一个太死板,一个太敏感。咱们一个一个来看。
2.1 恒定和公式(Constant Sum)
恒定和公式,说白了就是:x + y = k。
其中x和y是两种资产的数量,k是常数。这个公式的逻辑很简单——无论你怎么交易,池子里两种资产的总数量保持不变。
2.1.1 数学推导
假设池子里有100个USDC和100个USDT,k=200。你想用10个USDC换USDT:
交易前:x + y = 100 + 100 = 200
你存入10 USDC,池子x变为110
要维持等式:110 + y = 200 → y = 90
你得到:100 - 90 = 10 USDT
看到了吗?1:1兑换,没有滑点。这就是恒定和公式的“理想国”——价格永远不变。
核心特征:价格恒定为1,无滑点交易。
2.1.2 局限性分析
嗯,这里要注意。恒定和公式有个致命伤——流动性枯竭。
我在项目中遇到过这样一个场景:假设USDC突然跌到0.9美元,USDT还是1美元。套利者会疯狂买入USDC,直到把池子里的USDC掏空。为什么?因为池子还在按1:1的价格卖USDC,外面都0.9了,这里还1块,不套白不套。
结果就是:池子里的USDC被抽干,只剩USDT。交易直接瘫痪。
致命缺陷:当外部价格偏离1:1时,池子会迅速被套利者掏空一侧资产,导致流动性完全丧失。
你想想看,这就像你开了一家商店,永远按进货价卖东西。一旦外面涨价,你的货瞬间就会被抢光。恒定和公式只适合两种资产价格严格锚定的场景——比如同一稳定币的不同版本。
2.2 恒定积公式(Constant Product)
Uniswap用的就是这个:x * y = k。
这个公式就聪明多了。它让价格随着交易量自动调整,永远不会枯竭。
2.2.1 数学推导
还是100 USDC和100 USDT,k=10000。你想用10 USDC换USDT:
交易前:x * y = 100 * 100 = 10000
你存入10 USDC,池子x变为110
要维持等式:110 * y = 10000 → y ≈ 90.91
你得到:100 - 90.91 = 9.09 USDT
注意,这次你只换到了9.09 USDT,而不是10。为什么?因为价格变了。
交易后的价格是 y/x = 90.91/110 ≈ 0.826。也就是说,你每笔交易都在推高USDC的相对价格。你买的越多,价格越贵。
关键洞察:恒定积公式通过价格滑点来防止流动性枯竭。你永远不可能买光池子里的某种资产——因为价格会涨到让你买不起。
2.2.2 局限性分析
恒定积公式解决了枯竭问题,但带来了新麻烦——滑点太大。
我记得有一次帮朋友分析一个稳定币池,用的就是恒定积模型。池子里有100万USDC和100万USDT,k=1万亿。朋友想换50万USDC:
交易后x=150万,y=1万亿/150万≈66.67万
他得到:100万 - 66.67万 = 33.33万 USDT
滑点:(50-33.33)/50 ≈ 33.3%
换50万就要损失33%?这谁受得了。对于稳定币这种应该接近1:1兑换的资产,恒定积公式的滑点完全不可接受。
核心矛盾:恒定积公式为了安全性牺牲了效率。对于稳定币交易对,这种牺牲是致命的。
2.3 两个公式的对比
| 特性 | 恒定和公式 | 恒定积公式 |
|---|---|---|
| 公式 | x + y = k | x * y = k |
| 价格 | 恒为1 | 随交易量变化 |
| 滑点 | 无 | 随交易量增大 |
| 流动性枯竭风险 | 极高 | 无 |
| 适用场景 | 严格锚定的资产 | 任意资产对 |
2.4 我的经验总结
做稳定币池设计这些年,我踩过不少坑。曾经有个项目直接用恒定积公式做稳定币兑换,结果用户交易一次就要付3%的滑点,直接被骂到关池。后来改成Curve的混合模型,滑点降到0.1%以下,才活过来。
说白了,恒定和公式太理想化,恒定积公式又太保守。稳定币池需要的是——在价格接近1:1时像恒定和一样低滑点,在价格偏离时像恒定积一样防枯竭。这就是Curve的混合模型要解决的问题。
避坑指南:如果你要自己写AMM,千万别直接套用恒定积公式做稳定币对。我曾经试过,gas费高不说,用户体验极差。Curve的模型才是正解。
2.5 核心逻辑示意图
下面这张图展示了两个公式的核心差异。我特意用SVG画了,方便你直观理解:
左边是恒定和的直线,价格永远不变。右边是恒定积的双曲线,越靠近坐标轴价格变化越剧烈。Curve要做的就是——在中间区域(价格接近1:1时)走直线,在两端(价格偏离时)走曲线。
好了,这两个基础公式的推导和局限就聊到这儿。下一节咱们看看Curve是怎么把这两者结合起来的。