News

Kan online backgammon doorgestoken kaart zijn?

Ja. Een gesloten server kan de dobbelstenen sturen, en uitslagen alleen bewijzen niets. Hoe dat eruitziet, en waarom commit-reveal het aantoonbaar maakt.

fairnessprovably fairdice

Ja, dat kan. Online dobbelstenen worden geworpen op een server die je niet ziet, en niets houdt een exploitant fysiek tegen om een getal te veranderen voordat het je bord bereikt. Uitslagen alleen zullen het nooit in enige richting bewijzen, dus de eerlijke vraag is niet of manipulatie mogelijk is. De vraag is of een spel kan bewijzen dat het niet gebeurd is.

Wij maken een backgammonspel, dus we zijn hier niet neutraal. Juist daarom willen we dit fatsoenlijk beantwoorden, inclusief de ongemakkelijke stukken.

Waarom voelen de dobbelstenen op elke site gestuurd?

Omdat de variantie in backgammon meedogenloos is en het menselijk geheugen scheef staat. Twee stenen vallen op zesendertig manieren; reeksen zijn geen storing, ze zijn een garantie, en ergens vanavond gooit een eerlijke server vier dubbels op rij tegen iemand die elke schijf goed speelde. Je herinnert je de 5-5 die je blot raakte. Je herinnert je niet de wonderworp die je vorige dinsdag redde. Verliezen blijven plakken, ontsnappingen verdampen, en na drie slechte partijen op rij worden de stenen persoonlijk. Ze worden ook persoonlijk aan een echt bord in een echt café. Vraag het iemand die veertig jaar houten schijven schuift.

En hier zit de val. Een gemanipuleerd spel zou precies hetzelfde voelen. Reeksen bewijzen niets in welke richting dan ook, dus als je bewijs is hoe de stenen aanvoelden, kun je een eerlijke server niet van een oneerlijke onderscheiden. Wij ook niet. Dat is geen verdediging van online dobbelstenen. Dat is nu juist hun probleem.

Zou een site echt zijn dobbelstenen kunnen sturen?

Technisch wel, en het zou niet eens moeilijk zijn. De server ziet het hele bord voordat hij werpt. Een exploitant die wilde bedriegen zou kunnen:

  • Een paar worpen per honderd kantelen op de momenten die het zwaarst wegen: de worp die raakt, de intrede vanaf de bar die mislukt, de dubbel die een verloren partij omdraait.
  • Partijen kunstmatig spannend houden, zodat sessies langer duren en verliezen aanvoelen als net-niet.
  • Stilletjes de kant bevoordelen waarin de exploitant belang heeft.
  • Dat zo zelden doen dat de stenen nog steeds elke statistische toets doorstaan die een speler ooit kan uitvoeren.

We beweren niet dat een bepaalde site dit doet. We zeggen dat de architectuur het toelaat. Een gesloten server is een afgesloten kamer: de exploitant werpt in het geheim, meldt een getal en vraagt je erop te vertrouwen. Van buiten de deur zien eerlijke en oneerlijke exploitanten er identiek uit.

Bewijst een gecertificeerde generator niet dat de stenen eerlijk zijn?

Lees wat dat certificaat werkelijk dekt. Een laboratorium test een generator: een algoritme op de testbank dat miljoenen getallen produceert die statistische controles doorstaan. Dat certificeert het onderdeel. Het zegt niets over de bezorging, dus over de vraag of het getal dat jouw bord bereikte van die generator kwam, op dat moment, onveranderd onderweg. Een geijkte weegschaal in het magazijn bewijst niet dat jouw brood daarop gewogen is.

Certificering is bovendien een momentopname. Draaiende servers worden voortdurend opnieuw uitgerold, en het codepad tussen de generator en jouw partij blijft veranderen lang nadat het laboratorium naar huis is. Een gecertificeerde generator beantwoordt dus een vraag die niemand echt stelde. De vraag die telt is niet of er ergens in het gebouw goede stenen bestaan. Het is of jouw partij ze kreeg, bij elke worp, vanavond.

Wat verandert commit-reveal nu echt?

Het verplaatst eerlijkheid van belofte naar bewijs. Voordat een partij begint trekt de server een geheim zaad en publiceert de vingerafdruk ervan, een SHA-256-hash die de toezegging heet. Elke worp in de partij wordt daarna uit dat zaad afgeleid, één HMAC-SHA256-berekening per worp, op volgorde. Als de partij eindigt onthult de server het zaad.

Nu kan iedereen twee dingen nagaan. Hash het onthulde zaad: het moet overeenkomen met de toezegging die vóór de eerste zet werd gepubliceerd. Herbereken de worpen: ze moeten overeenkomen met elk getal dat op het bord verscheen. Had de server ook maar één steen veranderd nadat hij jouw stelling zag, dan zou de rekensom niet kloppen. Manipulatie houdt op een vermoeden te zijn dat je niet kunt toetsen en wordt een leugen die je kunt betrappen.

Dobbelstenen die vóór de partij op slot gingen, kunnen niet op die partij reageren.

Dat is de kern. De nuttige soort manipulatie is reactief: de blot zien, de raker gooien. Commit-reveal ontneemt de server zijn ogen, want de hele reeks lag vast vóór de openingszet en elke ingreep na de toezegging is wiskundig aantoonbaar. Wat het niet doet, is de stenen vriendelijk maken. De reeks was eerlijk, niet barmhartig. Je zult nog steeds op de bar zitten op het slechtst denkbare moment, en nu kun je bewijzen dat het eerlijk was.

Hoe verifieer je een partij in de praktijk?

Zo hebben we het in Orion gebouwd. Elke partij op onze servers draagt een toezegging die vóór de eerste worp is gedaan, de server valideert elke zet bij de bron, en het controleren van een afgeronde partij kost ongeveer een minuut:

Open de verificatie. Ga naar orion.arthea.ai/verify in een willekeurige browser. Niets te installeren, geen account aan te maken.

Voer het partijnummer in. Elke serverpartij in Orion heeft er een. Plak het erin.

Laat je browser rekenen. De pagina herberekent de toezegging en elke worp met Web Crypto, lokaal, in jouw browser. Ons woord doet niet mee aan de controle. Was er ook maar één getal veranderd, dan zou de herberekening dat zeggen.

De verificatie draait vandaag al. Het spel zelf is af, en de deur op orion.arthea.ai/go draagt de links naar de App Store en Google Play en toont altijd wat er op dit moment beschikbaar is. Hoe dan ook blijft het eerlijke antwoord staan. Ja, online backgammon kan doorgestoken kaart zijn. De oplossing is geen mooiere belofte. Het zijn dobbelstenen die hun rekenwerk laten zien.