Juego limpio (Provably Fair)

3-102-969694 SOCIEDAD DE RESPONSABILIDAD LIMITADA. PROVINCIA 01 SAN JOSE, CANTON 01 SAN JOSE, DISTRITO CARMEN, BARRIO ESCALANTE, AVENIDA SIETE, CALLE VEINTINUEVE, EDIFICIO DOS MIL NOVECIENTOS DIEZ, CENTRO CORPORATIVO AG

CajasUpgrade
Inventario

Juego justo

SpyDota usa el algoritmo Provably Fair para que cualquier jugador pueda comprobar la imparcialidad de una partida. El resultado de una caja o de un upgrade lo determinan una seed del servidor fijada de antemano, tu seed del cliente y el número de partida, así que no se puede manipular una vez empezada la partida.

Cómo verificar tu partida

La seed del servidor es el valor secreto del que se calcula el resultado de la partida. Para recalcular una partida hay que revelar la seed: la tarjeta de la partida lo hace por ti.

  1. Historial
    SkinCaja
    Night Terrors HatShadow Shaman
    Belt of the Forlorn MazeShadow Shaman

    Abre el historial

    Pulsa tu avatar en la cabecera, abre la pestaña «Historial» y elige «Cajas» o «Upgrades».

  2. Fecha
    22 de octubre de 2026 a las 11:32
    22 de octubre de 2026 a las 11:32
    22 de octubre de 2026 a las 11:32

    Pulsa «Verificar»

    El botón está al final de la fila de la partida (en el móvil, desliza la tabla hacia la derecha). En la tarjeta que se abre, pulsa «Verificar» otra vez.

  3. Partida n.º 2 del par de semillas
    Número obtenido37.847.706 de 100.000.000

    Para verificar la partida hay que revelar la seed del servidor. Crearemos un nuevo par de seeds: la seed actual se revelará y se incluirá en la verificación, y los números de partida empezarán de nuevo.

    Revela la seed

    Si la seed aún es secreta, la tarjeta te ofrecerá «Cambiar seeds y verificar». La seed antigua se revelará y podrás verificar todas las partidas jugadas con ella. Las partidas nuevas empiezan a contar desde 1; las ya jugadas no cambian. Si la seed ya está revelada, este paso no aparece.

  4. Coincide

    Tu navegador recalculó la partida con la seed revelada y el resultado coincide con el registro del servidor.

    Número obtenido37.847.706
    • Belt of the Forlorn MazeBelt of the Forlorn Maze29.376.71035.693.291
    • Night Terrors HatNight Terrors Hatsalió35.693.29241.180.434
    • Censer of GlissCenser of Gliss41.180.43547.096.768
    Detalles del cálculo
    Mensajecase:dota2:e784b35edb9c33afec77526dac3faa49:2
    HMAC-SHA25660e3df4be0729100…0cc8
    Número del hash1.625.546.571
    sha256 de la seed del servidora6d071c29474dfc7…b787

    Compara el resultado

    Se abrirá la página de verificación. «Coincide» significa que tu navegador recalculó la partida y obtuvo lo mismo que registró el servidor. Compara el objeto marcado como «salió» con la fila del historial; en un upgrade, mira «Victoria» o «Derrota».

Las partidas jugadas antes del lanzamiento de Provably Fair, los regalos y las entregas no tienen botón «Verificar». Si el objeto se sustituyó, la verificación se refiere al drop original. Si ves «No coincide», guarda la seed del servidor y escribe a soporte.

El resultado se fija de antemano

Antes de la partida ves el hash de la seed del servidor, así que el servidor ya no puede cambiar los datos de origen sin que se note.

Tus datos forman parte del cálculo

Tu seed y el número de partida participan en el cálculo, así que el resultado no lo forma solo el servidor.

Datos de la partida

Introduce los datos de una partida. El cálculo se hace en tu navegador y no se envía nada al servidor.

Un array de filas con los campos itemId, start, end, name y phase (fase de CS2 o null). Cópialo de la tarjeta de la partida.

Resultado de la verificación

Introduce los datos de la partida y pulsa «Verificar»: aquí aparecerán el número y el objeto.

Cómo se forma el resultado

Seed del servidor + Tu seed + Número de partida = Resultado justo

Cómo se calcula

  1. El compromiso del servidor

    El servidor elige una seed del servidor aleatoria y muestra solo su hash SHA-256. Después no se puede cambiar la seed: el hash dejaría de coincidir.

  2. El hash de la partida

    Para cada partida se calcula un HMAC-SHA256. La clave es la seed del servidor como cadena hex de 64 caracteres, tal cual, sin decodificarla a bytes. El mensaje se forma con el tipo de juego, el juego, tu seed del cliente y el número de partida.

  3. El ticket

    Los primeros 8 caracteres hex del hash dan un número de 0 a 4 294 967 295. De él sale el ticket de 1 a 100 000 000: floor(número × 100 000 000 / 2^32) + 1.

  4. Caja

    En la tabla de probabilidades del momento de la partida, cada objeto tiene su propio rango de tickets. Se obtiene el objeto en cuyo rango cae el ticket.

  5. Upgrade

    El umbral es floor(probabilidad × 100 000 000). El upgrade gana si el ticket no supera el umbral.

  6. La revelación

    La seed del servidor se revela cuando cambias las seeds. Después puedes recalcular cualquier partida del par en tu navegador, en esta página, o con tu propio código.

La fórmula

Mensaje
kind:game:clientSeed:nonce
Clave HMAC
HMAC-SHA256(serverSeed, message)

La clave es la cadena hex de la seed del servidor tal cual (64 caracteres), no los bytes decodificados de ella. Aquí es donde fallan la mayoría de las comprobaciones hechas por cuenta propia.