Noppien reiluus: näin palvelinpuolen RNG oikeasti toimii

Jokainen verkossa backgammonia pelannut on jossain vaiheessa kirjoittanut hakukenttään saman kysymyksen jossain muodossa: ovatko nopat huijattuja? Kysymys ansaitsee kunnollisen vastauksen eikä markkinointiosaston olankohautusta. Tässä on tekninen versio: mistä digitaaliset nopat tulevat, mikä voi oikeasti mennä pieleen ja miten kunnolla rakennettu peli vie heitetyn luvun kaikkien ulottumattomiin rakenteella eikä lupauksella.

Missä digitaalinen noppa syntyy

Fyysisen nopan satunnaistaa fysiikka: pyörähdys, kimmahdus, veran karvat. Digitaalinen noppa on luku, jonka tuottaa satunnaislukugeneraattori (RNG), ohjelmisto (usein laitteiston syöttämä), jonka ainoa tehtävä on antaa arvoja, joita kukaan ei voi ennustaa eikä toistaa.

Kaikki generaattorit eivät ole samanarvoisia. Yksinkertainen näennäissatunnainen generaattori, sellainen joka sekoittaa soittolistan, tuottaa jonon, jonka sen aloitusarvo (siemen) määrää täysin. Se joka tuntee siemenen ja algoritmin, tuntee jokaisen ”satunnaisen” luvun, jonka generaattori tulee koskaan antamaan. Soittolistalle se riittää; pelissä, jossa on jotain panoksena, se on käyttökelvoton. Vakavasti otettavat pelit käyttävät salausvahvoja generaattoreita (CSPRNG), joita syötetään jatkuvasti uudella entropialla oikeasta maailmasta: laitteiston kohinalla, ajoituksen värähtelyllä, käyttöjärjestelmän tapahtumien kaaoksella. Niiden ratkaiseva ominaisuus on juuri se, jota noppapeli tarvitsee: edes hyökkääjä, joka on nähnyt jokaisen aiemman tuloksen, ei pysty ennustamaan seuraavaa.

Tärkeämpi kysymys: missä se pyörii?

Tässä on se kohta, jota useimmat pelaajat eivät tule kysyneeksi. Sillä on vähemmän väliä, mikä generaattori heittosi tuottaa, kuin sillä, missä se pyörii. Jos nopat syntyvät pelaajan omalla laitteella, peli on rakenteellisesti rikki riippumatta siitä, miten hyvä algoritmi on: muokattu sovellus voi heittää uudelleen kunnes tulos miellyttää, kajota tulokseen muistissa tai kurkistaa arvoja ennen kuin se sitoutuu siirtoon. Asiakaspuolen nopat ovat lupaus, ja lupaukset saa paikattua pois sovelluksesta.

Oikea rakenne on palvelinvaltainen: heitto tapahtuu pelipalvelimella, ympäristössä johon minkään pelaajan laitteisto ei ylety. Laitteesi vastaanottaa heiton, joka on jo olemassa, ja vain animoi sen. Meidän pelissämme tämä ulottuu noppia pidemmälle, kuten kerromme reilun pelin sivulla: palvelin tarkistaa jokaisen yritetyn siirron sääntöjä vasten, ja molemmat sovellukset vertaavat lautaansa jatkuvasti sormenjälkeen, jonka palvelin lähettää joka päivityksen mukana. Ei ole hetkeä, jona pelaajan laitteeseen luotettaisiin missään merkityksellisessä asiassa.

Tuo yksi suunnitteluratkaisu poistaa kokonaisia huijausluokkia kerralla. Kukaan ei voi heittää uudelleen, koska heitto edeltää vuoroa. Kukaan ei voi lukea seuraavaa lukua omalta laitteeltaan, koska sitä ei ole siellä luettavaksi. Eikä kukaan voi hiljaa taivuttaa lautaa, koska lauta, joka on eri mieltä kuin palvelimen lauta, heitetään pois ja tahdistetaan uudelleen yhden edestakaisen viestin aikana.

Mitä ”todistettavasti reilu” oikeasti tarkoittaa

Vuosien ajan alan vastaus kysymykseen noppien rehellisyydestä oli sertifikaatti: laboratorio tarkastaa generaattorin kerran ja myöntää leiman, johon sinua pyydetään luottamaan. Mielestämme ansaitset jotain leimaa vahvempaa. Todistettavasti reilu tarkoittaa, ettei sinun tarvitse luottaa meihin lainkaan, koska jokainen noppa kantaa oman todisteensa. Menetelmä on etukäteen annettu sitoumus ja sen päälle vuoro vuorolta etenevä vaihto, ja se näyttää tältä: kummallekin pelaajalle nippu sinetöityjä lappuja ja meiltä sinetöity kirjekuori:

  • Lukitus. Ennen ensimmäistä heittoa palvelin luo salaisen siemenen ja ojentaa sinulle siitä kryptografisen sormenjäljen eli tiivisteen, kun lopputulos on vielä tuntematon. Samalla hetkellä kummankin pelaajan sovellus sinetöi oman numeroidun lappunippunsa ja julkaisee siitä vain nipun sormenjäljen. Kaikki kolme sormenjälkeä jäädytetään yhteen ja samaan tallenteeseen, joten mitään niistä ei voi jälkikäteen vaihtaa toiseen, eikä yksikään paljasta sitä, minkä se kätkee.
  • Vaihto. Noppia ei ole päätetty etukäteen. Ne rakennetaan yksi kerrallaan kiinteällä, julkisella kaavalla, ja jokainen niistä tarvitsee lapun molemmista nipuista. Joka vuorolla vuorossa oleva pelaaja julkaisee seuraavan lappunsa ensin, vastustaja vapauttaa omansa vasta kun tuo on lukittu, ja noppa lasketaan viimeisenä molemmista lapuista ja sinetöidystä siemenestä. Kunkin lapun sinetti johdetaan nipun seuraavasta lapusta, ja juuri siksi lappua ei voi vaihtaa jälkikäteen. Ja koska viimeinen tuntematon syöte on aina laudan toisella puolella, kukaan, mekään emme, voi tietää noppaa niin kauan kuin jokin sitä vielä muuttava päätös on auki.
  • Tarkistus. Kun peli päättyy, palvelin avaa kirjekuorensa ja näyttää sinulle siemenensä, ja koko tallenne julkaistaan. Lasket siemenestä tiivisteen ja varmistat, että se täsmää alussa saamaasi sormenjälkeen, mikä todistaa ettei sitä koskaan vaihdettu; tarkistat, että jokainen lappu kuuluu siihen nippuun, johon sen puoli sitoutui; sitten ajat saman julkisen kaavan ja johdat jokaisen heiton itse uudelleen. Jos yhtäkin noppaa olisi tönäisty, uudelleenlaskenta ei täsmäisi, eikä kajoamista voisi kiistää.

Siinä on koko ero sen välillä, että pyydämme luottamaan sertifikaattiin, ja sen, että voit tarkistaa itse. Sinun ei tarvitse uskoa noppiemme olevan rehellisiä; voit tarkistaa ne, yksi päättynyt peli kerrallaan, matematiikalla jonka kuka tahansa voi ajaa. Reilun pelin sivu kantaa työkalun, joka tekee juuri tämän: anna sille päättynyt peli ja katso, kuinka jokainen heitto johdetaan silmiesi edessä uudelleen julkaistusta tallenteesta. Ainoa, mitä julkinen sivu ei voi tehdä, on vahvistaa että tallenne on sinun ottelusi, sillä vain sinun laitteesi säilytti kopion niistä sormenjäljistä, jotka se lukitsi ennen peliä; se viimeinen tarkistus asuu sovelluksessa.

Yksi rehellinen huomio, jota todiste ei muuta: todistettavasti reilut nopat eivät silti ole tasaisia, kohteliaita, vuorotellen tulevia noppia. Varmennettava siemen tuottaa kasaumia, putkia ja kuivia kausia täsmälleen sillä tiheydellä, jonka todennäköisyys ennustaa. Virta, jossa ei olisi putkia lainkaan, olisi se epäilyttävä. Aito satunnaisuus on kasautuvaa, ja juuri siksi se tuntuu niin usein huijatulta.

Miksi reilut nopat tuntuvat huijatuilta

Mikä tuo meidät psykologiaan, sillä tunne huijatuista nopista on todellinen silloinkin, kun nopat eivät ole. Työn tekee kolme hyvin dokumentoitua vinoumaa:

Valikoiva muisti. Muistat sen illan, jona tanssit barilla neljä vuoroa peräkkäin. Et muista niitä satoja kertoja, jolloin pääsit sisään heti. Kivuliaat tulokset tallentuvat vahvemmin, ja jokainen kokenut pelaaja kantaa mukanaan yksityistä vääryyksien museota ilman minkäänlaista arkistoa tavallisesta.

Pienten lukujen laki. Ihminen odottaa pikkuruisten otosten näyttävän pitkän aikavälin keskiarvoilta. Kolmessakymmenessäkuudessa heitossa jokaisen yhdistelmän ”pitäisi” tulla suunnilleen kerran, mutta todelliset 36 heiton otokset ovat villin epätasaisia: osa luvuista puuttuu kokonaan ja osa tulee kolmeen kertaan. Yksi backgammon-ilta on pikkuruinen otos. Sitä hallitsee varianssi, ja varianssi tuntuu henkilökohtaiselta.

Tappion epäsymmetria. Laukaus, joka osuu sinuun 17 kertaa 36:sta, tuntuu epäoikeudenmukaisuudelta; ne 19 kertaa 36:sta, jolloin se ohittaa, eivät tunnu miltään. Koska backgammon ratkoo jatkuvasti 30–70 prosentin tapahtumia, ”mahdottomia” tuloksia riittää tasaiseen tahtiin, ja ne saapuvat täsmälleen sillä tiheydellä kuin ovat mahdollisia.

Vastalääke on tuntea oikeat luvut. Mikä tahansa tietty luku esiintyy 11 heitossa 36:sta. Tupla tulee joka kuudennella heitolla. Kuuden pipin päässä oleva blotti saa osuman lähes joka toinen kerta. Todennäköisyyden perusteiden oppaamme levittää koko taulukon esiin, ja kun nuo luvut ovat päässä, useimmat ”huijatut” hetket luokittelevat itsensä uudelleen aivan tavallisiksi tiistaiksi.

Kannustinkysymys

Vielä yksi rehellinen kohta: backgammonin ylläpitäjällä ei ole vinoista nopista mitään voitettavaa ja kaikki menetettävää. Kilpapelaajat, ne jotka jäävät vuosiksi, ovat juuri niitä ihmisiä, jotka seuraavat todennäköisyyksiä ja huomaavat poikkeamat. Rating-järjestelmät toimivat samalla julkisena tarkastusjälkenä: jos nopat suosisivat jotakuta järjestelmällisesti, rating-jakaumat liukuisivat mitattavilla tavoilla. Reilut nopat eivät ole hyve, jota esitämme, vaan ainoa vakaa liiketoimintamalli, joka taitopelillä on.

Näin vakuutat itsesi

Älä usko yhdenkään ylläpitäjän sanaa, älä meidänkään. Opettele perustaajuudet todennäköisyysoppaasta ja seuraa sitten omia pelejäsi nuo luvut mielessä: sisääntulon mahdollisuudet kahden tehdyn pisteen lautaa vastaan, tuplien tiheys pitkän istunnon aikana, osumaprosentit suorissa laukauksissa. Rehelliset nopat lähestyvät taulukon ennusteita huomattavan nopeasti. Ja jos haluat rakenteelliset yksityiskohdat, sitoumukset ja vuoro vuorolta etenevän vaihdon, palvelimella heitetyt nopat, siirtokohtaisen laudan varmennuksen ja Glicko-2-vastinparit, reilun pelin sivu on täysi selvitys siitä, miten pöytämme on rakennettu, varmennustyökalu mukaan lukien. Sen jälkeen pelit ratkaisee se muuttuja, jonka kuuluukin ratkaista: se, miten hyvin pelaat saamasi heitot. Strategiaoppaat ovat juuri sitä varten.

Vie opit käytäntöön

Nopein tapa oppia backgammonia on pelata sitä. Pelaa oikeita pelaajia vastaan suoraan selaimessasi: ilmaiseksi, ilman asennusta ja rekisteröitymistä.

Pelaa backgammonia ilmaiseksiSelaimessa · ei asennusta