provably fairdiceguide
Du verifiserer backgammonterninger med et løfte som gis før partiet og kontrolleres etter det. Orion publiserer en SHA-256-forpliktelse på et hemmelig frø før ditt første kast, avslører frøet når partiet er slutt, og lar nettleseren din regne om hvert kast på orion.arthea.ai/verify med bare partiets id. Stemmer alt, lå terningene fast før spillet begynte, og ingen, heller ikke vi, styrte dem.
Enhver spiller på nett kjenner følelsen. Du danser på baren i tre trekk. Motstanderen finner det ene tallet som både treffer og dekker. Ved et trebrett ville du trekke på skuldrene, for du så terningene forlate begeret. På nett blir du bedt om å stole på et tall du aldri så bli til. Den tilliten ville vi ikke be om. Vi ville gjøre den kontrollerbar.
Hva betyr commit-reveal egentlig?
Se for deg en forseglet konvolutt. Før du setter deg, skriver huset kveldens terninger inn i den, forsegler den og rekker deg et fotografi av seglet. Når spillingen er over, åpnes konvolutten. Stemmer innholdet med seglet, fantes kastene før partiet, og ingenting kunne plukkes fram underveis for å skade deg. Commit-reveal er den konvolutten, bygget av aritmetikk. Seglet er en SHA-256-hash, og ingen kan lage et annet frø som passer til det. Fire trinn bærer beviset fra serveren vår til nettleseren din.
Før partiet. Serveren trekker et hemmelig tilfeldig frø og hasher det med SHA-256. Den hashen er forpliktelsen, og den festes til partiet ditt før første kast. Fra det øyeblikket ligger hele partiets terninger allerede fast. Serveren har publisert et løfte den ikke lenger kan redigere.
Under partiet. Hvert kast utledes av frøet med HMAC-SHA256: inn går frøet og kastets nummer, ut kommer to terninger. Stillingen, stillingen i kampen, kuben, hvem som er i ferd med å vinne: ingenting av det går inn i beregningen. Serveren velger ikke kast. Den leser opp en liste den bandt seg til før du spilte.
Når partiet er slutt. Frøet avsløres og lagres sammen med partiets protokoll. Det er konvoluttåpningen. Hvem som helst kan hashe det avslørte frøet og sammenligne med forpliktelsen som ble publisert før første trekk, og de to må være identiske.
Verifiser selv. Åpne orion.arthea.ai/verify i hvilken som helst nettleser og skriv inn partiets id. Siden regner om alt lokalt med Web Crypto, kryptografien som er innebygd i selve nettleseren: først SHA-256 av det avslørte frøet mot den opprinnelige forpliktelsen, deretter hvert kast i partiet, terning for terning. Ingen konto, ingen app, omtrent ett minutt.
En fullstendig treff slår fast tre fakta på én gang:
- Det avslørte frøet hasher til nøyaktig den forpliktelsen som ble publisert før første kast
- Hvert kast i partiet utledes av det frøet via HMAC-SHA256, så ingenting er kastet om eller byttet ut
- Terningene ble aldri tilpasset stillingen, stillingen i kampen eller spilleren
Hva ville et avvik bevise?
Et avvik ville ikke være en visningsfeil. Det ville være et bevis. Hasher ikke det avslørte frøet til forpliktelsen, ble terningene endret etter at partiet begynte. Faller ett eneste kast på HMAC-kontrollen, var terningene du så ikke de terningene det ble forpliktet til. Begge feilene er bevis på manipulasjon som hvem som helst kan gjenskape fra den samme protokollen, på hvilken som helst maskin, for alltid.
Og derfor burde du aldri se ett. Forpliktelsen publiseres først, før en eneste brikke beveger seg. Et hus som ville rigge dette partiet, måtte publisere beviset for sin egen rigging på forhånd og deretter rekke hver spiller verktøyet til å finne det. Vi ber deg ikke tro at vi er ærlige. Vi bygde systemet slik at du slipper.
Ingen kan sikte et kast som ble forseglet før partiet begynte.
Hvis terningene beviselig er rettferdige, hvorfor slår jeg likevel dårlig?
Fordi rettferdige terninger fortsatt er terninger. Du blir stengt inne på baren. Du trenger hva som helst annet enn 2-1, og så kommer 2-1. Over tusenvis av partier flater tallene ut mot den sanne fordelingen, men én kveld lover ingenting. Det verifiseringen fjerner, er spørsmålet under irritasjonen. Det mirakelkastet lå fast før noen av dere rørte en brikke, og det siktet ikke på deg. Å vite det gjør ikke kastet mykere. Men det lar deg slutte å granske universet og vende tilbake til stillingen.
Terningene er den høyeste mistanken, men ikke den eneste. Den samme serveren som binder seg til kastene dine, validerer også hvert trekk ved kilden, så en modifisert klient kan ikke smugle en brikke dit reglene ikke tillater. Rettferdige kast og lovlige trekk kommer fra samme myndighet.
Kan jeg prøve verifiseringen allerede nå?
Ja. Verifiseringen er i drift allerede i dag på orion.arthea.ai/verify og inneholder en demoavspilling, så du kan se en full verifisering kjøre på et eksempelparti uten å installere noe og uten å opprette konto. 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å.