fairnessprovably fairdice
Ja, det kan det. Terninger på nett kastes på en server du ikke ser, og ingenting hindrer fysisk en operatør i å endre et tall før det når brettet ditt. Resultatene alene vil aldri bevise noe i noen retning, så det ærlige spørsmålet er ikke om rigging er mulig. Det er om et spill kan bevise at den ikke skjedde.
Vi lager et backgammonspill, så vi er ikke nøytrale her. Nettopp derfor vil vi svare skikkelig, også på de ubehagelige delene.
Hvorfor føles terningene rigget på hver eneste side?
Fordi variansen i backgammon er nådeløs, og menneskets hukommelse er skjev. To terninger kan falle på trettiseks måter; rekker er ikke en feil, de er en garanti, og et sted i kveld slår en ærlig server fire dobler på rad mot noen som spilte hver brikke riktig. Du husker 5-5 som traff blottet ditt. Du husker ikke mirakelkastet som reddet deg sist tirsdag. Tap sitter igjen, redninger fordamper, og etter tre dårlige partier på rad blir terningene personlige. De blir personlige ved et ekte brett på en ekte kafé også. Spør noen som har skjøvet trebrikker i førti år.
Og her er fellen. Et rigget spill ville føles nøyaktig likedan. Rekker beviser ingenting i noen retning, så hvis beviset ditt er hvordan terningene føltes, kan du ikke skille en ærlig server fra en uærlig. Det kan ikke vi heller. Det er ikke et forsvar for terninger på nett. Det er nettopp problemet deres.
Kunne en side virkelig styre terningene sine?
Teknisk ja, og det ville ikke engang være vanskelig. Serveren ser hele brettet før den kaster. En operatør som ville jukse, kunne:
- Vippe noen få kast per hundre i de øyeblikkene som veier tyngst: kastet som treffer, inngangen fra baren som mislykkes, doblen som snur et tapt parti.
- Holde kamper kunstig jevne, så økter varer lenger og tap føles som nesten-seire.
- Stille og rolig favorisere den siden operatøren har interesse i.
- Gjøre det sjeldent nok til at terningene fortsatt består enhver statistisk test en spiller noensinne kan kjøre.
Vi påstår ikke at noen bestemt side gjør dette. Vi sier at arkitekturen tillater det. En lukket server er et låst rom: operatøren kaster alene, melder et tall og ber deg stole på det. Utenfra døren ser ærlige og uærlige operatører identiske ut.
Beviser ikke en sertifisert generator at terningene er rettferdige?
Les hva sertifikatet faktisk dekker. Et laboratorium tester en generator: en algoritme på benken som produserer millioner av tall som består statistiske kontroller. Det sertifiserer komponenten. Det sier ingenting om leveringen, altså om tallet som nådde brettet ditt kom fra den generatoren, i det øyeblikket, uendret underveis. En kalibrert vekt på lageret beviser ikke at brødet ditt ble veid på den.
Sertifisering er dessuten et øyeblikksbilde. Servere i drift settes opp på nytt hele tiden, og kodestien mellom generatoren og partiet ditt fortsetter å endre seg lenge etter at laboratoriet har gått hjem. Sertifisert generator svarer altså på et spørsmål ingen egentlig stilte. Det som teller er ikke om det finnes gode terninger et sted i bygget. Det er om partiet ditt fikk dem, ved hvert eneste kast, i kveld.
Hva endrer commit-reveal egentlig?
Det flytter rettferdighet fra løfte til bevis. Før et parti begynner, trekker serveren et hemmelig frø og publiserer fingeravtrykket, en SHA-256-hash kalt forpliktelsen. Hvert kast i partiet utledes deretter av det frøet, én HMAC-SHA256-beregning per kast, i rekkefølge. Når partiet er slutt, avslører serveren frøet.
Nå kan hvem som helst sjekke to ting. Hash det avslørte frøet: det må stemme med forpliktelsen som ble publisert før første trekk. Regn om kastene: de må stemme med hvert eneste tall som dukket opp på brettet. Hadde serveren endret så mye som én terning etter å ha sett stillingen din, ville regnestykket ikke gå opp. Rigging slutter å være en mistanke du ikke kan prøve, og blir en løgn du kan ta på fersk gjerning.
Terninger som ble låst før partiet, kan ikke reagere på det.
Det er kjernen. Den nyttige sorten rigging er reaktiv: se blottet, slå treffet. Commit-reveal tar øynene fra serveren, fordi hele følgen lå fast før åpningstrekket, og ethvert inngrep etter forpliktelsen er matematisk påvisbart. Det det ikke gjør, er å gjøre terningene snille. Følgen var ærlig, ikke barmhjertig. Du kommer fortsatt til å sitte på baren i verst tenkelige øyeblikk, og nå vil du kunne bevise at det var rettferdig.
Hvordan verifiserer man et parti i praksis?
Slik bygde vi det i Orion. Hvert parti som spilles på serverne våre bærer en forpliktelse gitt før første kast, serveren validerer hvert trekk ved kilden, og å sjekke et avsluttet parti tar omtrent ett minutt:
Åpne verifiseringen. Gå til orion.arthea.ai/verify i hvilken som helst nettleser. Ingenting å installere, ingen konto å opprette.
Skriv inn partiets id. Hvert serverparti i Orion har en. Lim den inn.
La nettleseren regne. Siden regner om forpliktelsen og hvert kast med Web Crypto, lokalt, i nettleseren din. Vårt ord inngår ikke i kontrollen. Hadde ett eneste tall blitt endret, ville omregningen si det.
Verifiseringen er i drift allerede i dag. Selve spillet er ferdig, og døren på orion.arthea.ai/go bærer lenkene til App Store og Google Play og viser alltid hva som er tilgjengelig akkurat nå. Uansett står det ærlige svaret. Ja, backgammon på nett kan være rigget. Kuren er ikke et penere løfte. Det er terninger som viser regnestykket sitt.