一份二元合约为什么锁定 100 积分?
理解 YES 与 NO 为什么是一对,以及获胜的一边为什么总能兑付 100 积分。
- 解释完整份额如何覆盖两个互斥结果
- 用抵押不变量检查结算池是否足额
- 上一章什么样的问题可以结算?
- 本章一份二元合约为什么锁定 100 积分?
理解 YES 与 NO 为什么是一对,以及获胜的一边为什么总能兑付 100 积分。
- 下一章观点怎样变成订单?
先想一想这几个问题
展开答案前,可以先在心里做个判断。与预期不同的内容可以加入复习列表。
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 积分。
获胜的 3 份 YES 可以领取 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 会把各自的判断翻译成可以被撮合的订单。