Slik fungerer provably fair på Rust-sider og hvordan du sjekker rundene dine
Server seed-hasher, client seeds, nonces og HMAC-SHA256 med enkle ord, med et regneeksempel du kan gjenskape og en steg-for-steg-rutine for å sjekke enhver runde på en Rust skin-side.
Alle ti sidene i rangeringen vår oppgir spillene sine som provably fair. Uttrykket har en presis betydning, og kontrollen bak det er noe du kan kjøre selv med et gratis hash-verktøy eller noen få linjer kode. Svært få spillere gjør det noen gang. Denne guiden forklarer hva systemet beviser, hva det utelater og hvordan du verifiserer en runde fra start til slutt.
Kortversjonen: før du satser, låser siden inn en hemmelig verdi og viser deg et fingeravtrykk av den. Du legger til en inndata fra din side. Etter innsatsene avslører siden hemmeligheten, og du kan bekrefte at fingeravtrykket stemmer og at hvert resultat følger av inndataene. Hvis tallene går opp, kunne ikke siden ha endret et utfall etter å ha sett innsatsen din.
Problemet provably fair løser
På en skin-side bestemmer serveren hvert resultat. Når du åpner en case, flipper en mynt eller venter på en crash-multiplikator, ser du en animasjon av et tall som ble produsert på en maskin du ikke kan inspisere. Uten en form for bevis stoler du på at operatøren ikke i det stille vipper trekninger mot deg når innsatsen din er stor.
Lisensierte nettcasinoer svarer vanligvis på dette med tilsynsmyndigheter og revisjon fra tredjepart av tilfeldighetsgeneratorene sine. De fleste skin-sider støtter seg i stedet på en kryptografisk tilnærming. Den har én stor fordel for spillere: du trenger ikke stole på en revisor, fordi du kan gjenta utregningen på din egen datamaskin.
Ideen kalles en forpliktelsesordning (commitment scheme). Se for deg at siden skriver hemmeligheten sin på et kort, forsegler kortet i en konvolutt og gir deg konvolutten før spillet starter. Den kan ikke bytte kortet senere uten at du merker det, og du kan ikke lese kortet på forhånd.
De tre inndataene: server seed, client seed og nonce
Nesten alle provably fair-systemer på Rust-sider bruker de samme ingrediensene. Merkelappene varierer litt mellom sidene, men rollene er de samme.
Server seed
En lang tilfeldig streng generert av siden. Den forblir hemmelig mens du spiller, fordi alle som kjente den kunne forutsi hvert resultat. Det du ser i stedet, er hashen av den, vanligvis laget med SHA-256. En hash er et enveis fingeravtrykk. Den samme inndataen gir alltid de samme 64 tegnene som utdata, å endre ett enkelt tegn i inndataen endrer utdataene fullstendig, og det finnes ingen praktisk måte å gå baklengs fra hashen til seeden.
Client seed
En streng som kommer fra din side. Sider genererer en standardverdi for deg, og de fleste lar deg redigere den i rettferdighets- eller innstillingspanelet. Jobben er å hindre siden i å velge en server seed som er dårlig for nettopp deg. Siden forpliktet seg til seeden sin før den visste hva du ville skrive, så den hadde ingen måte å tilpasse den ene mot den andre.
Nonce
En teller som starter på 0 eller 1 og går opp med én for hver innsats du legger på samme seed-par. Den lar deg gjenbruke én server seed og én client seed for hundrevis av innsatser og likevel få et friskt resultat hver gang.
Når du vil sjekke resultatene dine, ber du siden rotere seeden. Den avslører den gamle server seeden i klartekst, viser deg hashen av en ny og nullstiller nonce. Alt du spilte på den gamle seeden kan nå verifiseres.
Hvordan inndataene blir til et resultat
Den vanligste oppskriften er HMAC-SHA256. HMAC er en standard måte å kombinere en hemmelig nøkkel med en melding for å lage en hash. På de fleste Rust-sider er server seeden nøkkelen, og meldingen er client seeden og nonce satt sammen, ofte med et kolon, som clientseed:nonce. Noen sider legger til et rundenummer eller en spill-ID, så les alltid den nøyaktige formelen på sidens egen rettferdighetsside.
Utdataene er en heksadesimal streng på 64 tegn. Siden gjør så en del av den strengen om til et tall mellom 0 og 1. En typisk metode tar de første åtte heksadesimale tegnene (32 bits), konverterer dem til et heltall og deler på 4 294 967 296, som er 2 opphøyd i 32. Det desimaltallet kobles så til spillet:
- Dice og upgrader: gang med 100 for å få en trekning fra 0,00 til 99,99, og sammenlign den deretter med målet.
- Roulette: gang med antall felt på hjulet og rund ned for å velge et felt.
- Cases: gang med totalt antall lodd i casen, så en skin som eier 1 % av loddene vinner i 1 % av trekningene.
- Crash: mat tallet inn i en formel som gjør det om til en multiplikator, med house edge bygget inn. Vår crash-strategiguide går gjennom den formelen og hva den betyr for uttaksmål.
Et regneeksempel du kan gjenskape
Seedene under er konstruert for dette eksempelet, så du kan sjekke regnestykket vårt med en hvilken som helst HMAC-SHA256-kalkulator.
- Server seed: example-server-seed-01. SHA-256-hashen begynner med a5275da7ccca3f73. Den hashen er det siden ville vist deg før du spiller.
- Client seed: my-own-client-seed. Nonce: 1. Meldingen er dermed my-own-client-seed:1.
- HMAC-SHA256 med server seeden som nøkkel og den meldingen som inndata gir et resultat som begynner med 4cdcf221.
- Heksadesimal 4cdcf221 er 1 289 548 321 i desimal. Delt på 4 294 967 296 blir det omtrent 0,30025.
- På en dice-skala fra 0 til 100 er det en trekning på 30,02. På et roulettehjul med 15 felt er 0,30025 ganger 15 omtrent 4,5, som rundes ned til felt 4 (første felt regnet som 0).
Kjør de samme seedene med nonce 2, og du får en helt annen hash, som begynner med 6486ccbd, og som blir omtrent 0,3927. Ingenting ved den første trekningen forteller deg noe om den andre. Den uavhengigheten er hele poenget: det finnes ikke noe mønster i en innsatshistorikk å lese, fordi hvert resultat er en fersk hash.
Slik verifiserer du en runde selv, steg for steg
Den første fulle kontrollen tar en stund. Etter det er det noen minutter med kopiering og innliming. Gjør den på en liten saldo først, så du kjenner prosessen før et resultat faktisk betyr noe for deg.
- Åpne rettferdighetspanelet før du satser. Det er vanligvis lenket fra spillskjermen, bunnteksten eller profilinnstillingene dine. Lagre den hashede server seeden et sted utenfor siden, som et notat på telefonen eller et skjermbilde.
- Sett din egen client seed. Bytt ut standardverdien med noe du selv har skrevet. Hamre løs på tastaturet. Den trenger ikke være lett å huske.
- Spill, og noter innsatsene du bryr deg om. Skriv ned nonce som vises på hver innsats, eller finn den senere i innsatshistorikken din.
- Roter seeden. Siden avslører den gamle server seeden. Kopier den.
- Sjekk forpliktelsen. Kjør den avslørte server seeden gjennom et hvilket som helst SHA-256-verktøy. Utdataene må stemme med hashen du lagret i trinn 1, tegn for tegn.
- Regn ut trekningen på nytt. Bruk HMAC-SHA256 med den avslørte server seeden, client seeden din og nonce, og bruk deretter konverteringen siden publiserer. I PHP er det ett enkelt kall til hash_hmac, og Pythons hmac-modul gjør det samme på et par linjer.
- Sammenlign. Tallet du regner ut må gi utfallet som er registrert i historikken din.
De fleste sider tilbyr også en innebygd verifikator der du limer inn seedene. Den er praktisk, men den kjører på operatørens egen kode. For en kontroll som ikke avhenger av siden i det hele tatt, bruk et uavhengig verktøy eller ditt eget skript minst én gang.
Delte spill fungerer litt annerledes
Enspillermodi som dice, upgrader og case opening alene kan kjøre på ditt personlige seed-par. Spill der mange spillere deler ett resultat, som jackpot, coinflip, case battles, roulette-runder og crash, kan ikke la én spillers client seed avgjøre alles utfall. Sider løser dette på noen vanlige måter.
- En hash-kjede. Vanlig i crash. Siden genererer en lang kjede av hasher på forhånd, der hver rundes hash er SHA-256 av den følgende rundens. Den publiserer den siste hashen i kjeden før den første runden spilles, og du kan sjekke at hver avslørte runde hasher tilbake til den før. Hvert resultat i kjeden var fastlagt før noen la en innsats.
- Et offentlig seed fra utenfor siden. Siden forplikter seg til server seeden sin, og blander deretter inn en verdi ingen kunne kjenne på forhånd, som hashen av en fremtidig blokk på en offentlig blokkjede. Fordi den blokken ikke fantes da siden forpliktet seg, kunne ikke siden tilpasse seeden sin til den.
- Forpliktelser per runde. I jackpot og coinflip vises rundens hashede seed når runden åpner, og den vanlige seeden pluss vinnerloddet vises når den slutter.
Verifiseringsideen er den samme i hvert tilfelle. Finn forpliktelsen som var offentlig før runden, bekreft at den avslørte verdien stemmer med den, og regn deretter ut resultatet på nytt. For hvordan et vinnerlodd blir til en vinner i en delt pott, se guiden vår til coinflip- og jackpot-odds. Case battles blander begge tilnærmingene, som vi tar for oss i case battles forklart.
Hva provably fair ikke beviser
En verifisert trekning beviser én snever ting: resultatet kom fra inndata siden forpliktet seg til før du satset. Det er nyttig, men spillere leser ofte langt mer inn i merket enn det gir grunnlag for.
- Det sier ingenting om house edge. Et crash-spill med stor kant kan være helt provably fair. Kanten ligger inne i den publiserte formelen som gjør det tilfeldige tallet om til en multiplikator eller en vinnersjanse. Rettferdig betyr at siden fulgte sine egne regler, og de reglene favoriserer fortsatt siden over tid.
- Det kontrollerer ikke priser. Hvis en case lister en skin til en verdi godt over det den ville blitt solgt for på Steam Community Market, kan trekningen være rettferdig mens casen likevel er dårlig verdi. Vår upgrader-guide viser hvordan prising av gjenstander i det stille forskyver den reelle oddsen.
- Det dekker ikke uttak. En side kan kjøre feilfrie seeds og likevel forsinke utbetalinger, fryse kontoer eller skrive om vilkårene sine. Derfor er rettferdighet bare én faktor i hvordan vi vurderer sider, ved siden av utbetalingshastighet og tillit.
- Det virker bare hvis noen sjekker. En forpliktelse ingen sammenligner er bare en rekke tegn på en side.
Røde flagg på en rettferdighetsside
Å verifisere seeds er et rutinetrinn når vi tester en side. Dette er tingene som gjør oss mistenksomme, grovt sett fra mildt til alvorlig.
| Det du ser | Hva det betyr | Hva du bør gjøre |
|---|---|---|
| Ingen mulighet til å endre client seed | Siden kontrollerer hver inndata til dine personlige trekninger | Behandle enspillermodi med mer forsiktighet |
| En verifikator-knapp, men ingen publisert formel | Du kan bare sjekke resultater med sidens egen kode | Spør supporten om den nøyaktige formelen før du setter inn mye |
| Hashen av server seeden vises først etter at du har satset | Det finnes ingen reell forpliktelse | Ikke behandle spillet som provably fair |
| Gamle server seeds kan aldri avsløres | Ingenting kan verifiseres | Det samme som over |
| Avslørt seed hasher ikke til den lagrede forpliktelsen | Seeden ble endret, eller siden er ødelagt | Slutt å spille, ta skjermbilde av alt og kontakt supporten |
Hvis du noen gang havner på den siste raden, ta vare på bevisene dine: den lagrede hashen, den avslørte seeden, innsats-ID-ene og tidspunktet for hver innsats. Ett enkelt avvik kan være en visningsfeil, men det er akkurat den typen troverdig spillerrapport som får oss til å kontrollere en side på nytt.
En fornuftig rutine for vanlige spillere
Du trenger ikke verifisere hver innsats. En lett rutine fanger de fleste problemer uten å gjøre en økt om til lekser.
- Sett en fersk client seed hver gang du begynner å spille på en ny side.
- Ta skjermbilde av den hashede server seeden før du spiller.
- Roter etter økten og sjekk forpliktelsen, som er én SHA-256-utregning.
- Regn ut på nytt det ene eller de to resultatene som betydde mest, som et stort upgrader-tap eller en battle du var sikker på at du burde ha vunnet.
- Gjenta av og til den fulle kontrollen med et uavhengig verktøy i stedet for sidens verifikator.
En ren verifisering betyr at tapene du tar er de den publiserte matematikken forutsier, og ikke mer. Kanten er der fortsatt på hver trekning. Det praktiske neste steget er å bestemme på forhånd hvor mye av de forventede tapene du er villig til å betale for underholdningen; siden vår om ansvarlig spilling tar for seg enkle grenser og verktøyene som hjelper deg å holde deg til dem.
Ofte stilte spørsmål
Kan en provably fair-side likevel jukse?
Den kan ikke endre et forpliktet resultat uten at hash-kontrollen feiler. Den kan fortsatt ha en høy house edge, overprise gjenstander i cases eller forsinke uttak, fordi provably fair bare dekker hvordan trekningen produseres.
Må jeg endre client seed?
Nei, men du bør. En client seed du valgte etter at hashen av server seeden ble vist, betyr at siden ikke kunne ha valgt seeden sin med din inndata i tankene.
Hvorfor viser ikke siden server seeden før jeg spiller?
Alle som kjenner både server seeden og client seeden kan regne ut hvert kommende resultat. Hashen lar siden forplikte seg til seeden sin uten å røpe fremtidige trekninger.
Hvilket verktøy kan jeg bruke for å verifisere trekninger?
Enhver SHA-256- og HMAC-SHA256-kalkulator fungerer, inkludert gratis nettverktøy og de innebygde funksjonene i PHP, Python eller JavaScript. Bruk sidens verifikator for bekvemmelighet og et uavhengig verktøy for kontrollen som teller.
Er SHA-256 sikkert nok til dette?
Ja. Det er en mye brukt standard, også brukt i Bitcoin-mining, og det finnes ingen kjent praktisk måte å reversere det på eller finne en annen seed som gir den samme hashen.
Fortsett å lese
Relaterte guider
Bonuser, gratis cases og promokoder for Rust gambling: hva de er verdt
En gratis case er verdt gjennomsnittsdroppet, ikke toppgjenstanden, og en gratis saldo er verdt det som overlever omsetningen. Slik priser du hver vanlige Rust-bonus før du skriver inn en kode.
Rust case battles forklart: modi, odds og hvordan du velger en rettferdig battle
En case battle endrer ikke house edge på casene i den. Den endrer hvor hardt du vinner eller taper. Hvordan formatene fungerer, regnestykket bak dem, og hvordan du ser en battle det er verdt å bli med i.
Ansvarlig skin gambling: grenser, varselsignaler og hvor du får hjelp
Skins gjør det lett å miste oversikten over ekte penger. Denne guiden tar for seg varselsignalene, grenser som faktisk holder, selvutestengelse og blokkeringsverktøy, og de gratis hjelpelinjene du kan kontakte i dag.