Skip to content

Round (回合) 生命周期

每个 Round 恰好持续 60 秒。时间采用协议-UTC。

四个阶段

阶段持续时间发生事件
Announce (公告)t₀ → t₀+5s问题 q_t 被发布。问题通过 `seed_t mod
Commit (提交)t₀+5s → t₀+35s每位参与者提交一个承诺 c_i = HMAC-SHA256(s_i ‖ round_t, b_i),其中 b_i ∈ {0, 1} 是所选答案,s_i 是一个 128 位用户秘密。该承诺在 Reveal 阶段之前隐藏答案。
Reveal (揭示)t₀+35s → t₀+50s参与者揭示 (s_i, b_i)。Round Engine 验证每个承诺。未揭示者将被淘汰。
Settle (结算)t₀+50s → t₀+60s计算多数方 `M = argmax_v

为什么需要两个阶段(Commit + Reveal)?

一个天真的设计会让玩家以明文提交 b_i。这在三个方面存在问题:

  1. 从众效应。 后投票的玩家可以看到实时统计并跟风。
  2. 机器人合谋。 协调的机器人集群可以等待公开信号,然后横扫多数方。
  3. 问题泄露。 明文提交让对手在投票前就能观察到部分答案并推断问题的真实分布。

加密的 Commit / Reveal 协议消除了所有这三个问题。在 Commit 阶段,没有人能看到其他人的答案。在 Reveal 阶段,每个承诺都可以根据揭示的 (s_i, b_i) 进行公开验证。

详见 加密协议 的正式规范。

如果我不揭示会发生什么?

你将从该 Round 中被淘汰,并且不会获得 Round POP (积分)。你的承诺仍会被记录在链上(作为 Merkle Root 的一部分)以供审计。你的 Reputation Score (声誉评分) 会经历一次小的贝叶斯更新,倾向于"不可靠参与者"。

如果网络延迟怎么办?

Round Engine 在每个阶段边界之外为慢速客户端接受 2 秒的宽限期。超过此期限的承诺和揭示将被静默丢弃。

问题是如何选择的?

Question Oracle (问题预言机)(见 预言机与随机性)维护着一个包含超过 100,000 个预生成和预校准问题的储备池。每个问题都经过以下处理:

  1. 生成:由多 LLM 集成完成。
  2. 对抗性去偏:消除人口统计和语言上的引导效应。
  3. 校准预测试:针对合成人群进行测试,以验证约 50/50 的预期响应。预期响应偏斜的问题会被过滤。

Round 种子 seed_t 从该储备池中确定性选择,因此选择结果不可预测但完全可审计。

Round 会出现平局吗?

数学上可能(恰好 50/50)。当 |{b_i=0}| = |{b_i=1}| 时,Prize Pool (奖池) 滚动到 Round t+1,问题被重新抽取,双方均幸存。

Built on TON.