Ciclo de Vida del Round
Cada Round (ronda) dura exactamente 60 segundos. La hora es UTC del protocolo.
Las cuatro fases
| Fase | Duración | Qué sucede |
|---|---|---|
| Announce | t₀ → t₀+5s | Se publica la pregunta q_t. La pregunta se selecciona del reservorio mediante `seed_t mod |
| Commit | t₀+5s → t₀+35s | Cada participante envía un commit c_i = HMAC-SHA256(s_i ‖ round_t, b_i), donde b_i ∈ {0, 1} es la respuesta elegida y s_i es un secreto de usuario de 128 bits. El commit oculta la respuesta hasta el reveal. |
| Reveal | t₀+35s → t₀+50s | Los participantes revelan (s_i, b_i). El Round Engine verifica cada commit. Quienes no revelan son eliminados. |
| Settle | t₀+50s → t₀+60s | Se calcula la mayoría `M = argmax_v |
¿Por qué dos fases (commit + reveal)?
Un diseño ingenuo permitiría que los jugadores envíen b_i en texto plano. Esto falla de tres maneras:
- Efecto rebaño. Los jugadores que votan después ven el recuento parcial y se suben al carro.
- Colusión de bots. Una flota de bots coordinada puede esperar una señal pública y luego barrer la mayoría.
- Filtración de preguntas. Los commits en texto plano permiten que un adversario observe respuestas parciales e infiera la distribución real de la pregunta antes de votar.
El protocolo criptográfico Commit / Reveal elimina los tres problemas. Durante Commit, nadie puede ver la respuesta de otro. Durante Reveal, cada commit es verificable públicamente contra el par (s_i, b_i) revelado.
Consulte Protocolo Criptográfico para la especificación formal.
¿Qué sucede si no revelo?
Eres eliminado de ese Round y no ganas POP (puntos) del Round. Tu commit aún se registra en cadena (como parte de la Merkle Root) para auditoría. Tu Reputation Score (puntaje de reputación) recibe una pequeña actualización bayesiana hacia "participante no confiable".
¿Qué sucede si la red es lenta?
El Round Engine acepta una ventana de gracia de 2 segundos más allá del límite de cada fase para clientes lentos. Más allá de eso, los commits y reveals se descartan silenciosamente.
¿Cómo se elige la pregunta?
El Question Oracle (Oráculo de Preguntas) (consulte Oráculo y Aleatoriedad) mantiene un reservorio de más de 100,000 preguntas pregeneradas y precalibradas. Cada pregunta ha pasado por:
- Generación mediante un conjunto de múltiples LLM.
- Desesgo adversarial para eliminar sesgos demográficos y lingüísticos.
- Prueba de calibración contra una población sintética para verificar una respuesta esperada de ~50/50. Las preguntas con respuestas esperadas sesgadas se filtran.
La semilla del Round seed_t selecciona de forma determinista de este reservorio, por lo que la elección es impredecible pero completamente auditable.
¿Pueden empatar los rounds?
Matemáticamente, sí (exactamente 50/50). Cuando |{b_i=0}| = |{b_i=1}|, el Prize Pool se acumula al Round t+1, se vuelve a sortear la pregunta y ambos lados sobreviven.