Solana 联合曲线 (Bonding Curves):交易指南
Learn how bonding curves work on Solana, graduation mechanics, trading strategies, and token launches. Complete guide to pump.fun and curve trading.
数据说明:协议状态、审计覆盖范围、费用、收益、TVL、代币参数和界面功能随时间而变化。请将过往数据视为历史快照,并在与协议交互前验证当前的原始资料文档。
联合曲线是某些 Solana 代币发行应用使用的一种机制,用于根据库存或供应的变化来确定价格。无论您是想更智能地交易联合曲线代币,还是想在没有前期流动性的情况下发行自己的代币,亦或是想从头开始构建联合曲线程序,本指南都会先用通俗易懂的语言讲解该机制的每一层,然后再深入探讨开发人员和创始人需要的技术细节。
Solana 上的联合曲线已成为模因币 (meme coin) 发行和效用代币项目的首选基础设施,这主要是通过处理了数百万次代币发行的 pump.fun 实现的。Solana 的区块生产和费用设计可以支持频繁交易,但确认、最终性、优先费和应用程序处理情况各不相同,不应简化为固定的时间或美元金额。
本指南内容
- 什么是 Solana 联合曲线?
- 联合曲线运作机制详解
- 联合曲线与 AMM 和流动性池:关键区别
- Solana 上的联合曲线实现方式
- Solana 上的联合曲线毕业机制
- Solana 联合曲线代币的交易风险
- 如何在 Solana 上通过联合曲线发行代币
- 在 Solana 上构建联合曲线:技术实现
- Solana 联合曲线:常见问题解答
- 结论:联合曲线作为 Solana 代币发行基础设施
什么是 Solana 联合曲线?
Solana 上的联合曲线是一种在 Solana 程序(相当于 Solana 原生的智能合约)中编码的定价机制,它根据已售出的代币数量,通过算法设定代币的价格。
联合曲线: 写入 Solana 程序的定价规则,将币价确定为供应量的直接数学函数。随着购买的代币增多,价格会自动上涨。随着代币被卖回,价格会下跌。不需要外部定价者或流动性提供者。
关键特性在于:价格不是由买家和卖家协商确定的,而是由程序在每笔交易发生的瞬间计算出来的。每位买家都支付曲线在当前供应水平下规定的价格,每位卖家也收到曲线在那个瞬间规定的价格。
一个 联合曲线代币 是指其价格受联合曲线程序管辖,而非受传统去中心化交易所 (DEX) 流动性池管辖的任何 SPL 代币。代币供应量在发行时并不固定。相反,当买家充值 SOL 时会创建代币,当卖家将代币退还给程序时会销毁代币。
联合曲线是一个 DeFi 原语,是去中心化金融基础设施的基石,消除了对订单簿、做市商或预设流动性池的需求。pump.fun 是 Solana 上最著名的实际应用,但它不是唯一的。Moonshot(由 DEX Screener 推出)和其它几个 Solana 原生发行平台也使用了该机制。本指南涵盖了交易者、代币创作者和想要了解链上实际发生情况的开发人员所需的机制。
联合曲线运作机制详解
联合曲线通过编码数学规则来运作:随着从固定供应上限中售出的代币越来越多,每个代币的价格会自动上涨。Solana 程序在每笔交易中强制执行此规则,程序一旦部署,任何人均无法干预。
供应与价格的关系
联合曲线定义了已售代币总量与代币单价之间的确定性关系。可以把它想象成一个楼梯,每一级台阶的成本都比前一级更高。购买一个代币会使下一个买家的价格提高一级。卖出一个代币则会使其降低一级。
程序持有一个 SOL 储备金。随着人们购买,该储备金会增加;随着人们卖出,储备金会减少。储备金与代币供应量之间的比例决定了当前的价格。如果已售出 1000 万个代币且储备金持有 5 SOL,则隐含币价为每个代币 0.0000005 SOL。当售出 2000 万个代币且储备金持有 15 SOL 时,币价为每个代币 0.00000075 SOL。价格上涨并非源于任何外部市场决策,而是因为公式要求如此。
这一特性被称为算法价格发现。该曲线消除了买卖双方协商价格或代币创作者寻找流动性的需求。每位买家都支付当前的曲线价格,且该价格是完全透明且在链上的。
铸造、库存与赎回模型
代币铸造(创建)和销毁(破坏)是在 Solana 联合曲线程序内部执行的两个机械动作。这里的铸造是指由程序控制的 SPL 代币创建,而不是 NFT 铸造。
购买时: 您向联合曲线程序充值 SOL。程序计算出以当前曲线价格应发行的代币数量。新代币被铸造并发送到您的钱包。您充值的 SOL 进入程序的储备金中。下一个买家的价格上涨。
卖出时: 您将代币发回联合曲线程序。程序会销毁这些代币(发送到空地址,将其永久从供应中移除,而非作为费用机制)。程序按当前的曲线价格从其储备金中将 SOL 退还至您的钱包。下一个买家的价格下跌。
铸造权限: 创建新代币的许可。在联合曲线上,铸造权限由程序的程序派生地址 (PDA) 持有,而不是由代币创作者持有。这意味着创作者无法在曲线规则之外铸造额外的代币。这种结构性设计是防范基于供应的欺诈的主要保护措施。
在联合曲线上,供应量随每笔交易而变化。在有人购买之前,代币并不存在。这与标准的 DEX 交易有着本质的不同,在后者中,您是从已经持有固定供应量的资金池中将一种代币兑换为另一种代币。
曲线形状如何影响价格行为
并非所有的联合曲线都会产生相同的价格轨迹。曲线的形状是代币经济学的一个设计决策,它决定了财富在早期和晚期买家之间的分配方式。
表格:按价格行为和使用案例对比的联合曲线类型
| 曲线类型 | 价格行为 | 早期买家优势 | Solana 平台示例 |
|---|---|---|---|
| 线性 | 价格随每枚代币的售出而恒定增长 | 中等;收益可预测 | 较少见;某些治理代币 |
| 指数(恒定乘积) | 起初价格增长缓慢,随后在接近供应上限时加速 | 高;早期买家的成本远低于后期买家 | pump.fun(虚拟恒定乘积模型) |
| S 型(S 曲线) | 起步慢,中间快,接近上限时趋于平缓 | 平衡;中等的早期优势 | 某些治理和效用代币模型 |
虚拟储备: 初始化时内置在联合曲线程序中的预置 SOL 和代币数量。它们在不需要任何人在上线时充值真实流动性的情况下,设定了一个非零的起始价格。pump.fun 的 virtual_tokens 预置量约为 1,073,000,000,virtual_SOL 预置量约为 30。
恒定乘积公式(由以太坊上的 Uniswap 普及)是指数变体的数学基础。pump.fun 的实现通过虚拟储备而非要求双向真实流动性对此进行了修改,从而产生了经验丰富的交易者所熟知的、在“毕业”前夕特有的价格加速现象。
公式:恒定乘积基础
x * y = k- x = 联合曲线程序中的代币储备(剩余未售出的代币)
- y = SOL 储备(真实 + 虚拟)
- k = 恒定乘积不变值(不随交易改变)
通俗地说:随着代币被购买,x 减少而 y 增加。由于 k 必须保持恒定,每枚代币的价格就会上涨。任何时刻的价格都是 y / x。
使用 pump.fun 参数的计算示例: 设定 virtual_tokens = 1,073,000,000 且 virtual_SOL = 30,初始价格约为 30 / 1,073,000,000 ≈ 0.000000028 SOL/代币。随着买家购买代币,有效代币储备缩减,隐含价格随之上涨。
联合曲线 vs. AMM 和流动性池:核心区别
联合曲线是一种特殊类型的自动化做市商 (AMM),但它在结构上与标准的 AMM 流动性池有一个不同之处:它不需要外部流动性提供者。
AMM 作为父类目
自动化做市商 (AMM) 是指任何通过算法而非订单簿为资产定价的系统。联合曲线和标准的 DEX 池都是 AMM。区别在于它们如何获取流动性,以及它们服务于代币生命周期的哪个阶段。
Solana 上的标准 AMM,包括 Raydium DEX 和 Orca,通过外部流动性提供者 (LP) 向池中充值双向资产对来运行。资金池的资产比例决定价格。联合曲线则完全取代了这一机制:协议程序本身是唯一的交易对手,流动性是通过铸造和销毁算法生成的,而不是由人工充值的。
Solana 的联合曲线与基于以太坊的实现在实践中也有所不同。Solana 的低交易费和极快的区块确认速度,允许交易者在短时间内多次买卖联合曲线代币,而不会产生在其他链上会导致此类行为经济上不合理的费用成本。
Solana 程序: Solana 原生术语,对应以太坊的智能合约。Solana 程序是无状态逻辑,在独立的链上账户上运行。联合曲线逻辑存在于程序中;储备状态存在于由该程序控制的程序衍生地址 (PDA) 账户中。
程序衍生地址 (PDA): 一种 Solana 账户,其地址由程序 ID 和种子 (seed) 派生,允许程序在不持有私钥的情况下控制该账户。联合曲线程序使用 PDA 来持有 SOL 储备和代币铸造权限。
联合曲线 vs. 传统流动性池:对比
表:联合曲线 vs. 传统 DEX 流动性池,Solana 代币交易者和创建者的核心区别
| 特性 | 联合曲线 | 标准 AMM / DEX 流动性池 |
|---|---|---|
| 流动性来源 | 协议拥有的;算法生成 | 外部 LP 充值资产对的双方 |
| 价格公式 | 编码在程序中;随每次购买上涨 | 池中资产的比例 (x * y = k) |
| 交易对手 | 联合曲线程序本身 | 流动性池(LP 提供者集体) |
| 代币铸造 | 每次买入时铸造新币;卖出时销毁 | 固定供应量;无铸造或销毁 |
| 设计用途 | 早期价格发现;无需预置流动性 | 具有现有流动性的成熟代币 |
| 跑路风险概况 | 结构上防止直接卷走流动性(锁定 LP,PDA 铸造权限);可能存在软跑路 | 如果 LP 可撤回,则可能发生直接跑路 |
DEX 流动性池: 锁定在链上 AMM 程序中以支持交易的代币池。在本文中,所有提到的流动性池均指 AMM 类型的 DEX 池(如 Raydium CPMM),而非借贷协议池。
交易者的实际心得:联合曲线上的价格影响取决于你所处曲线的位置和订单大小,而不是资金池深度。无常损失(LP 提供者在标准池中面临的风险)在联合曲线上并不适用,因为这里没有 LP 提供者。联合曲线服务于代币生命周期的启动阶段。标准 AMM 则在“毕业”后接管。
Solana 上的联合曲线实现
所提供的草案使用 pump.fun 作为 2025 年初的时间节点案例研究,因为它拥有大量的 Solana 发行活动并使用了虚拟恒定乘积模型。平台机制和市场地位可能会发生变化,因此请核实当前的实现,而不要将此快照视为永久不变的。
pump.fun 作为特定时期的平台案例研究
pump.fun 代币 Launchpad 是 Solana 上的一个无需许可的代币 Launchpad,它使用联合曲线在不需要预置流动性的情况下启动价格发现。任何钱包都可以在一分钟内部署代币。联合曲线程序自动处理所有定价和流动性。
pump.fun 使用经过修改的恒定乘积曲线,在初始化时预置虚拟储备以设定非零起始价格。任何时间点的当前价格为:
价格 = virtual_sol_reserves / virtual_token_reserves- virtual_sol_reserves: SOL 侧跟踪变量(起始约为 30 SOL 等值)
- virtual_token_reserves: 代币侧跟踪变量(起始约为 1,073,000,000)
分配给联合曲线的代币供应量约为 10 亿总供应量中的 8 亿枚。剩下的 2 亿枚预留给毕业后的流动性池。(请查阅 pump.fun 文档验证当前参数,因为这些数值可能会变动。)
pump.fun 买入交易如何执行:
- 您从钱包发送 SOL 到联合曲线程序。
- 程序根据当前曲线价格计算要铸造的代币数量。
- 程序将新的 SPL 代币铸造到您的钱包。
- 您充值的 SOL 被添加到真实 SOL 储备中。
- 曲线价格为下一位买家上涨。
pump.fun 卖出交易如何执行:
- 您将代币发回联合曲线程序。
- 程序根据当前曲线价格计算要退还的 SOL。
- 程序销毁退回的代币,将其永久从供应量中移除。
- 程序将 SOL 从储备金转移到您的钱包。
- 曲线价格为下一位买家下跌。
pump.fun 对每笔买卖交易收取约 1% 的费用。联合曲线程序在部署后是不可更改的。
Raydium 和毕业后的 AMM
Raydium 本身不是一种联合曲线发行机制。它是一个使用流动性池设计的 Solana 原生 DEX。较早的 pump.fun 流程会将完成的曲线迁移到 Raydium,而较晚的实现可能会使用 PumpSwap 或其他场所。必须根据特定平台和上线日期核实目的地和迁移规则。
Meteora 是一个独立的 Solana 原生 DeFi 协议,专注于流动性基础设施。其动态做市商 (DLMM) 池应用类联合曲线逻辑,将流动性集中在当前价格附近,作为一个上线后的流动性管理工具而非代币 Launchpad。
Solana 上的其他联合曲线实现
过往资料显示,pump.fun、DEX Screener 的 Moonshot 和 Believe App (LaunchCoin) 都是使用联合曲线机制变体的示例。门槛、费用、储备金处理和目标场所因平台和版本而异。
Solana 上的联合曲线毕业:平台特定机制
“毕业”是指由平台定义的从发行曲线向不同交易或流动性机制的过渡。触发条件、储备金计算、代币分配、目标场所、费用和 LP 控制权可能会因平台和合约版本而异。
毕业门槛必须核实
较旧的来源草案引用了某个 pump.fun 实现中约 85 SOL 的门槛和 8 亿/2 亿代币的分配比例。这些数字是历史示例,并非通用或当前的规则。请核实实时程序文档和链上状态;美元市值估值不能替代实际的程序条件。
5 步毕业序列
流动性迁移可能会将已完成曲线中的储备金转移到 DEX 池。迁移是否自动、哪个场所接收流动性、谁控制由此产生的 LP 仓位以及流动性随后是否可以提取,这些都是必须核实的合约特定事实。
- 触发条件达成: 程序评估其配置的储备金、供应量或销售条件。
- 启动过渡: 根据合约的不同,这可能是自动的,也可能需要单独的交易。
- 分配储备金: 程序可能会使用平台定义的代币和 SOL 分配来创建或资助 DEX 池。
- 建立流动性控制: LP 代币可能会被销毁、锁定、保留或根据其他规则进行管理。请在链上核实这一点。
- 曲线后交易开始: 在曲线关闭或禁用的情况下,代币可以通过 PumpSwap、Raydium 或其他配置的场所进行交易。
毕业对交易者和创作者意味着什么
对于交易者而言,定价机制在毕业时从联合曲线(铸造/销毁,确定的曲线价格)切换到 Raydium CPMM(池比例,市场驱动)。价格在毕业时可能会因需求而向上或向下跳空。在联合曲线阶段早期购买的交易者通常会在毕业时或毕业后不久止盈,这可能会与在 Raydium 上发现该代币的新买家浪潮同时产生抛售压力。
对于代币创作者而言,毕业改变了代币的交易方式,但并不完全证明流动性已永久锁定,也不代表消除了管理员控制。请针对特定发行检查铸造权限、冻结权限、升级权限、LP 所有权和锁定合约。
Solana 联合曲线代币的交易风险
在 Solana 上交易联合曲线代币具有不同于标准 AMM 交易的独特机制,了解这些机制决定了您的入场时机和风险敞口。
联合曲线上的滑点和价格影响
联合曲线上的滑点是指您发起交易时预期支付的价格与执行交易时实际支付的价格之间的差额。价格影响是由您的交易本身引起的市价变动,因为购买代币会使您沿曲线上升。
在像 Raydium 这样的标准 AMM 上,滑点取决于资金池深度。深度池可以吸收大额交易,且价格变动极小。在联合曲线上,滑点的工作方式不同:它完全是确定性的,取決于两个因素:您在曲线上的位置以及您的订单相对于剩余容量的大小。
价格影响在曲线末端会加速。想象一下购买飞机座位:首批出售的座位非常便宜,而最后几个座位的价格要贵得多。在曲线已成交 20% 时购买价值 1 SOL 的代币,每个代币的成本远低于在曲线已成交 90% 时购买价值 1 SOL 的代币。在 90% 的情境下,每个代币都比前一个更贵,因此您的平均执行价格会急剧攀升。恒定乘积公式使得每增加购买一个代币,其价格都会以加速的速率高于前一个。Solana 联合曲线交易中存在来自 MEV 机器人的夹心攻击风险,尽管 Solana 的交易架构使得某些 MEV 模式比在其他链上更难执行。
联合曲线特有的跑路风险
风险警告
联合曲线代币具有高度投机性。大多数 pump.fun 代币无法达到毕业。您可能会损失全部投资。创作者可能会抛售代币,且可能在没有任何警告的情况下发生。以下风险适用于所有联合曲线代币,无论平台如何。
联合曲线减少了某些欺诈载体,但并未消除所有跑路风险。
流动性移除风险: 没有外部 LP 的曲线可以限制毕业前的一种流动性提取形式,但它并不能消除合约、管理员、铸造、冻结、迁移或毕业后的 LP 风险。请在链上确认权限和 LP 代币处置情况。
软跑路(仍有可能): 创作者可以在联合曲线阶段早期以最便宜的价格预先购买大量代币分配。当其他买家推高价格时,创作者将该分配卖回给曲线,套取 SOL 并导致之后购买的所有人的价格崩盘。联合曲线程序无法阻止这种情况,因为这是一笔合法的出售交易。
捆绑购买和协调抛售: 一组钱包可以协作同时购买,迅速提高曲线填充百分比以营造势头假象,然后协调抛售。
被遗弃: 创作者停止推广项目。虽然没有发生抛售,但社区失去了兴趣,代币在曲线上无限期停滞。
购买前请留意这些红旗(风险信号):
- 单个钱包持有超过售出供应量的 10%(在 Solscan 上检查)
- 在没有可见社区的情况下,曲线在不到一小时内填充超过 50%
- 没有活跃的社交媒体存在,且在上线前开发者钱包没有链上活动
- 开发者钱包是匿名的,且没有先前的链上记录(在 Birdeye 上检查)
观察曲线:把握入场和离场时机
曲线填充百分比可以告诉您代币处于其生命周期的哪个阶段。早期入场(低填充百分比)意味着您支付的代币单价较低,并能从后续买家创造的价格升值中获益。权衡之下是更高的不确定性:大多数代币会停滞不前,永远无法毕业。
风险警告
早期购买的交易者支付的价格较低,但大多数 pump.fun 代币不会毕业。在接近毕业时(高填充百分比)购买会降低曲线本身带来的潜在价格升值,并增加每笔交易的价格影响。毕业事件并不保证价格上涨。过去的毕业模式不能预测未来的价格行为。
晚期入场(高填充百分比)使您更接近毕业催化剂。一些交易者关注接近毕业门槛的代币,预期毕业到 Raydium 将吸引来自 DEX 聚合器的新一波买家。这反映的是一种机械动态,而非交易建议。
如何在 Solana 上使用联合曲线发行代币
在 Solana 上使用联合曲线发行代币不需要创作者预付流动性。联合曲线程序本身从第一笔交易开始就担任做市商。
为什么联合曲线能实现公平的代币发行
在联合曲线语境下,公平启动意味着:没有预售,没有面向风投机构的折扣价分配,也没有内部人士定价。包括创建者在内的每一位买家,都按照购买时的算法确定的市价支付费用。价格由不可更改的链上规则设定,而非项目团队设定。
与传统的 IDO 不同(IDO 要求项目在公开交易开始前设定固定价格并预先筹集流动性),Solana 上的联合曲线启动不需要创建者提供初始资金,价格由实际的买家需求产生。早期买家支付的价格较低,但这种折扣在链上是可见的,并且对于处于该曲线仓位的每一位买家都是一致的。
“公平”并不意味着“无风险”。联合曲线启动中的不对称性是刻意为之的:早期买家承担更高的不确定性(代币可能永远无法毕业),而后期买家虽然支付更高的价格,但买入的是已展现出社区牵引力的代币。更陡峭的曲线(如 pump.fun 使用的恒定乘积模型)会激进地奖励早期买家,并为毕业创造更强的动力。较平缓的曲线则在整个买家范围内更均匀地分配价值。
分步指南:在 pump.fun 上启动
- 将 Solana 钱包(Phantom 或类似钱包)连接到 pump.fun 平台。
- 填写代币元数据: 名称、代币代码、图片、描述、社交链接以及任何其他必填字段。
- 可选:在创建时进行开发者自购 (dev buy) 以引导早期动力。这种初始购买在链上是可见的。大额的开发者自购对资深交易者来说是一个警示信号;如果您进行了自购,请向社区披露。
- 在相关社区分享您的代币链接。 联合曲线需要持续的买入才能达到毕业要求;如果没有社区关注,代币就会停滞不前。
- 毕业遵循平台的现行规则。 在依赖旧版攻略之前,请先验证实时的阈值、所需的交易、目标场所以及流动性控制措施。
pump.fun 会收取创建费(启动前请在平台上核实当前费用)。代币上线后,联合曲线参数即不可更改。
联合曲线代币启动的平台选择
对于评估在哪里启动的创建者来说,选择取决于您社区的特征以及您对毕业目标的偏好。
表:Solana 上的联合曲线启动平台
| 平台 | 联合曲线模型 | 毕业去向 | 数据差异 |
|---|---|---|---|
| pump.fun | 虚拟恒定乘积 | 历史上为 Raydium CPMM;后续流程可能使用 PumpSwap | 来源期间启动活动频繁 |
| Moonshot (DEX Screener) | 具有固定供应上限的联合曲线 | 验证当前去向 | 不同的费用和分配设计 |
| Believe App (LaunchCoin) | 联合曲线变体 | 各异 | 由社区驱动的启动,具有不同的阈值设置 |
Meteora 为希望使用托管 DLMM 池而非锁定 CPMM 池的项目提供了一种毕业后的替代流动性基础设施,尽管它本身不是启动平台。
代币创建者的早期与晚期投资者动态
以最低曲线仓位买入的早期社区成员将从后续每一位推高价格的买家中受益。如果启动停滞在较低的填充百分比,早期买家将持有无退出流动性的未实现仓位,并被迫亏损卖回曲线,从而进一步压低价格。在联合曲线启动中,社区动力不是可选项,而是毕业的机械要求。
如果您的开发者自购量较大(超过联合曲线供应量的 5%),请予以披露。链上工具会显示所有钱包活动,未披露的大额开发者自购会被 Solana 交易社区视为警示信号。
在 Solana 上构建联合曲线:技术实现
本节内容专为构建或审计联合曲线(bonding curve)程序的 Solana 开发者编写。如果您是交易者或代币创建者,请跳至下方的常见问题解答 (FAQ) 部分。
您可以使用 Anchor 框架在 Solana 上构建联合曲线,该框架提供了实现生产级联合曲线程序所需的账户模型、指令处理程序和 PDA 模式。
pump.fun 联合曲线公式
pump.fun 使用的是虚拟恒定乘积模型,而非需要真实双边流动性的标准 CPMM。在程序初始化时,会植入两个虚拟储备值:
价格 = 虚拟 SOL 储备 / 虚拟代币储备- virtual_sol_reserves(虚拟 SOL 储备): 追踪恒定乘积不变量的 SOL 端(初始化为约 30 SOL 等值)
- virtual_token_reserves(虚拟代币储备): 追踪该不变量的代币端(初始化为约 1,073,000,000)
- k = 虚拟 SOL 储备 * 虚拟代币储备(保持恒定的不变量)
当用户购买代币时,存入的真实 SOL 会被添加到储备追踪中,应用不变量公式计算应铸造的代币数量,并更新虚拟储备以反映新状态。“虚拟”方法意味着该曲线的表现类似于 CPMM,但不需要引导真实的双边流动性。
计算示例: 初始化时,价格 = 30 / 1,073,000,000 ≈ 0.000000028 SOL/代币。在买家购买了 100,000,000 个代币后(将虚拟代币储备减少至 973,000,000),不变量 k = 30 * 1,073,000,000 = 32,190,000,000 要求虚拟 SOL 储备为 32,190,000,000 / 973,000,000 ≈ 33.08 SOL。现在的价格为 33.08 / 973,000,000 ≈ 0.000000034 SOL/代币。(在投入生产环境使用前,请根据当前的 pump.fun 程序代码验证这些参数。)
基于 Anchor 的 Solana 程序架构
Anchor 框架文档 提供了用于构建 Solana 程序的 Rust DSL(领域特定语言),具备符合人体工程学的账户验证、指令路由和错误处理功能。
使用 Anchor 构建的联合曲线程序需要四个核心组件:
- 状态账户(State account): 存储曲线的持久状态。建模为 Anchor
Account结构并保存在 PDA 中。 - 买入指令(Buy instruction): 验证输入的 SOL,使用曲线公式计算要铸造的代币,通过 PDA 权限向买家铸造 SPL 代币,并更新储备状态。
- 卖出指令(Sell instruction): 验证代币输入,计算要退还的 SOL,通过跨程序调用 (CPI) 调用 SPL 代币程序销毁 SPL 代币,并将 SOL 从储备 PDA 转移给卖家。
- 毕业指令(Graduate instruction): 检查毕业阈值,使用累积的 SOL 创建 Raydium 池,将剩余的代币供应转移到池中,销毁收到的 LP 代币,并将曲线标记为已完成。
Anchor 账户结构(伪代码):
#[account]
pub struct BondingCurve {
pub virtual_sol_reserves: u64,
pub virtual_token_reserves: u64,
pub real_sol_reserves: u64,
pub total_tokens_minted: u64,
pub is_graduated: bool,
pub authority: Pubkey,
pub token_mint: Pubkey,
pub bump: u8,
}PDA 在整个过程中至关重要。程序必须在不持有私钥的情况下控制代币铸造权限和 SOL 储备。跨程序调用 (CPI) 是 Solana 的一种机制,您的联合曲线程序通过该机制调用 SPL 代币程序来执行铸造和销毁指令。Anchor 抽象了 CPI 设置,但为了安全性,CPI 调用顺序至关重要(下文将详细说明)。
联合曲线程序中的安全漏洞
以下漏洞是 Solana 联合曲线程序特有的。在主网部署之前,每个漏洞都需要深思熟虑的缓解措施。
整数溢出与下溢: 价格计算算术涉及较大的 u64 值。请在全文使用 Rust 的
checked_mul和checked_div。未检查的算术在 Rust 调试模式下会发生 panic,但在较旧版本的 Anchor 发布模式下可能会静默溢出。PDA 签名者种子验证: 如果 PDA 种子推导不正确,或者程序未能验证正确的 PDA 已签署指令,攻击者就可以替换恶意账户并耗尽 SOL 储备金。
缺失毕业守卫: 每条买入和卖出指令都必须检查
is_graduated。如果一个代币已毕业但程序仍接受买入和卖出,就会造成流动性分裂的情况,买家在针对一个本应已关闭的曲线上铸造代币。CPI 调用顺序: Solana 的账户模型对 EVM 式重入攻击的脆弱性较低,但 CPI 调用必须谨慎排序。错误的排序可能导致程序在指令失败时处于不一致的状态。
预言机依赖风险: 如果您的毕业阈值以美元表示并需要价格预言机,那么预言机馈送就构成了一个攻击面。能够操纵预言机的攻击者可以触发过早毕业或无限期延迟。
风险警告
债券曲线 Solana 程序控制着真实用户资金。请部署到测试网并在主网启动前进行全面的安全审计。您可以在 GitHub 上搜索“bonding curve Solana Anchor”找到开源参考资料和社区审查的实现。请勿将未经审计的债券曲线程序部署到主网。
免责声明
本文仅供参考和教育目的,不构成财务、投资或交易建议。债券曲线代币是高度投机的工具,存在完全损失的重大风险。在做出任何投资决策之前,请自行进行尽职调查并咨询合格的财务顾问。本出版物与 pump.fun、Raydium、Meteora、Anchor 框架或本文中提到的任何其他平台均无关联。
Solana 上的债券曲线:常见问题解答
以下问题涵盖了关于 Solana 债券曲线最常见的困惑点。应在此部分实现 FAQ schema 标记(JSON-LD FAQPage),以最大限度地提高“人们也问”的曝光度。
什么是加密货币中的债券曲线?
加密货币中的债券曲线是一种数学定价机制,其中代币的价格根据已售代币的数量通过算法确定。随着更多代币被购买,价格自动上涨;随着代币被卖回,价格下跌。在 Solana 上,债券曲线作为 Solana 程序实现,在每次买入时铸造新代币,并在每次卖出时销毁代币,程序本身充当唯一的交易对手。
源文所述的过时实现使用了恒定乘积式曲线中的虚拟准备金。买入会更新准备金状态并提高曲线价格;卖出则会反向更新。必须从实时实现中验证当前的准备金值、供应处理、费用和毕业条件。
Solana 上的债券曲线完成时会发生什么,取决于启动程序。一个平台可能创建一个 PumpSwap、Raydium 或其他池;它可能需要一个单独的迁移交易;LP 代币可能会被销毁、锁定或根据其他规则进行管理。请验证实时合约和链上权限,而不是假设过渡是自动的或不可逆的。
债券曲线在买家充值 SOL 时按需创建代币,在卖家归还代币时销毁代币;程序本身是交易对手,不需要外部流动性提供者。DEX 流动性池持有由外部 LP 充值的固定数量的两种代币,价格由池中这两种代币的比例决定。债券曲线服务于代币具有成熟社区之前的早期阶段;流动性池则服务于已度过该阶段的代币。
在债券曲线阶段早期购买的交易者支付的代币价格较低。如果后续买家将价格推高,早期买家就可以将代币卖回给曲线以获利。越早进入,支付的价格越低,以及后续买家带来的潜在价格升值空间就越大。然而,大多数 pump.fun 代币未达到毕业条件,大多数早期买家持有的代币从未升值,如果项目停滞,他们会亏本卖回。没有任何机制能保证利润。
债券曲线机制本身是一种合法、数学上合理的定价系统。该技术并非骗局。在债券曲线发行的个别代币可能是骗局,例如当创建者以低廉的价格预先购买大量配额并将其卖出以提高价格(软性跑路),或者当项目启动时没有真正意图。该机制是中立的;风险来自特定代币及其创建者的行为。请将每个债券曲线代币视为高度投机。
债券曲线毕业是平台定义的从曲线定价过渡到后期交易或流动性机制的过程。触发器、准备金分配、目标场所、LP 代币处理和管理员控件因平台和版本而异,因此当前合约文档和链上状态具有权威性。
在债券曲线中,滑点取决于您在曲线上的位置以及订单的大小。每购买一个代币都会使价格略微上涨,因此大订单的执行平均价格会高于交易的起始价格。在恒定乘积公式下,接近曲线末端时价格影响会加速,因为每个额外代币的价格都会越来越贵。在标准的 AMM 上,滑点取决于池的深度;在债券曲线上,它取决于曲线位置和订单大小。
是的。您可以使用 Rust 编写的 Anchor 框架在 Solana 上构建自定义债券曲线。生产级实现需要一个存储准备金值的状态账户,一个通过 PDA 权限铸造 SPL 代币的买入指令,一个通过 CPI 销毁代币的卖出指令,以及一个创建毕业后DEX池的毕业指令。部署前,程序需要进行全面的安全审计。可以在 GitHub 上搜索开源参考实现。
最常见的公式是恒定乘积:x * y = k,其中 x 是代币准备金,y 是 SOL 准备金,k 是一个常数。随着代币被购买,x 减少,y 增加,从而提高有效价格。pump.fun 通过使用初始化时预先设定的虚拟准备金而非真实双边流动性来修改此公式,从而允许非零起始价格,而无需任何人充值初始流动性。pump.fun 上任何时刻的价格等于虚拟 SOL 准备金除以虚拟代币准备金。
探索Bybit上的 SOL
读者可以参考当前的 SOL 市场信息) 或SOL/USDT 现货市场.)。这些链接涉及 SOL,而不是新发行的债券曲线代币。
结论:债券曲线作为 Solana 的代币发行基础设施
债券曲线是用于 Solana 上无需许可代币发行的基础设施形式之一,它结合了算法定价与平台定义的分配和流动性转换规则。
主要收获
对于交易者: 结合曲线以算法方式为代币定价,而非通过订单簿或流动性池。价格影响在曲线末端加速。大多数代币无法毕业。您可能会损失全部投资。
对于代币创建者: 一些结合曲线启动项目减少了前期流动性要求,但毕业条件和 LP 控制是特定于平台的。在链上验证发行、冻结、升级、迁移和流动性权限。
对于所有用户: 该来源使用 pump.fun 作为 2025 年初的案例研究,并提及 Moonshot 和 Believe App 作为替代方案。当前市场仓位、机制和迁移目的地必须重新检查。
对于开发者: 使用 Rust 中的 Anchor 框架实现结合曲线。关键安全要求包括已检查的算术运算、PDA 签名者验证、所有买入/卖出指令上的毕业守卫,以及在主网部署前进行正式审计。
展望: 结合曲线模型将在 Solana 上继续发展,pump.fun 将推出 PumpSwap 作为其毕业后的DEX,Meteora 为毕业代币提供高级流动性管理。核心机制,即与供应挂钩的算法定价,仍然是 Solana 无许可代币经济的基础。