News

Sådan kontrollerer du, at dine terninger var fair

Hvert parti i Orion forsegler sine terninger med SHA-256 før første kast. Sæt partiets id ind på orion.arthea.ai/verify, så genberegner browseren alt.

provably fairdiceguide

Du verificerer backgammonterninger med et løfte, der gives før partiet og kontrolleres efter det. Orion offentliggør et SHA-256-tilsagn på et hemmeligt frø før dit første kast, afslører frøet når partiet slutter, og lader din browser genberegne hvert kast på orion.arthea.ai/verify med blot partiets id. Hvis alt stemmer, lå terningerne fast, før spillet begyndte, og ingen, heller ikke vi, styrede dem.

Enhver spiller online kender følelsen. Du danser på baren i tre ture. Din modstander finder det ene tal, der både rammer og dækker. Ved et træbræt ville du trække på skuldrene, for du så terningerne forlade bægeret. Online bliver du bedt om at stole på et tal, hvis tilblivelse du aldrig så. Den tillid ville vi ikke bede om. Vi ville gøre den kontrollerbar.

Hvad betyder commit-reveal egentlig?

Forestil dig en forseglet kuvert. Før du sætter dig, skriver huset aftenens terninger ind i den, forsegler den og rækker dig et fotografi af seglet. Når der er spillet færdigt, åbnes kuverten. Hvis indholdet stemmer med seglet, fandtes kastene før partiet, og intet kunne vælges undervejs for at skade dig. Commit-reveal er den kuvert, bygget af aritmetik. Seglet er en SHA-256-hash, og ingen kan fremstille et andet frø, der passer til det. Fire trin bærer beviset fra vores server til din browser.

Før partiet. Serveren trækker et hemmeligt tilfældigt frø og hasher det med SHA-256. Den hash er tilsagnet, og den hæftes på dit parti før første kast. Fra det øjeblik ligger hele partiets terninger allerede fast. Serveren har offentliggjort et løfte, den ikke længere kan redigere.

Under partiet. Hvert kast udledes af frøet med HMAC-SHA256: ind går frøet og kastets nummer, ud kommer to terninger. Stillingen, stillingen i matchen, kuben, hvem der er ved at vinde: intet af det indgår i beregningen. Serveren vælger ikke kast. Den læser en liste op, som den bandt sig til, før du spillede.

Når partiet slutter. Frøet afsløres og gemmes sammen med partiets protokol. Det er kuvertåbningen. Enhver kan hashe det afslørede frø og sammenligne med tilsagnet, der blev offentliggjort før første træk, og de to skal være identiske.

Verificér selv. Åbn orion.arthea.ai/verify i en hvilken som helst browser og indtast partiets id. Siden genberegner alt lokalt med Web Crypto, kryptografien der er indbygget i selve browseren: først SHA-256 af det afslørede frø mod det oprindelige tilsagn, derefter hvert kast i partiet, terning for terning. Ingen konto, ingen app, omkring et minut.

En fuldstændig match fastslår tre kendsgerninger på én gang:

  • Det afslørede frø hasher til præcis det tilsagn, der blev offentliggjort før første kast
  • Hvert kast i partiet udledes af det frø via HMAC-SHA256, så intet er kastet om eller byttet ud
  • Terningerne blev aldrig tilpasset stillingen, stillingen i matchen eller spilleren

Hvad ville en uoverensstemmelse bevise?

En uoverensstemmelse ville ikke være en visningsfejl. Den ville være et bevis. Hvis det afslørede frø ikke hasher til tilsagnet, blev terningerne ændret efter partiets start. Hvis blot ét kast falder på HMAC-kontrollen, var de terninger, du så, ikke dem, der blev afgivet tilsagn om. Begge fejl er bevis på manipulation, som enhver kan gengive ud fra den samme protokol, på enhver maskine, for altid.

Og derfor burde du aldrig se en. Tilsagnet offentliggøres først, før en eneste brik bevæger sig. Et hus, der ville rigge dette parti, skulle på forhånd offentliggøre beviset for sin egen rigning og derefter række hver spiller værktøjet til at finde det. Vi beder dig ikke om at tro, at vi er ærlige. Vi byggede systemet, så du slipper.

Ingen kan sigte et kast, der blev forseglet, før partiet begyndte.

Hvis terningerne beviseligt er fair, hvorfor slår jeg så stadig dårligt?

Fordi fair terninger stadig er terninger. Du bliver lukket inde på baren. Du får brug for hvad som helst andet end 2-1, og så kommer der 2-1. Over tusindvis af partier flader tallene ud mod den sande fordeling, men én aften lover ingenting. Det, verifikationen fjerner, er spørgsmålet under irritationen. Det mirakelkast lå fast, før nogen af jer rørte en brik, og det sigtede ikke på dig. At vide det gør ikke kastet blødere. Men det lader dig holde op med at revidere universet og vende tilbage til stillingen.

Terningerne er den højeste mistanke, men ikke den eneste. Den samme server, der binder sig til dine kast, validerer også hvert træk ved kilden, så en modificeret klient ikke kan liste en brik hen, hvor reglerne ikke tillader det. Fair kast og lovlige træk kommer fra samme myndighed.

Kan jeg prøve verifikationen allerede nu?

Ja. Verifikationen kører allerede i dag på orion.arthea.ai/verify og indeholder en demogengivelse, så du kan se en fuld verifikation køre på et eksempelparti uden at installere noget og uden at oprette en konto. Døren på orion.arthea.ai/go bærer links til App Store og Google Play og viser altid, hvad der er tilgængeligt lige nu.