Sådan fungerer provably fair på Rust-sider, og sådan tjekker du dine kast
Server seed-hashes, client seeds, nonces og HMAC-SHA256 i almindelige ord, med et regneeksempel, du kan gentage, og en trin-for-trin-rutine til at tjekke ethvert kast på en Rust skin-side.
Alle ti sider i vores rangering angiver deres spil som provably fair. Udtrykket har en præcis betydning, og tjekket bag det er noget, du selv kan køre med et gratis hashing-værktøj eller få linjer kode. Meget få spillere gør det nogensinde. Denne guide forklarer, hvad systemet beviser, hvad det udelader, og hvordan du verificerer et kast fra start til slut.
Den korte version: Før du satser, låser siden en hemmelig værdi fast og viser dig et fingeraftryk af den. Du tilføjer et input fra dig selv. Efter væddemålene afslører siden hemmeligheden, og du kan bekræfte, at fingeraftrykket stemmer, og at hvert resultat følger af inputtene. Hvis tallene passer, kunne siden ikke have ændret et udfald, efter den så dit væddemål.
Problemet, provably fair løser
På en skin-side bestemmer serveren hvert resultat. Når du åbner en case, flipper en mønt eller venter på en crash-multiplikator, ser du en animation af et tal, der blev frembragt på en maskine, du ikke kan inspicere. Uden en form for bevis stoler du på, at operatøren ikke i det skjulte skubber til kastene imod dig, når dit væddemål er stort.
Licenserede online casinoer svarer som regel på det med tilsynsmyndigheder og tredjepartsrevisioner af deres tilfældighedsgeneratorer. De fleste skin-sider støtter sig i stedet på en kryptografisk tilgang. Den har én stor fordel for spillere: Du behøver ikke stole på en revisor, fordi du kan gentage udregningen på din egen computer.
Ideen kaldes et commitment-skema. Forestil dig, at siden skriver sin hemmelighed på et kort, lægger kortet i en konvolut og rækker dig konvolutten, før spillet starter. Den kan ikke bytte kortet bagefter uden, at du opdager det, og du kan ikke læse kortet for tidligt.
De tre inputs: server seed, client seed og nonce
Næsten alle provably fair-systemer på Rust-sider bruger de samme ingredienser. Betegnelserne varierer lidt mellem siderne, men rollerne er de samme.
Server seed
En lang tilfældig streng genereret af siden. Den forbliver hemmelig, mens du spiller, fordi enhver, der kendte den, kunne forudsige hvert resultat. Det, du ser i stedet, er dens hash, som regel frembragt med SHA-256. En hash er et envejs-fingeraftryk. Det samme input giver altid det samme output på 64 tegn, at ændre ét enkelt tegn i inputtet ændrer outputtet fuldstændigt, og der er ingen praktisk måde at regne baglæns fra hashen til seed'en.
Client seed
En streng, der kommer fra din side. Sider genererer en standard til dig, og de fleste lader dig redigere den i fairness- eller indstillingspanelet. Dens opgave er at forhindre siden i at vælge en server seed, der er dårlig for netop dig. Siden forpligtede sig til sin seed, før den vidste, hvad du ville skrive, så den havde ingen mulighed for at tune den ene til den anden.
Nonce
En tæller, der starter på 0 eller 1 og stiger med én for hvert væddemål, du placerer på det samme seed-par. Den lader dig genbruge én server seed og én client seed til hundredvis af væddemål og stadig få et nyt resultat hver gang.
Når du vil tjekke dine resultater, beder du siden om at rotere seed'en. Den afslører den gamle server seed i klartekst, viser dig hashen af en ny og nulstiller noncen. Alt, du spillede på den gamle seed, kan nu verificeres.
Sådan bliver inputtene til et resultat
Den mest almindelige opskrift er HMAC-SHA256. HMAC er en standardmåde at kombinere en hemmelig nøgle med en besked for at frembringe en hash. På de fleste Rust-sider er server seed'en nøglen, og beskeden er client seed'en og noncen sat sammen, ofte med et kolon, som clientseed:nonce. Nogle sider tilføjer et rundenummer eller et spil-ID, så læs altid den præcise formel på sidens egen fairness-side.
Outputtet er en hexadecimal streng på 64 tegn. Siden omdanner derefter en del af den streng til et tal mellem 0 og 1. En typisk metode tager de første otte hex-tegn (32 bit), omregner dem til et helt tal og dividerer med 4.294.967.296, som er 2 opløftet i 32. Den decimal bliver så afbildet på spillet:
- Dice og upgrader: Gang med 100 for at få et kast fra 0,00 til 99,99, og sammenlign det derefter med målet.
- Roulette: Gang med antallet af felter på hjulet, og rund ned for at vælge et felt.
- Cases: Gang med det samlede antal billetter i casen, så en skin, der ejer 1 % af billetterne, vinder i 1 % af kastene.
- Crash: Send tallet gennem en formel, der omdanner det til en multiplikator, med husets fordel bygget ind. Vores crash-strategiguide gennemgår den formel og hvad den betyder for cash-out-mål.
Et regneeksempel, du kan gentage
Seedsene nedenfor er opdigtede til dette eksempel, så du kan tjekke vores regning med en hvilken som helst HMAC-SHA256-beregner.
- Server seed: example-server-seed-01. Dens SHA-256-hash begynder a5275da7ccca3f73. Den hash er det, siden ville vise dig, før du spiller.
- Client seed: my-own-client-seed. Nonce: 1. Beskeden er derfor my-own-client-seed:1.
- HMAC-SHA256 med server seed'en som nøgle og den besked som input giver et resultat, der begynder med 4cdcf221.
- Hex 4cdcf221 er 1.289.548.321 i decimal. Divideret med 4.294.967.296 er det cirka 0,30025.
- På en dice-skala fra 0 til 100 er det et kast på 30,02. På et roulettehjul med 15 felter er 0,30025 gange 15 cirka 4,5, hvilket runder ned til felt 4 (hvor det første felt tælles som 0).
Kør de samme seeds med nonce 2, og du får en helt anden hash, der begynder 6486ccbd, hvilket giver cirka 0,3927. Intet ved det første kast fortæller dig noget om det andet. Den uafhængighed er hele pointen: Der er intet mønster at læse i en væddemålshistorik, fordi hvert resultat er en ny hash.
Sådan verificerer du selv et kast, trin for trin
Det første fulde tjek tager et stykke tid. Derefter er det nogle få minutters kopiering og indsættelse. Gør det først på en lille saldo, så du kender processen, før et resultat faktisk betyder noget for dig.
- Åbn fairness-panelet, før du satser. Det er som regel linket fra spilskærmen, footeren eller dine profilindstillinger. Gem den hashede server seed et sted uden for siden, som en note på din telefon eller et skærmbillede.
- Sæt din egen client seed. Erstat standarden med noget, du selv har skrevet. Hamr løs på tastaturet. Den behøver ikke være mindeværdig.
- Spil, og notér de væddemål, du bekymrer dig om. Skriv noncen ned, der vises ved hvert væddemål, eller find den senere i din væddemålshistorik.
- Roter seed'en. Siden afslører den gamle server seed. Kopiér den.
- Tjek commitment'et. Kør den afslørede server seed gennem et hvilket som helst SHA-256-værktøj. Outputtet skal matche den hash, du gemte i trin 1, tegn for tegn.
- Genberegn kastet. Brug HMAC-SHA256 med den afslørede server seed, din client seed og noncen, og anvend derefter den omregning, siden offentliggør. I PHP er det ét enkelt kald til hash_hmac, og Pythons hmac-modul gør det samme på et par linjer.
- Sammenlign. Det tal, du beregner, skal give det udfald, der er registreret i din historik.
De fleste sider tilbyder også en indbygget verifier, hvor du indsætter seedsene. Den er praktisk, men den kører på operatørens egen kode. For et tjek, der slet ikke afhænger af siden, så brug et uafhængigt værktøj eller dit eget script mindst én gang.
Fælles spil fungerer lidt anderledes
Enkeltspiller-spiltyper som dice, upgrader og solo-case-åbninger kan køre på dit personlige seed-par. Spil, hvor mange spillere deler ét resultat, som jackpot, coinflip, case battles, roulette-runder og crash, kan ikke lade én spillers client seed afgøre alles udfald. Sider håndterer det på nogle få almindelige måder.
- En hash-kæde. Almindelig i crash. Siden genererer en lang kæde af hashes på forhånd, hvor hver rundes hash er SHA-256 af den følgende rundes. Den offentliggør kædens sidste hash, før den første runde spilles, og du kan tjekke, at hver afslørede runde hasher tilbage til den foregående. Hvert resultat i kæden var fastlagt, før nogen placerede et væddemål.
- En offentlig seed udefra. Siden forpligter sig til sin server seed og blander derefter en værdi ind, som ingen kunne kende på forhånd, som hashen af en fremtidig blok på en offentlig blockchain. Fordi den blok ikke fandtes, da siden forpligtede sig, kunne siden ikke tune sin seed til den.
- Commitments pr. runde. I jackpot og coinflip vises rundens hashede seed, når runden åbner, og den almindelige seed plus den vindende billet vises, når den slutter.
Verificeringsideen er den samme i hvert tilfælde. Find det commitment, der var offentligt før runden, bekræft, at den afslørede værdi matcher det, og genberegn derefter resultatet. For hvordan en vindende billet bliver til en vinder i en fælles pot, se vores guide til odds i coinflip og jackpot. Case battles blander begge tilgange, hvilket vi dækker i case battles forklaret.
Hvad provably fair ikke beviser
Et verificeret kast beviser én snæver ting: at resultatet kom fra inputs, siden forpligtede sig til, før du satsede. Det er nyttigt, men spillere læser ofte langt mere ind i mærket, end det understøtter.
- Det siger intet om husets fordel. Et crash-spil med en stor fordel kan sagtens være provably fair. Fordelen ligger i den offentliggjorte formel, der omdanner det tilfældige tal til en multiplikator eller en vinderchance. Fair betyder, at siden fulgte sine egne regler, og de regler favoriserer stadig siden over tid.
- Det tjekker ikke priser. Hvis en case lister en skin til en værdi langt over, hvad den ville sælges for på Steam Community Market, kan kastet være fair, mens casen stadig er dårlig værdi. Vores upgrader-guide viser, hvordan prissætning af items i det stille flytter de reelle odds.
- Det dækker ikke udbetalinger. En side kan køre fejlfri seeds og stadig forsinke udbetalinger, fryse konti eller omskrive sine vilkår. Derfor er fairness kun ét input i sådan vurderer vi sider, ved siden af udbetalingshastighed og tillid.
- Det virker kun, hvis nogen tjekker. Et commitment, ingen sammenligner, er blot en streng af tegn på en side.
Røde flag på en fairness-side
At verificere seeds er et rutinetrin, når vi tester en side. Det her er det, der gør os mistænksomme, groft fra mildt til alvorligt.
| Hvad du ser | Hvad det betyder | Hvad du skal gøre |
|---|---|---|
| Ingen mulighed for at ændre client seed'en | Siden styrer hvert input til dine personlige kast | Behandl enkeltspiller-spiltyper med større forsigtighed |
| En verifier-knap, men ingen offentliggjort formel | Du kan kun tjekke resultater med sidens egen kode | Bed support om den præcise formel, før du indbetaler meget |
| Server seed-hashen vises først, efter du har satset | Der er intet reelt commitment | Behandl ikke spillet som provably fair |
| Gamle server seeds kan aldrig afsløres | Intet kan verificeres | Det samme som ovenfor |
| Den afslørede seed hasher ikke til det gemte commitment | Seed'en blev ændret, eller siden er i stykker | Stop med at spille, tag skærmbilleder af alt, og kontakt support |
Hvis du nogensinde rammer den sidste række, så gem dine beviser: den gemte hash, den afslørede seed, væddemåls-ID'erne og tidspunktet for hvert væddemål. Et enkelt misforhold kan være en visningsfejl, men det er præcis den slags troværdig spillerrapport, der får os til at gentjekke en side.
En fornuftig rutine for almindelige spillere
Du behøver ikke verificere hvert væddemål. En let rutine fanger de fleste problemer uden at gøre en session til lektier.
- Sæt en ny client seed, hver gang du begynder at spille på en ny side.
- Tag et skærmbillede af den hashede server seed, før du spiller.
- Roter efter sessionen, og tjek commitment'et, hvilket er én SHA-256-beregning.
- Genberegn det ene eller de to resultater, der betød mest, som et stort tab i upgrader eller et battle, du var sikker på, du burde have vundet.
- Gentag nu og da det fulde tjek med et uafhængigt værktøj i stedet for sidens verifier.
En ren verificering betyder, at de tab, du tager, er dem, den offentliggjorte matematik forudsiger, og ikke flere. Fordelen er der stadig ved hvert kast. Det praktiske næste skridt er at beslutte på forhånd, hvor meget af de forventede tab du vil betale for underholdningen; vores side om ansvarligt spil dækker enkle grænser og de værktøjer, der hjælper dig med at holde dem.
Ofte stillede spørgsmål
Kan en provably fair-side stadig snyde?
Den kan ikke ændre et forpligtet resultat uden at hash-tjekket fejler. Den kan stadig køre en høj husets fordel, overprissætte items i cases eller forsinke udbetalinger, fordi provably fair kun dækker, hvordan kastet frembringes.
Skal jeg ændre min client seed?
Nej, men det bør du. En client seed, du valgte, efter server seed-hashen blev vist, betyder, at siden ikke kunne have valgt sin seed med dit input i tankerne.
Hvorfor viser siden ikke bare server seed'en, før jeg spiller?
Enhver, der kender både server seed'en og client seed'en, kan beregne alle kommende resultater. Hashen lader siden forpligte sig til sin seed uden at afsløre fremtidige kast.
Hvilket værktøj kan jeg bruge til at verificere kast?
Enhver SHA-256- og HMAC-SHA256-beregner virker, herunder gratis onlineværktøjer og de indbyggede funktioner i PHP, Python eller JavaScript. Brug sidens verifier for nemheds skyld og et uafhængigt værktøj til det tjek, der tæller.
Er SHA-256 sikker nok til det her?
Ja. Det er en udbredt standard, som også bruges i Bitcoin-mining, og der er ingen kendt praktisk måde at vende den om eller finde en anden seed, der giver den samme hash.
Læs videre
Relaterede guides
Rust gambling-bonusser, gratis cases og promokoder: hvad de er værd
En gratis case er værd sit gennemsnitlige drop, ikke sit topitem, og en gratis saldo er værd det, der overlever omsætningen. Sådan prisfastsætter du hver almindelig Rust-bonus, før du skriver en kode.
Rust case battles forklaret: spiltyper, odds og sådan vælger du et fair battle
Et case battle ændrer ikke husets fordel på de cases, det indeholder. Det ændrer, hvor hårdt du vinder eller taber. Sådan fungerer formaterne, regnestykket bag dem, og hvordan du ser et battle, der er værd at deltage i.
Ansvarlig skin gambling: grænser, advarselstegn og hvor du får hjælp
Med skins er det let at miste overblikket over rigtige penge. Guiden dækker advarselstegn, grænser der faktisk holder, selvudelukkelse og blokeringsværktøjer samt de gratis hjælpelinjer, du kan kontakte i dag.