027 分钟
抵押与结果份额

一份二元合约为什么锁定 100 积分?

理解 YES 与 NO 为什么是一对,以及获胜的一边为什么总能兑付 100 积分。

本章目标学完后,你应该能:
  • 解释完整份额如何覆盖两个互斥结果
  • 用抵押不变量检查结算池是否足额
章节位置第 2 / 6 章
  1. 上一章什么样的问题可以结算?
  2. 本章一份二元合约为什么锁定 100 积分?

    理解 YES 与 NO 为什么是一对,以及获胜的一边为什么总能兑付 100 积分。

  3. 下一章观点怎样变成订单?
阅读前

先想一想这几个问题

展开答案前,可以先在心里做个判断。与预期不同的内容可以加入复习列表。

Q01为什么锁进 100 积分,会同时造出一份 YES 和一份 NO?
简要回答

它们不是凭空多出的两份钱,而是一张 100 积分领取权被拆成两个互斥钥匙。最终只有一把钥匙能打开抵押池;把两份重新合并,也只能取回 100。

和原先判断相比:
Q02结果还没发生,YES+NO 为什么已经值 100?
简要回答

因为完整份额不需要猜结果:无论未来是哪一边获胜,它都覆盖那把获胜钥匙。前提是合约允许合并、抵押足额,而且不存在无效市场或结算故障。

和原先判断相比:
Q03我花 70 买 YES,最后却拿到 100,多出来的 30 是谁付的?
简要回答

不是协议临时补贴。成交或拆分完整份额时,YES 和互补的 NO 共同对应一份已经锁好的 100 抵押;YES 获胜后拿走整份,是因为 NO 的领取权同时归零。

和原先判断相比:

YES 和 NO 不是两种凭空出现的筹码。一个最容易验证的设计是:先锁定 100 积分,再同时生成一份 YES 和一份 NO。未来无论哪边获胜,抵押池都恰好能够支付 100。

把未来拆成两张收据

假设你向市场合约存入 100 积分。合约把它锁起来,并给你两张结果份额:

  • 一份 YES:如果事件发生,兑付 100;否则兑付 0。
  • 一份 NO:如果事件不发生,兑付 100;否则兑付 0。

两张份额合在一起覆盖了所有可能结果,所以它们被称为一套“完整份额”。在市场结算前,你也可以把一份 YES 和一份 NO 合并,取回最初的 100 积分。

完整份额铸造器始终足额抵押
抵押池300积分
拆分
3YES
3NO
假设最终结果:

获胜的 3YES 可以领取 300 积分;另一边归零。系统不需要临时寻找赔付资金。

为什么不能等结算时再找输家收钱

如果 Bob 只口头承诺“输了以后付钱”,到结算时他可能已经离开、破产或拒绝支付。预测市场要让陌生人交易,就不能把兑付依赖于未来的信用。

提前抵押把信用风险变成了一个当前可检查的状态:发行了多少对份额,结算合约里就必须有多少个 100 积分。任何人都可以验证这个不变量。

份额有了,价格还没有

完整的一对总共可以兑付 100,但这不代表 YES 必须值 50、NO 必须值 50。Alice 可能愿意用 70 买 YES,而 Bob 只愿意用 35 买 YES。价格要等不同观点带着真实预算进入市场后才会出现。

展开:这一步如何实现
split(100 credits):
  collateral += 100
  mint(YES, 1)
  mint(NO, 1)

resolve(YES):
  redeem(YES) -> 100
  redeem(NO)  -> 0

核心不变量:锁定抵押 >= 尚未兑付的获胜份额 × 100

理解检查

为什么每一对 YES/NO 需要锁定 100 积分?

本章小结

系统已经拥有足额抵押的二元结果份额。下一章,Alice、Bob 和 Carol 会把各自的判断翻译成可以被撮合的订单。

本章小结完成练习和理解检查后,可以保存本章