GAMEHOUSE

Case-sivustot

Provably fair: näin tarkistat tuloksen

Provably fair selitettynä: server seed, client seed ja nonce, tuloksen tarkistus askel askeleelta ja laskuesimerkki, jonka voit toistaa itse.

Punaisena valaistu näppäimistö ja koodia kannettavan ruudulla

Provably fair tarkoittaa, että sivusto lukitsee tuloksen ennen kierrosta niin, että et voi epäillä sen muuttuneen jälkeenpäin, ja että voit itse laskea tuloksen uudelleen. Käytännössä tarvitaan kolme osaa: server seed, client seed ja nonce. Alla on selitys, tarkistus askel askeleelta ja laskuesimerkki.

Mitä provably fair tarkoittaa?

Perinteisessä kasinossa sinun on luotettava siihen, että tulos on satunnainen. Provably fair vaihtaa luottamuksen laskentaan: sivusto sitoutuu tulokseen etukäteen salatulla tiivisteellä, ja kierroksen jälkeen paljastettu tieto osoittaa, ettei tulosta muutettu.

Server seed, client seed ja nonce

HypeDropin selityksen mukaan järjestelmä koostuu kolmesta osasta:

  • Server seed on sivuston luoma luku. Ennen peliä näet vain sen tiivisteen (hash). Alkuperäinen luku paljastuu, kun kierros on pelattu.
  • Client seed on selaimestasi tuleva salalause. Näet sen ennen peliä, ja voit vaihtaa sen.
  • Nonce eli play count kasvaa aina pelikerran jälkeen. Se takaa, että saman seed-parin tulos on eri joka kerralla.

Näiden yhdistelmästä lasketaan tulos, ja siksi sivusto ei voi valita tulosta sinun client seedisi tietämättä, eikä sinä voi valita sitä sivuston server seedin tietämättä.

Miten tuloksen voi tarkistaa?

  1. Avaa sivuston provably fair -osio tai profiilin seedhistoria. Key-Dropilla asiakas- ja palvelinsiemenen historia löytyy omasta profiilista.
  2. Vaihda client seed ja pyydä sivustoa paljastamaan edellinen server seed. Sivusto vaihtaa tällöin server seedin uuteen.
  3. Laske paljastetusta server seedistä tiiviste (yleensä SHA-256) ja vertaa sitä tiivisteeseen, joka näytettiin ennen pelaamista. Jos ne ovat samat, seediä ei ole muutettu.
  4. Laske tulos sivuston julkaisemalla kaavalla käyttäen server seediä, client seediä ja noppaa.
  5. Vertaa laskettua lukua siihen, mitä sivusto näytti. Jos ne täsmäävät, kierros oli oikea.

Tarkka kaava vaihtelee sivustoittain, ja se on kuvattu sivuston omalla provably fair -sivulla. Sivustoilla on usein oma tarkistin, esimerkiksi 500 Casinolla on omat sivunsa ruletille ja dueleille, ja Gamdomilla on SHA256-ketju sekä tarkistuskoodi eri peleille.

Laskuesimerkki

Seuraava esimerkki on havainnollistus, ei minkään sivuston oikea kaava. Se käyttää yleistä rakennetta: HMAC-SHA256, jossa avaimena on server seed ja viestinä client seed ja nonce kaksoispisteellä erotettuna.

OsaArvo
Server seeda3f9c2d17b
Server seedin SHA-256-tiiviste (näytetään ennen peliä)53e769abe3acd4c92d83f8949c5e51e495173471424cb9a7b68b725972245d4b
Client seedminunsiemen
Nonce1
HMAC-SHA256 (server seed, “minunsiemen:1”)90a93f6e219e9f178df3acb32bc0f161f3dbab9eaf941bd18564c9fa148ca0cb

Otetaan tuloksen ensimmäiset kahdeksan heksadesimaalimerkkiä, 90a93f6e. Ne vastaavat lukua 2 427 010 926. Jaetaan se luvulla 16 potenssiin 8, eli 4 294 967 296, jolloin saadaan 0,565. Kerrottuna sadalla tulos on 56,5 prosentin kohdalla. Jos sivusto esimerkiksi antaisi voiton lukuvälillä 0-50, tämä kierros olisi hävitty.

Voit toistaa laskun itse Pythonilla: hmac.new(b"a3f9c2d17b", b"minunsiemen:1", hashlib.sha256).hexdigest(). Sivustoilla luku muunnetaan lopulta esineeksi tai kertoimeksi omalla taulukollaan, ja sekin on osa tarkistusta.

Miksi client seedin vaihtaminen on tärkeää?

Jos client seed pysyy samana ja nonce kasvaa, tulokset ovat edelleen erilaisia, mutta seed-pari on ennalta tiedossa. Sivustot, kuten Clash.gg, suosittelevat siksi asiakassiemenen kiertoa: kun vaihdat seedin, sivusto paljastaa edellisen server seedin ja aloittaa uuden. Vaihtamalla seedin saat tarkistettavaksi kaikki aiemmat tulokset yhdellä kertaa. Hyvä tapa on vaihtaa seed aina, kun haluat tarkistaa istunnon: kirjaa tiiviste ennen pelaamista, vaihda seed lopuksi ja laske tulokset paljastetulla server seedillä.

Miksi sivustoilla on erilaisia todennustapoja?

Perusperiaate on kaikilla sama: sitoutuminen etukäteen ja tarkistus jälkikäteen. Toteutus vaihtelee. Osa käyttää seed-paria ja noncea, osa laskuria ja salaisuutta, ja Gamdom käyttää tiivisteketjua, jossa jokainen tiiviste tuottaa edellisen. Ketjussa kunkin pelin viimeinen tiiviste on julkaistu, joten pelaaja voi tarkistaa, että jokaisen kierroksen tiiviste tuottaa edellisen. Kaavojen erot tarkoittavat, että samaa tarkistuslaskua ei voi käyttää kaikkialla, vaan jokaisen sivuston oma selitys on luettava erikseen.

Mitä provably fair ei todista

Se todistaa, ettei tulosta muutettu sinun panoksesi jälkeen. Se ei kerro, ovatko pelin kertoimet sinulle edulliset, eikä sitä, maksaako sivusto voitot ulos. Tulosten jakautuminen kotelossa määräytyy kotelon sisällöstä. Valven omien koteloiden todennäköisyydet ovat julkisia ja ne ovat kaikille samat: Mil-Spec 79,92 %, Restricted 15,98 %, Classified 3,20 %, Covert 0,64 % ja harvinainen erikoisesine 0,26 %. Sivustojen omat kotelot ovat eri asia, ja niiden todennäköisyydet on luettava kotelon omalta sivulta.

Tärkeintä on myös, että tarkistat oikeasti. Moni sivusto kirjoittaa “provably fair”, mutta jos et ole koskaan laskenut tulosta itse, et tiedä, toimiiko kaava.

Eri sivustot käytännössä

  • Key-Drop: jokainen avaus on tarkistettavissa profiilin seedhistoriasta.
  • HypeDrop: client seed, server seedin tiiviste ja play count. Järjestelmän on auditoinut iTechLabs.
  • Gamdom: SHA256-ketju ja tarkistuskoodi useille peleille.
  • CSGO500: omat provably fair -sivut esimerkiksi ruletille ja dueleille.
  • Clash.gg: palvelinsiemenen SHA256-tiiviste näytetään ennen peliä, asiakassiemenen voi vaihtaa ja sivu suosittelee sen automaattista kiertoa. Sivun blogi on raportoinut myös battle-tilan häiriöstä, jossa osa pudotuksista arvottiin väärällä siemenellä.
  • CSGOLuck: tulos lasketaan HMAC-SHA256:lla laskurista, palvelimen salaisuudesta ja asiakkaan salaisuudesta, ja palvelimen salaisuuden tiiviste näkyy etukäteen.
  • CSGORoll: oma provably fair -sivu, ja sivun blogin mukaan iTechLabs on tarkastanut menetelmät.
  • CSGOEmpire: todennus kaikissa pelimuodoissa paitsi ottelupanostuksessa.
  • Hellcase ja Skin.Club: tulos tarkistetaan omalla työkalulla, Hellcasessa profiilin Provably Fair -välilehdeltä.
  • DatDrop: oma provably fair -sivu, jonka mukaan jokainen pudotus ja battle on tarkistettavissa.

Battlejen tasapelit ratkaistaan usein samalla luvulla, ks. case battle. Koteloiden todennäköisyydet löytyvät koteloiden sivuilta.

Usein kysyttyä

Todistaako provably fair, että peli on kannattava?

Ei. Se todistaa vain, että tulos oli lukittu ennen panosta eikä sitä muutettu jälkikäteen. Pelin kertoimet ja todennäköisyydet ovat erillinen asia.

Voiko sivusto vaihtaa server seedin kesken kaiken?

Sivusto näyttää ennen peliä server seedin tiivisteen. Jos paljastettu alkuperäinen seed ei tuota samaa tiivistettä, sivusto on muuttanut sitä.