Skip to content

Round Lifecycle

Each Round lasts exactly 60 seconds. Time is in protocol-UTC.

The four phases

PhaseDurationWhat happens
Announcet₀ → t₀+5sThe question q_t is published. Question is selected from the reservoir by `seed_t mod
Committ₀+5s → t₀+35sEach participant submits a commit c_i = HMAC-SHA256(s_i ‖ round_t, b_i), where b_i ∈ {0, 1} is the chosen answer and s_i is a 128-bit user secret. The commit hides the answer until reveal.
Revealt₀+35s → t₀+50sParticipants reveal (s_i, b_i). The Round Engine verifies each commit. Non-revealers are eliminated.
Settlet₀+50s → t₀+60sThe majority `M = argmax_v

Why two phases (commit + reveal)?

A naive design would let players submit b_i in plaintext. This fails three ways:

  1. Herding. Players who vote later see the running tally and bandwagon.
  2. Bot collusion. A coordinated bot fleet can wait for a public signal and then sweep the majority.
  3. Question leakage. Plain commits let an adversary observe partial answers and infer the question's true distribution before voting.

The cryptographic Commit / Reveal protocol eliminates all three. During Commit, no one can see anyone else's answer. During Reveal, every commit is publicly verifiable against the revealed (s_i, b_i).

See Cryptographic Protocol for the formal specification.

What happens if I don't reveal?

You are eliminated from that Round and earn no Round POP. Your commit is still logged on-chain (as part of the Merkle Root) for audit. Your Reputation Score takes a small Bayesian update toward "unreliable participant."

What happens if the network is laggy?

The Round Engine accepts a 2-second grace window beyond each phase boundary for slow clients. Beyond that, commits and reveals are dropped silently.

How is the question chosen?

The Question Oracle (see Oracle & Randomness) maintains a reservoir of >100,000 pre-generated and pre-calibrated questions. Each question has been processed through:

  1. Generation by a multi-LLM ensemble.
  2. Adversarial debiasing to remove demographic and linguistic priming.
  3. Calibration pretest against a synthetic population to verify ~50/50 expected response. Questions with skewed expected responses are filtered.

The Round seed seed_t selects deterministically from this reservoir, so the choice is unpredictable but fully auditable.

Can rounds tie?

Mathematically, yes (exactly 50/50). When |{b_i=0}| = |{b_i=1}| the prize pool rolls into Round t+1, the question is re-drawn, and both sides survive.

Built on TON.