返回博客conditional-tokens

YES 和 NO 代币从何而来:拆分、合并与赎回

追踪抵押品如何变成 YES 和 NO,在结果确定前合并完整配对,并计算赎回支付,同时了解 Kuest 运营方需要核对的事项。

绿色与红色的两个互补代币半片,组合成一个完整的圆形集合。

YES 和 NO 代币最初是由一套完整抵押品支持的两项权利。 拆分创建这些权利,合并将其重新组合,赎回则按照记录的结果支付。从其他交易者手中购买代币,是另一种操作。

《Polymarket 与 Kuest 运作原理》第三篇,追踪界面、交易系统与合约之下的资产。如果你仍觉得支付金额与价格可以互换,请先阅读预测市场价格的含义。

先看抵押品,而不是价格

沿用我们的假设问题:“A 观测站是否会公布,B 城在日期 C 的 12:00 UTC 气温至少为 30.0°C?”假定已明确数据来源、舍入、备用处理和取消规则。我们用一个标准的二元 Conditional Tokens Framework(CTF)条件建模,YES 排在前面,NO 排在后面。

抵押品 是投入以支持仓位的资产。在这个例子中,一份获胜代币支付一单位抵押品;一单位并不自动等于一美元。即使界面显示美元符号,稳定币仍有发行方、转账和价值风险。

以下余额均不计手续费、Gas 和融资成本,只使用同一个条件、同一种抵押资产,且没有父仓位。这些假设让我们能够逐一核对每个单位,而不把另一市场的资产混入计算。

CTF 通常使用 ERC-20 代币作为抵押品,以 ERC-1155 余额表示结果。ERC-1155 让一个合约能记录多个代币 ID:气温问题的 YES 余额与选举问题的 YES 余额是不同资产,即使两者显示同一个代号。

完整集合有精确的身份

准备条件会登记预言机、问题标识符和结果数量,但不会存入抵押品,也不会创建任何人的结果余额。在所检查的 Kuest CTF 代码中,准备条件与拆分是两个独立函数。

在 CTF 中,条件 ID 为 keccak256(abi.encodePacked(oracle, questionId, outcomeSlotCount))。预言机地址是这一身份的一部分:相同的问题标识符配上不同的预言机,会生成不同的条件。

集合标识一组结果,并包含可能存在的父集合。抵押品地址与集合 ID 再共同标识仓位。集合的派生有自己的算法;应使用合约的 getCollectionId 辅助函数,不要自行对标签做哈希。CTF 开发者指南解释了这种构造。

预言机、问题和结果数量标识条件;父集合与结果集合选择具体集合;抵押品进一步确定各仓位。

这是一张构造关系图,不是集合哈希公式。不同的抵押品或集合路径会产生不同的 仓位。

在二元示例中,分区为 [1, 2]:两个位掩码分别选择首个和第二个结果槽位,合起来覆盖全部结果且互不重叠。父集合为 32 个零字节,表示本次拆分从抵押品开始,而不是从已附带条件的父仓位开始。

因此,仅有相同标题不足以合并。应检查网络、代币合约、条件、抵押品和集合路径。Polymarket 的 YES 与 Kuest 的 NO 不会因为问题相似,就变成同一账本上的完整集合。

拆分:锁定 100,每种结果各获得 100

从 100 单位抵押品开始。成功拆分会将其转入 CTF 合约,并向调用者铸造 100 YES 和 100 NO。拆分实现验证分区,并在同一笔交易中完成这些资产变动;失败则回滚操作。

锁定 100 抵押品,创建带绿色勾选标记的 100 YES 和带红色切角的 100 NO,组成 100 个完整配对。

一对对应一单位抵押品。拆分会同时创建两种结果余额,不需要先选择预测方向。

钱包现在有 200 份结果代币,但只有 100 个完整配对。每对 YES–NO 由一单位抵押品支持。在通常的 YES 结果下,YES 支付一单位,NO 支付零;通常的 NO 结果则相反。拆分创造的是库存,而不是让财富翻倍。

同时持有两边也不表达方向性预测。做市商可能通过拆分获取两侧可供报价的库存。随后卖出部分 YES 会改变风险,因为钱包仍持有对应的 NO;拆分本身没有提供买家,也没有锁定交易收入。

普通购买则可以在账户间转移已有代币。如果另一交易者把现有的 10 YES 卖给你,其 YES 余额减少,你的余额增加;这次转移不必新铸造 YES 或 NO。库存来自哪里,与为其支付什么价格,是不同问题。

合并:销毁 40 对,释放 40 抵押品

结果确定前,可以合并数量相等且相互匹配的结果。从 100 YES 和 100 NO 中合并 40 对:合约分别销毁 40,返回 40 抵押品。你仍有 60 YES、60 NO 和 40 可用抵押品。

从 100 YES 和 100 NO 中分别销毁 40,返回 40 抵押品;剩余 60 YES 和 60 NO 由 60 抵押品支持。

销毁匹配的配对,会释放其对应抵押品。剩余结果余额既不会被销毁,也不会被支付。

这张账表只追踪我们的钱包,以及归属于其完整集合的抵押支持,并非合约的全部余额。仍不计手续费、Gas 和融资成本。

钱包余额按抵押品 / YES / NO列出。

阶段

钱包余额

抵押支持

初始100 / 0 / 00
拆分 1000 / 100 / 100100
合并 4040 / 60 / 6060
合并剩余 60100 / 0 / 00

最后一行只是下一步的一种选择,不是下面赎回示例之前实际执行的步骤。它让钱包在费用前回到初始余额,说明的是守恒,而不是利润。

如果有 60 YES,却只有 20 份匹配的 NO,最多只能合并 20 对。剩下的 40 YES 仍有结果风险。单独一份 YES 不覆盖 NO 结果,因此无法在结果确定前释放完整的一单位抵押品。

合并实现不要求已有支付结果。完整集合可在结果确定前重新组合,但该函数并非仅限于这段时间。它使用配对的抵押支持,不需要在订单簿中寻找买家。

赎回:依据结果,而非最新报价

现在回到先前持有 40 抵押品,以及两种代币各 60 的状态。如果记录的结果为 YES,赎回这些选定余额时,YES 支付 60 抵押品,NO 支付零。钱包在费用前达到 100 抵押品;被赎回的代币会销毁。

只持有 60 YES 的钱包,也会获得相同的 60 单位 YES 支付。赎回不要求所有者同时提供 NO。这正是它与结果确定前合并的关键区别:已记录的结果决定哪些独立权利会产生支付。

在所检查的赎回函数中,每个选定仓位的金额等于余额乘以对应的支付分子,再除以分母。分母是已记录分子的总和。在这个 CTF 函数中,选定仓位就会赎回其全部余额,没有部分数量参数。

每种结果各持有 100 代币:YES 获胜时分别支付 100 和 0;NO 获胜时分别支付 0 和 100;普通 CTF 支持的各半支付分别为 50 和 50。

每种结果各 100 代币在费用前收到的抵押品。50/50 是普通 CTF 的能力,不是 承诺,也不代表 NegRisk 支持这种结果。

每种代币各 100 时,[1, 0] 支付 100 YES / 0 NO,[0, 1] 支付 0 YES / 100 NO。普通 CTF 支持的 [1, 1] 支付,其分母为 2,每侧支付 50。这些是抵押品收款,不是净利润;取得代币的成本仍然重要。

这种按比例支付的能力,不是普遍适用的取消退款承诺。市场规则和结果判定方必须允许这种结果。关联的 NegRisk 事件需要自己的受支持支付与恢复规则;不能假定普通二元市场的备用处理适用于它。

合约使用整数基础单位计算,除法向下取整。如果抵押代币有六位小数,100 单位就是 100000000 个基础单位;一个基础单位按一半支付会向下取整为零。绝不能把界面的显示小数直接当成合约的原始整数传入。

到达市场结束时间,并不代表已有支付结果。赎回要求记录中存在非零的支付分母;预言机及其配置的流程必须先提供结果。因此即使交易已经结束,仍可能需要等待。

卖出与赎回是不同的退出方式

卖出需要可成交的买方需求。你按照约定价格把结果代币转给买家,受可用数量、执行成本和结算成功与否影响。它可以在结果确定前平仓,但显示的中间价并不是可用买价。

卖出 YES,是按交易价格把代币转给愿意购买的买家;记录结果后的赎回,则销毁代币并按支付规则领取资产。

卖出需要买家和可成交价格。赎回需要已记录结果和正确的合约路径。

赎回在结果确定后,使用记录的支付和适当的合约路径,不需要订单簿上有新买家。以 0.60 取得代币,获胜时收到一单位,则每份费用前收益为 0.40;落败时损失为 0.60,两者都未计费用。

低于合并价值买入两种结果,只有在同一完整集合中等量实际成交后,才能形成费用前价差。未成交的一侧、错误标识符、手续费、授权、交易失败和抵押品风险,都可能抹去价差,或留下方向性风险。报价本身不是已完成的策略。

Kuest 的区别:仓位同时关联创建者信息

Kuest 保留这些 CTF 资产机制,并在准备条件时增加创建者地址和外部元数据引用。其元数据更新函数将更新权限限制为创建者或管理员,并记录旧引用、新引用和更新者。

对运营方来说,这在代码层面提供了关联条件与创建者、追踪元数据引用变更的方式。它不会把完整市场文档存入 CTF 账本,不会冻结所有显示规则,也不会决定支付。运营方仍需提供可访问的文档,并明确结果判定路径。

公开 CTF 指南区分了仓位账本的拆分、合并与赎回操作。NegRisk 适配器是另一条合约路径;尝试相同库存操作前,应确认它公开的接口和抵押品。

权限随路径而定:拆分需要向对应 CTF 或适配器目标授予抵押品支出额度。负风险合并与赎回还需要允许适配器操作 CTF 仓位。交易授权不会自动允许这些库存操作。

版本检查,截至 2026年10月30日:Polymarket 当前的仓位管理文档区分了 CTF 抵押品适配器与 Protocol V2 的 Router、PositionManager。版本号或相似的方法名不能证明与另一平台兼容。应使用实际仓位所对应的文档路径。

以上 Kuest CTF 解释可与其公开且已验证的 Polygon 合约核对。它们并未确定所有已列市场当前使用的抵押品、权限或结果判定方。启用库存操作前,应确认这些细节,并把拆分、合并和赎回展示为不同的资产变动。

正在为你的受众规划这种体验吗?通过 Kuest 创建自己的预测市场,同时准备市场规则、目标受众所在司法辖区和流动性要求,以选择合适的运营配置。