RustGamblingReviews

Oppaat

Miten provably fair toimii Rust-sivustoilla ja miten tarkistat heittosi

Server seed -tiivisteet, client seedit, noncet ja HMAC-SHA256 selkokielellä, toistettavissa oleva esimerkkilasku ja vaiheittainen rutiini minkä tahansa Rust-skinisivuston heiton tarkistamiseen.

Kaksi Rust-pelaajaa yönäkölaseissa tähtäämässä laserkohdistimellisilla kivääreillä pimeässä

Kaikki kymmenen rankingimme sivustoa listaavat pelinsä provably fair -peleiksi. Termillä on tarkka merkitys, ja sen takana oleva tarkistus on jotain, minkä voit ajaa itse ilmaisella tiivistetyökalulla tai muutamalla koodirivillä. Hyvin harva pelaaja ajaa sitä koskaan. Tämä opas selittää, mitä järjestelmä todistaa, mitä se jättää pois ja miten heitto tarkistetaan alusta loppuun.

Lyhyesti: ennen kuin panostat, sivusto lukitsee salaisen arvon ja näyttää sinulle sen sormenjäljen. Lisäät oman syötteesi. Vetojen jälkeen sivusto paljastaa salaisuuden, ja voit varmistaa, että sormenjälki täsmää ja että jokainen tulos seuraa syötteistä. Jos luvut täsmäävät, sivusto ei voinut muuttaa lopputulosta nähtyään vetosi.

Ongelma, jonka provably fair ratkaisee

Skinisivustolla palvelin päättää jokaisen tuloksen. Kun avaat casen, heität kolikkoa tai odotat crash-kerrointa, katsot animaatiota luvusta, joka tuotettiin koneella, jota et voi tarkastaa. Ilman jonkinlaista todistetta luotat siihen, ettei ylläpitäjä hiljaa tökkää heittoja sinua vastaan, kun panoksesi on suuri.

Lisensoidut verkkokasinot vastaavat tähän yleensä viranomaisvalvonnalla ja satunnaislukugeneraattoriensa kolmannen osapuolen auditoinneilla. Useimmat skinisivustot nojaavat sen sijaan kryptografiseen lähestymistapaan. Sillä on yksi suuri etu pelaajalle: sinun ei tarvitse luottaa auditoijaan, koska voit toistaa laskennan omalla koneellasi.

Ajatusta kutsutaan sitoumusmenetelmäksi. Kuvittele, että sivusto kirjoittaa salaisuutensa kortille, sulkee kortin kirjekuoreen ja ojentaa kirjekuoren sinulle ennen pelin alkua. Se ei voi vaihtaa korttia myöhemmin ilman että huomaat, etkä sinä voi lukea korttia etukäteen.

Kolme syötettä: server seed, client seed ja nonce

Lähes kaikki Rust-sivustojen provably fair -järjestelmät käyttävät samoja aineksia. Nimet vaihtelevat hieman sivustojen välillä, mutta roolit pysyvät samoina.

Server seed

Sivuston generoima pitkä satunnaismerkkijono. Se pysyy salaisena pelaamisesi ajan, koska kuka tahansa sen tunteva voisi ennustaa jokaisen tuloksen. Sen sijaan näet sen tiivisteen, yleensä SHA-256:lla tuotetun. Tiiviste on yksisuuntainen sormenjälki. Sama syöte antaa aina saman 64-merkkisen ulostulon, yhden merkin vaihtaminen syötteessä muuttaa ulostulon täysin, eikä tiivisteestä ole käytännössä mahdollista päätellä taaksepäin seediä.

Client seed

Merkkijono, joka tulee sinun puoleltasi. Sivustot generoivat sinulle oletuksen, ja useimmat antavat muokata sitä reiluus- tai asetuspaneelissa. Sen tehtävä on estää sivustoa valitsemasta nimenomaan sinulle huonoa server seediä. Sivusto sitoutui seediinsä ennen kuin tiesi, mitä kirjoittaisit, joten se ei voinut säätää toista toista vastaan.

Nonce

Laskuri, joka alkaa nollasta tai ykkösestä ja kasvaa yhdellä jokaisella samalla seed-parilla tekemälläsi vedolla. Sen ansiosta voit käyttää yhtä server seediä ja yhtä client seediä satoihin vetoihin ja silti saada joka kerralla tuoreen tuloksen.

Kun haluat tarkistaa tuloksesi, pyydät sivustoa vaihtamaan (rotate) seedin. Se paljastaa vanhan server seedin selkotekstinä, näyttää uuden tiivisteen ja nollaa noncen. Kaikki vanhalla seedillä pelaamasi voidaan nyt todentaa.

Miten syötteistä tulee tulos

Yleisin resepti on HMAC-SHA256. HMAC on vakiotapa yhdistää salainen avain ja viesti tiivisteen tuottamiseksi. Useimmilla Rust-sivustoilla server seed on avain, ja viesti on client seed ja nonce yhdistettynä, usein kaksoispisteellä, kuten clientseed:nonce. Jotkin sivustot lisäävät kierrosnumeron tai pelitunnuksen, joten lue aina täsmällinen kaava sivuston omalta reiluussivulta.

Ulostulo on 64-merkkinen heksadesimaalijono. Sivusto muuttaa sitten osan siitä luvuksi välillä 0–1. Tyypillinen menetelmä ottaa ensimmäiset kahdeksan heksamerkkiä (32 bittiä), muuntaa ne kokonaisluvuksi ja jakaa luvulla 4 294 967 296, joka on 2 potenssiin 32. Tuo desimaaliluku kuvataan sitten peliin:

  • Dice ja upgrader: kerro 100:lla saadaksesi heiton väliltä 0,00–99,99 ja vertaa sitä sitten tavoitteeseen.
  • Ruletti: kerro pyörän paikkojen määrällä ja pyöristä alas paikan valitsemiseksi.
  • Caset: kerro casen lippujen kokonaismäärällä, joten skini, joka omistaa 1 % lipuista, voittaa 1 %:lla heitoista.
  • Crash: syötä luku kaavaan, joka muuttaa sen kertoimeksi house edge sisäänrakennettuna. Crash-strategiaoppaamme käy läpi tuon kaavan ja sen merkityksen cashout-tavoitteille.

Toistettavissa oleva esimerkkilasku

Alla olevat seedit on keksitty tätä esimerkkiä varten, joten voit tarkistaa laskumme millä tahansa HMAC-SHA256-laskimella.

  1. Server seed: example-server-seed-01. Sen SHA-256-tiiviste alkaa a5275da7ccca3f73. Se tiiviste on se, jonka sivusto näyttäisi sinulle ennen pelaamista.
  2. Client seed: my-own-client-seed. Nonce: 1. Viesti on siis my-own-client-seed:1.
  3. HMAC-SHA256 server seedillä avaimena ja tuolla viestillä syötteenä antaa tuloksen, joka alkaa 4cdcf221.
  4. Heksa 4cdcf221 on desimaalina 1 289 548 321. Jaettuna luvulla 4 294 967 296 se on noin 0,30025.
  5. 0–100 dice-asteikolla se on heitto 30,02. 15 paikan ruletin pyörällä 0,30025 kertaa 15 on noin 4,5, joka pyöristyy alas paikkaan 4 (ensimmäinen paikka lasketaan nollaksi).

Aja samat seedit nonce 2:lla, ja saat täysin erilaisen tiivisteen, joka alkaa 6486ccbd ja josta tulee noin 0,3927. Ensimmäisessä heitossa ei ole mitään, mikä kertoisi toisesta. Tuo riippumattomuus on koko ajatus: vetohistoriasta ei ole luettavissa kuviota, koska jokainen tulos on tuore tiiviste.

Näin tarkistat heiton itse, vaihe vaiheelta

Ensimmäinen täysi tarkistus vie aikansa. Sen jälkeen se on muutama minuutti kopiointia ja liittämistä. Tee se ensin pienellä saldolla, jotta tiedät prosessin ennen kuin tulos todella merkitsee sinulle jotain.

  1. Avaa reiluuspaneeli ennen vetoa. Se on yleensä linkitetty pelinäytöltä, alatunnisteesta tai profiiliasetuksista. Tallenna tiivistetty server seed jonnekin sivuston ulkopuolelle, esimerkiksi puhelimen muistiinpanoon tai kuvakaappaukseen.
  2. Aseta oma client seed. Korvaa oletus jollain, minkä kirjoitit itse. Hakkaa näppäimistöä. Sen ei tarvitse olla muistettava.
  3. Pelaa ja merkitse muistiin vedot, joista välität. Kirjoita ylös jokaisessa vedossa näkyvä nonce tai etsi se myöhemmin vetohistoriastasi.
  4. Vaihda seed. Sivusto paljastaa vanhan server seedin. Kopioi se.
  5. Tarkista sitoumus. Aja paljastettu server seed minkä tahansa SHA-256-työkalun läpi. Ulostulon on täsmättävä vaiheessa 1 tallentamaasi tiivisteeseen merkki merkiltä.
  6. Laske heitto uudelleen. Käytä HMAC-SHA256:ta paljastetulla server seedillä, client seedilläsi ja noncella, ja sovella sitten sivuston julkaisemaa muunnosta. PHP:ssa se on yksi hash_hmac-kutsu, ja Pythonin hmac-moduuli tekee saman parilla rivillä.
  7. Vertaa. Laskemasi luvun on tuotettava historiaasi kirjattu lopputulos.

Useimmat sivustot tarjoavat myös sisäänrakennetun verifioijan, johon liität seedit. Se on kätevä, mutta se pyörii ylläpitäjän omalla koodilla. Tarkistuksessa, joka ei riipu sivustosta lainkaan, käytä riippumatonta työkalua tai omaa skriptiäsi ainakin kerran.

Miksi vaihe 2 on tärkeä: jos et koskaan muuta oletus-client seediä, sivusto generoi molemmat seedit. Teoriassa se on voinut etsiä server seedin, joka tuottaa huonon putken juuri sitä client seediä vastaan. Oman client seedin valinta sen jälkeen, kun server seedin tiiviste on ruudulla, sulkee tuon aukon.

Jaetut pelit toimivat hieman eri tavalla

Yksinpelimuodot, kuten dice, upgrader ja yksittäiset case openingit, voivat pyöriä henkilökohtaisella seed-parillasi. Pelit, joissa moni pelaaja jakaa yhden tuloksen, kuten jackpot, coinflip, case battlet, ruletin kierrokset ja crash, eivät voi antaa yhden pelaajan client seedin ratkaista kaikkien lopputulosta. Sivustot hoitavat tämän muutamalla yleisellä tavalla.

  • Tiivisteketju. Yleinen crashissa. Sivusto generoi etukäteen pitkän tiivisteketjun, jossa kunkin kierroksen tiiviste on seuraavan kierroksen SHA-256. Se julkaisee ketjun viimeisen tiivisteen ennen ensimmäisen kierroksen pelaamista, ja voit tarkistaa, että jokainen paljastettu kierros tiivistyy takaisin edelliseen. Jokainen ketjun tulos lyötiin lukkoon ennen kuin kukaan asetti vetoa.
  • Sivuston ulkopuolinen julkinen seed. Sivusto sitoutuu server seediinsä ja sekoittaa siihen arvon, jota kukaan ei voinut tietää etukäteen, kuten julkisen lohkoketjun tulevan lohkon tiivisteen. Koska tuota lohkoa ei ollut olemassa, kun sivusto sitoutui, se ei voinut säätää seediään sen mukaan.
  • Kierroskohtaiset sitoumukset. Jackpotissa ja coinflipissä kierroksen tiivistetty seed ilmestyy kierroksen avautuessa, ja tavallinen seed sekä voittolippu näytetään sen päättyessä.

Tarkistuksen ajatus on kaikissa sama. Etsi sitoumus, joka oli julkinen ennen kierrosta, varmista, että paljastettu arvo vastaa sitä, ja laske tulos uudelleen. Siitä, miten voittolipusta tulee voittaja jaetussa potissa, katso oppaamme coinflipin ja jackpotin todennäköisyyksistä. Case battlet sekoittavat molemmat lähestymistavat, mitä käsittelemme jutussa case battlet selitettynä.

Mitä provably fair ei todista

Todennettu heitto todistaa yhden kapean asian: tulos syntyi syötteistä, joihin sivusto sitoutui ennen vetoasi. Se on hyödyllistä, mutta pelaajat lukevat merkistä usein paljon enemmän kuin se tukee.

  • Se ei kerro mitään house edgestä. Crash-peli, jolla on suuri etu, voi olla täysin provably fair. Etu on julkaistussa kaavassa, joka muuttaa satunnaisluvun kertoimeksi tai voittotodennäköisyydeksi. Reilu tarkoittaa, että sivusto noudatti omia sääntöjään, ja nuo säännöt suosivat edelleen sivustoa ajan mittaan.
  • Se ei tarkista hintoja. Jos case listaa skinin arvoon, joka on selvästi korkeampi kuin mihin se myytäisiin Steam Community Marketissa, heitto voi olla reilu ja case silti huono arvo. Upgrader-oppaamme näyttää, miten esineiden hinnoittelu siirtää todellisia kertoimia huomaamatta.
  • Se ei kata nostoja. Sivusto voi pyörittää virheettömiä seedejä ja silti viivyttää kotiutuksia, jäädyttää tilejä tai kirjoittaa ehtonsa uusiksi. Siksi reiluus on vain yksi tekijä sivustojen arvioinnissamme kotiutusnopeuden ja luotettavuuden rinnalla.
  • Se toimii vain, jos joku tarkistaa. Sitoumus, jota kukaan ei vertaa, on vain merkkijono sivulla.

Varoitusmerkit reiluussivulla

Seedien tarkistaminen on rutiinivaihe, kun testaamme sivustoa. Nämä ovat asioita, jotka tekevät meistä epäluuloisia, suunnilleen lievästä vakavaan.

Mitä näetMitä se tarkoittaaMitä tehdä
Ei mahdollisuutta vaihtaa client seediäSivusto hallitsee jokaista henkilökohtaisten heittojesi syötettäSuhtaudu yksinpelimuotoihin varovaisemmin
Verifioija-painike mutta ei julkaistua kaavaaVoit tarkistaa tuloksia vain sivuston omalla koodillaPyydä tuelta täsmällinen kaava ennen suurta talletusta
Server seedin tiiviste ilmestyy vasta vedon jälkeenTodellista sitoumusta ei oleÄlä pidä peliä provably fair -pelinä
Vanhoja server seedejä ei voi koskaan paljastaaMitään ei voi todentaaSama kuin yllä
Paljastettu seed ei tiivisty tallennettuun sitoumukseenSeediä on muutettu tai sivu on rikkiLopeta pelaaminen, ota kuvakaappaus kaikesta ja ota yhteyttä tukeen

Jos osut joskus viimeiseen riviin, säilytä todisteesi: tallennettu tiiviste, paljastettu seed, veto-ID:t ja kunkin vedon aika. Yksi epäsuhta voi olla näyttövirhe, mutta se on juuri sellainen uskottava pelaajailmoitus, joka saa meidät tarkistamaan sivuston uudelleen.

Järkevä rutiini tavalliselle pelaajalle

Jokaista vetoa ei tarvitse tarkistaa. Kevyt rutiini nappaa useimmat ongelmat tekemättä pelikerrasta läksyä.

  • Aseta tuore client seed aina, kun aloitat pelaamisen uudella sivustolla.
  • Ota kuvakaappaus tiivistetystä server seedistä ennen pelaamista.
  • Vaihda seed pelikerran jälkeen ja tarkista sitoumus, mikä on yksi SHA-256-laskenta.
  • Laske uudelleen yksi tai kaksi tulosta, joilla oli eniten väliä, kuten iso upgrader-tappio tai battle, jonka olit varma pitäneesi voittaa.
  • Toista silloin tällöin täysi tarkistus riippumattomalla työkalulla sivuston verifioijan sijaan.

Puhdas todennus tarkoittaa, että ottamasi tappiot ovat niitä, joita julkaistu matematiikka ennustaa, eikä enempää. Etu on silti läsnä jokaisessa heitossa. Käytännön seuraava askel on päättää etukäteen, kuinka paljon noista odotettavissa olevista tappioista olet valmis maksamaan viihteestä; vastuullisen pelaamisen sivumme käsittelee yksinkertaiset rajat ja työkalut, jotka auttavat pitämään niistä kiinni.

  • #provably fair
  • #kertoimet
  • #turvallisuus
  • #oppaat

Usein kysytyt kysymykset

Voiko provably fair -sivusto silti huijata?

Se ei voi muuttaa sitoutunutta tulosta tiivistetarkistuksen epäonnistumatta. Se voi silti pyörittää suurta house edgeä, ylihinnoitella esineitä caseissa tai viivyttää nostoja, koska provably fair kattaa vain sen, miten heitto tuotetaan.

Pitääkö minun vaihtaa client seedini?

Ei, mutta sinun kannattaa. Client seed, jonka valitsit sen jälkeen, kun server seedin tiiviste näytettiin, tarkoittaa, ettei sivusto voinut valita seediään sinun syötteesi mielessä.

Miksi sivusto ei vain näytä server seediä ennen pelaamista?

Jokainen, joka tuntee sekä server seedin että client seedin, voi laskea kaikki tulevat tulokset. Tiiviste antaa sivuston sitoutua seediinsä paljastamatta tulevia heittoja.

Millä työkalulla voin todentaa heittoja?

Mikä tahansa SHA-256- ja HMAC-SHA256-laskin toimii, mukaan lukien ilmaiset verkkotyökalut sekä PHP:n, Pythonin ja JavaScriptin sisäänrakennetut funktiot. Käytä sivuston verifioijaa mukavuuden vuoksi ja riippumatonta työkalua tarkistukseen, jolla on väliä.

Onko SHA-256 riittävän turvallinen tähän?

Kyllä. Se on laajasti käytetty standardi, jota käytetään myös Bitcoinin louhinnassa, eikä sen kääntämiseen tai toisen samaan tiivisteeseen johtavan seedin löytämiseen tunneta käytännöllistä tapaa.

Jatka lukemista

Aiheeseen liittyvät oppaat

Kaikki oppaat