News

El backgammon en línia es pot manipular?

Sí. Un servidor tancat pot torçar els daus, i els resultats sols no proven res. Quina forma té la manipulació i per què el commit-reveal la destapa.

fairnessprovably fairdice

Sí, es pot. Els daus en línia es tiren en un servidor que no veus, i res de físic impedeix que un operador canviï un número abans que arribi al teu tauler. Els resultats sols no provaran mai res en cap direcció, així que la pregunta honesta no és si la manipulació és possible. És si un joc pot demostrar que no hi va haver.

Nosaltres fem un joc de backgammon, o sigui que aquí no som neutrals. Precisament per això volem respondre bé, també les parts incòmodes.

Per què els daus semblen manipulats a tots els llocs?

Perquè la variància del backgammon és implacable i la memòria humana va torta. Dos daus poden caure de trenta-sis maneres; les ratxes no són una avaria, són una garantia, i en algun lloc aquesta nit un servidor honest traurà quatre dobles seguits contra algú que ha jugat cada fitxa bé. Recordes el 5-5 que et va tocar la fitxa sola. No recordes la tirada miraculosa que et va salvar dimarts passat. Les derrotes s'hi queden, els rescats s'evaporen, i després de tres partides dolentes seguides els daus es tornen personals. També es tornen personals en un tauler de debò en un cafè de debò. Pregunta-ho a qualsevol que porti quaranta anys empenyent fitxes de fusta.

I aquí hi ha el parany. Un joc manipulat es notaria exactament igual. Les ratxes no proven res en cap direcció, així que si la teva prova és com et van semblar els daus, no pots distingir un servidor honest d'un de deshonest. Nosaltres tampoc. Això no és una defensa dels daus en línia. És precisament el seu problema.

Un lloc podria torçar de debò els seus daus?

Tècnicament sí, i ni tan sols seria difícil. El servidor veu tot el tauler abans de tirar. Un operador que volgués fer trampes podria:

  • Inclinar unes poques tirades de cada cent en els moments que més pesen: la tirada que toca, l'entrada des de la barra que falla, el doble que gira una partida perduda.
  • Mantenir els duels artificialment igualats, perquè les sessions durin més i les derrotes semblin gairebé victòries.
  • Afavorir en silenci el bàndol que interessa a l'operador.
  • Fer-ho prou poques vegades perquè els daus segueixin passant qualsevol prova estadística que un jugador pugui arribar a fer.

No afirmem que cap lloc concret ho faci. Diem que l'arquitectura ho permet. Un servidor tancat és una habitació tancada amb clau: l'operador tira sol, anuncia un número i et demana que t'hi refiïs. Des de fora de la porta, els operadors honestos i els deshonestos són idèntics.

Un generador certificat no prova que els daus són justos?

Llegeix què cobreix realment el certificat. Un laboratori prova un generador: un algorisme sobre la taula que produeix milions de números que passen controls estadístics. Certifica el component. No diu res del lliurament, és a dir, de si el número que va arribar al teu tauler venia d'aquell generador, en aquell moment, sense alterar-se pel camí. Una balança calibrada al magatzem no prova que el teu pa s'hi hagi pesat.

A més, la certificació és una fotografia. Els servidors en producció es tornen a desplegar constantment, i el camí de codi entre el generador i la teva partida continua canviant molt després que el laboratori hagi plegat. Per tant, generador certificat respon una pregunta que ningú no havia fet realment. El que compta no és si en algun racó de l'edifici hi ha bons daus. És si la teva partida els va rebre, a cada tirada, aquesta nit.

Què canvia realment el commit-reveal?

Trasllada la justícia de la promesa a la prova. Abans que comenci una partida, el servidor treu una llavor secreta i en publica l'empremta, un hash SHA-256 anomenat compromís. Després, cada tirada de la partida es deriva d'aquella llavor, un càlcul HMAC-SHA256 per tirada, en ordre. Quan la partida s'acaba, el servidor revela la llavor.

Ara qualsevol pot comprovar dues coses. Fes el hash de la llavor revelada: ha de coincidir amb el compromís publicat abans del primer moviment. Recalcula les tirades: han de coincidir amb tots i cadascun dels números que van sortir al tauler. Si el servidor hagués canviat ni que fos un dau després de veure la teva posició, els comptes no quadrarien. La manipulació deixa de ser una sospita que no pots posar a prova i es converteix en una mentida que pots enxampar in fraganti.

Uns daus tancats abans de la partida no hi poden reaccionar.

Aquest és el nucli. La mena de manipulació que serveix és reactiva: veure la fitxa sola, treure el cop. El commit-reveal treu els ulls al servidor, perquè tota la seqüència ja estava fixada abans del moviment d'obertura, i qualsevol intervenció posterior al compromís és detectable matemàticament. El que no fa és fer els daus amables. La seqüència era honesta, no misericordiosa. Continuaràs anant a la barra en el pitjor moment possible, i ara podràs demostrar que era just.

Com es verifica una partida a la pràctica?

Així ho hem construït a Orion. Cada partida jugada als nostres servidors porta un compromís donat abans de la primera tirada, el servidor valida cada moviment a l'origen, i comprovar una partida acabada costa aproximadament un minut:

Obre la verificació. Ves a orion.arthea.ai/verify amb qualsevol navegador. No cal instal·lar res ni crear cap compte.

Escriu l'id de la partida. Cada partida de servidor d'Orion en té un. Enganxa'l.

Deixa que el navegador calculi. La pàgina recalcula el compromís i cada tirada amb Web Crypto, localment, al teu navegador. La nostra paraula no forma part de la comprovació. Si s'hagués canviat un sol número, el recàlcul ho diria.

La verificació ja funciona avui. El joc en si està acabat, i la porta d'orion.arthea.ai/go duu els enllaços a l'App Store i a Google Play i sempre mostra què hi ha disponible ara mateix. Sigui com sigui, la resposta honesta es manté. Sí, el backgammon en línia es pot manipular. El remei no és una promesa més bonica. Són uns daus que ensenyen els seus càlculs.