Terningernes retfærdighed: sådan virker server-RNG i virkeligheden

Enhver, der har spillet backgammon på nettet, har på et tidspunkt skrevet en version af den samme søgning: er terningerne riggede? Spørgsmålet fortjener et rigtigt svar, ikke et skuldertræk fra en marketingafdeling. Her er den tekniske udgave: hvor digitale terninger kommer fra, hvad der faktisk kan gå galt, og hvordan et ordentligt bygget spil lægger et kastet tal uden for alles rækkevidde med arkitektur i stedet for med løfter.

Hvor en digital terning bliver til

En fysisk terning bliver gjort tilfældig af fysikken: rullet, hoppet, filten. En digital terning er et tal, der kommer ud af en tilfældighedsgenerator (RNG), et stykke software (ofte fodret af hardware), hvis eneste opgave er at levere værdier, som ingen kan forudsige eller genskabe.

Generatorer er ikke lige gode. En simpel pseudotilfældig generator, den slags der blander en afspilningsliste, giver en række, der er fuldstændig bestemt af sin startværdi (sit seed). Kender man startværdien og algoritmen, kender man hvert eneste »tilfældige« tal, generatoren nogensinde vil give. Det er fint til afspilningslister og ubrugeligt i spil, hvor noget står på spil. Seriøse spil bruger kryptografisk sikre generatorer (CSPRNG), som hele tiden får ny entropi fra den virkelige verden: støj i hardwaren, jitter i tidtagningen, kaosset i styresystemets hændelser. Deres afgørende egenskab er præcis den, et terningespil har brug for: end ikke en angriber, der har set hvert tidligere udfald, kan forudsige det næste.

Det vigtigere spørgsmål: hvor kører den?

Her kommer den del, de færreste spillere tænker på at spørge om. Det betyder mindre, hvilken generator der laver dit kast, end hvor den kører. Bliver terningerne skabt på spillerens egen enhed, er spillet strukturelt i stykker, uanset hvor god algoritmen er: en ændret klient kan kaste om, indtil resultatet passer, pille ved udfaldet i hukommelsen eller skæve til værdierne, før den binder sig til et træk. Terninger på klientsiden er et løfte, og løfter kan patches ud af en app.

Den rigtige arkitektur er serverautoritativ: kastet sker på spilserveren, i et miljø ingen spillers hardware kan røre. Din enhed modtager et kast, der allerede findes, og animerer det bare. I vores spil rækker det, som vi forklarer på siden om fair play, længere end til terningerne: serveren prøver hvert forsøg på et træk af mod reglerne, og begge klienter holder hele tiden deres bræt op mod et fingeraftryk, serveren sender med hver opdatering. Der findes ikke ét øjeblik, hvor en spillers enhed bliver troet på noget, der betyder noget.

Den ene designbeslutning fjerner hele familier af snyd på én gang. Ingen kan kaste om, for kastet ligger før turen. Ingen kan læse det næste tal på sin egen enhed, for det er der ikke at læse. Og ingen kan stille og roligt bøje brættet, for et bræt, der er uenigt med serverens, bliver smidt væk og synkroniseret igen inden for én tur og retur.

Hvad »beviseligt fair« egentlig betyder

I årevis var branchens svar på, om terningerne er ærlige, et certifikat: et laboratorium ser generatoren efter én gang og udsteder et stempel, du bliver bedt om at stole på. Vi mener, du fortjener noget stærkere end et stempel. Beviseligt fair betyder, at du aldrig behøver stole på os overhovedet, for hvert kast bærer sit eget bevis. Metoden er en forpligtelse på forhånd plus et bytte tur for tur, og den ser sådan ud: en bunke forseglede sedler til hver spiller, plus en forseglet kuvert fra os:

  • Lås. Før den første terning bliver kastet, laver serveren et hemmeligt seed og rækker dig et kryptografisk fingeraftryk af det, en hash, mens udfaldet stadig er ukendt. I samme øjeblik forsegler hver spillers app sin egen nummererede bunke sedler og offentliggør kun bunkens fingeraftryk. Alle tre fingeraftryk fryses sammen i én optegnelse, så ingen af dem kan byttes ud bagefter, og ingen af dem røber, hvad de skjuler.
  • Bytte. Terningerne er ikke afgjort på forhånd. De bliver bygget én ad gangen efter en fast, offentlig formel, og hver enkelt kræver en seddel fra begge bunker. Hver tur offentliggør den, der skal kaste, sin næste seddel først, modstanderen slipper sin, når den er låst, og terningen bliver regnet ud til sidst, ud fra begge sedler og det forseglede seed. Hver seddels segl udledes af den næste seddel i bunken, og derfor kan en seddel ikke byttes ud bagefter. Og fordi den sidste ukendte indgang altid ligger på den anden side af brættet, kan ingen, os selv medregnet, kende en terning, så længe en beslutning, der stadig kan ændre den, er åben.
  • Kontrol. Når partiet er slut, åbner serveren sin kuvert og viser dig sit seed, og hele optegnelsen bliver offentliggjort. Du hasher seedet og bekræfter, at det passer med det fingeraftryk, du fik i begyndelsen, beviset på at det aldrig blev byttet; du kontrollerer, at hver seddel hører til den bunke, dens side forpligtede sig på; og så kører du den samme offentlige formel og genudleder hvert kast selv. Var en enkelt terning blevet skubbet, ville udregningen ikke passe, og manipulationen ville være umulig at benægte.

Det er hele forskellen på »stol på vores certifikat« og »se selv efter«. Du behøver ikke tro på, at vores terninger er ærlige; du kan kontrollere dem, ét færdigt parti ad gangen, med matematik enhver kan regne efter. Siden om fair play rummer værktøjet, der gør nøjagtig det: giv det et færdigt parti, og se hvert kast blive udledt igen foran dig ud fra den offentliggjorte optegnelse. Det eneste, en offentlig side ikke kan, er at bekræfte, at optegnelsen er dit parti, for kun din enhed gemte sin kopi af de fingeraftryk, den låste før spillet; det sidste tjek bor i appen.

En ærlig bemærkning, beviset ikke ændrer på: beviseligt fair terninger er stadig ikke jævne, høflige terninger, der skiftes pænt. Et seed, man kan efterprøve, giver klumper, stimer og tørke præcis så ofte, som sandsynligheden forudsiger. En strøm helt uden stimer ville være den mistænkelige. Ægte tilfældighed er klumpet, og det er netop derfor, den så tit føles rigget.

Hvorfor fair terninger føles riggede

Hvilket bringer os til psykologien, for følelsen af riggede terninger er virkelig, også når terningerne ikke er det. Tre veldokumenterede skævheder står for arbejdet:

Selektiv hukommelse. Du husker aftenen, hvor du dansede på baren fire ture i træk. Du husker ikke de hundredvis af gange, du kom lige ind før den. Smertefulde udfald lagres stærkere, og enhver erfaren spiller går rundt med et privat museum over uretfærdigheder og intet arkiv over det almindelige.

De små tals lov. Mennesker forventer, at bittesmå stikprøver ligner gennemsnittet i det lange løb. På 36 kast »burde« hver kombination komme cirka én gang, men virkelige serier på 36 kast er vildt ujævne, med nogle tal helt fraværende og andre tredoblet. En aften med backgammon er en bitte lille stikprøve. Variansen bestemmer over den, og varians føles personlig.

Tabsasymmetri. Et skud på 17 ud af 36, der rammer dig, føles som uretfærdighed; de 19 gange ud af 36, hvor det rammer forbi, føles slet ikke. Fordi backgammon hele tiden afgør begivenheder i intervallet 30 til 70 procent, er der en stabil forsyning af »umulige« udfald, og de kommer præcis så ofte, som de er mulige.

Modgiften er at kende de rigtige tal. Et bestemt tal optræder i 11 ud af 36 kast. Dobbelt kommer hver sjette kast. En blot seks pips væk bliver ramt næsten hver anden gang. Vores vejledning i sandsynlighedens grundbegreber lægger hele tabellen frem, og når de tal først sidder i hovedet, omklassificerer de fleste »riggede« øjeblikke sig selv til helt almindelige tirsdage.

Spørgsmålet om incitamenter

Endnu en ærlig pointe: en backgammonudbyder har intet at vinde ved skæve terninger og alt at tabe. Konkurrencespillerne, dem der bliver hængende i årevis, er præcis de mennesker, der holder øje med oddsene og opdager uregelmæssigheder. Ratingsystemer fungerer samtidig som offentlige revisionsspor: hvis terningerne systematisk favoriserede nogen, ville ratingfordelingerne skride på målbare måder. Fair terninger er ikke en dyd, vi opfører, de er den eneste stabile forretningsmodel, et færdighedsspil har.

Sådan overbeviser du dig selv

Tag ikke nogen udbyders ord for det, heller ikke vores. Lær grundfrekvenserne fra sandsynlighedsvejledningen, og følg så dine egne partier med de tal i baghovedet: chancen for at komme ind mod et bræt med to gjorte felter, hvor ofte dobbelt kommer hen over en lang session, træfferprocenten på direkte skud. Ærlige terninger nærmer sig tabellens forudsigelser bemærkelsesværdigt hurtigt. Og vil du have de arkitektoniske detaljer, forpligtelserne og byttet tur for tur, kastene på serveren, brætkontrollen ved hvert træk, Glicko-2-matchmakingen, så er siden om fair play den fulde redegørelse for, hvordan vores bord er bygget, verifikationsværktøjet inklusive. Så er den variabel, der afgør partier, den, der bør gøre det: hvor godt du spiller de kast, du får. Strategiguiderne er præcis til det.

Omsæt det i praksis

Den hurtigste måde at lære backgammon på er at spille det. Mød rigtige spillere direkte i din browser: gratis, uden installation og uden tilmelding.

Spil backgammon gratisI din browser · ingen installation