跳转到主要内容
本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
本页推导通用结合曲线数学。LaunchLab 的具体实现详见 products/launchlab/bonding-curve。推导采用连续形式;链上代码用定点算术实现离散类似物。

什么是结合曲线

结合曲线是一个确定性价格函数 p(s),将代币价格与当前流通量(s 代表”已售供应量”)关联起来。买方通过向合约发送抵押品来购买;合约以曲线指定的边际价格发行新代币单位。卖方返还代币单位并获得累积退款。 与 CPMM 池相比的两个关键属性:
  • 无需对手方。发行合约本身是做市商;流动性由规则直接产生。
  • 单调价格。每次净买入时价格上升,每次净卖出时价格下降。
当发行方不想用抵押品预先为 AMM 池注入流动性时,结合曲线是标准的启动机制。

通用定价公式

对于任何连续价格函数 p(s) 即期价格(供应量为 s):
s_0 买到 s_1 的成本s_1 > s_0):
其中 P(s) = ∫ p(s) ds 是曲线的原函数。几何上,costps_0s_1 之间的曲线下面积。 s_1 卖回到 s_0 的收益
(对称性:在相同区间上的买卖交换相同的抵押品 — 扣除费用。) 该买入的平均价格

常见曲线族

线性

价格与供应量成比例上升。用于”稳定”启动,其中发行方希望在整个生命周期内有可预测的适度加成。

二次

价格二次上升。早期买家获得接近零的价格(平坦启动区域);后期买家支付更高的溢价。这是 LaunchLab 默认的曲线类型(curve_type = 0)。

虚拟储备 CPMM(Pump 风格)

该曲线是标准 CPMM,带有假想的初始报价储备 V_q
即期价格:
s_0 移动到 s_1 的成本:
该变体有一个优雅的性质:在毕业时(s = S_graduate),边际价格等于用储备 (S_max − S_graduate, V_q + cost(0, S_graduate)) 注入的下游 CPMM 池的开盘价格。交接无缝。LaunchLab 将其公开为 curve_type = 1

离散实现

链上,scost 都是整数(最小面额单位)。每当存在闭式形式时(线性、二次),连续积分 cost(s_0, s_1) 直接从闭式计算。对于没有闭式逆函数的曲线(二次,给定 costs_1),使用牛顿迭代:
LaunchLab 将迭代次数限制在约 10 次,如果残差仍高于容差则以 NotConverged 回滚。实际上这仅在域极端触发;生产交换通常在 2-3 次迭代内收敛。

费用集成

费用应用于曲线成本之上,而不是其中。买入时:
卖出时:
费用的 LP 部分保留在 quote_vault 中,对后续买家来说有效地使曲线变陡 — 储备增长而不发行更多供应。协议和创建者部分在单独的计数器中跟踪,以供后续清扫。

毕业阈值

当曲线收到足够的抵押品以在匹配当前曲线价格的价格为外部 AMM 池提供资金时,曲线”毕业”。对于参数为 (k, S_max, S_graduate) 的二次曲线:
一旦 quote_vault ≥ quote_to_graduateGraduate 指令创建一个 CPMM 池,包含:
对于虚拟储备曲线,根据构造:
对于二次曲线,相等是近似的;“偏差”被吸收到 S_graduate 的舍入中(通常为 0.8 · S_max)和达到阈值买入的剩余抵押品中。

与 CPMM 池的无常损失对比

纯结合曲线启动在 Uniswap 意义上没有无常损失:市场上没有”另一方”来重新平衡。曲线按需发行供应,唯一的”LP”是合约本身。 毕业后,产生的 CPMM 池表现得像任何其他 CPMM 池 — 如果 LP 未被销毁,它们会承受常见的无常损失动力学。这就是为什么销毁 post-graduation 政策在公开启动中占主导:它保持池永久化并消除任何 LP 取款驱动的价格冲击。

详细示例

曲线:二次,k = 40S_max = 1e9S_graduate = 0.8 · S_max = 8e8。买入费 1%。

s = 5e8 时的价格

每基础单位 10 个报价单位。

首次买入 1e6 基础的成本

带 1% 费用:

毕业阈值

毕业时的价格

毕业后的 CPMM 储备

(单位:小数需要仔细跟踪;该示例仅为说明用。)

相关链接

来源:
  • Raydium LaunchLab 程序源代码(二次和虚拟储备曲线实现)。
  • Bancor 白皮书(线性结合曲线,历史文献)。
  • Pump.fun 公开事后分析(虚拟储备变体)。