Ce este Provably Fair și cum funcționează?

Folosește calculatorul privind corectitudinea demonstrabilă de mai jos pentru a verifica fiecare rezultat și a înțelege cum titlurile Cloudbet Originals mențin șansele de câștig echitabile.
Above are two provably fair tools: a Game Verification Tool — paste your Server Seed, Client Seed, and Nonce from any round to reconstruct and confirm the outcome — and a Server Seed Verification Tool — verify that a revealed server seed matches the hash Cloudbet published before you played.

Când joci pe Cloudbet Originals, fiecare rezultat poate fi verificat de tine. Fără presupuneri, fără trucuri — doar aleatoriu demonstrabil, pe care îl poți verifica singur.

Ce înseamnă „Provably Fair”?

Provably fair este un sistem folosit de cazinourile online pentru a garanta că fiecare rezultat al jocului este corect și poate fi verificat independent de jucător. În loc să te bazezi doar pe încrederea în cazinou, primești o dovadă matematică faptul că rezultatele nu au fost trucate sau manipulate în timpul jocului.

Avantajul Provably Fair la Cloudbet:

  1. Jocurile Cloudbet Originals rulează pe cele mai noi protocoale provably fair, astfel încât fiecare rezultat este imposibil de falsificat, verificabil independent și corect din punct de vedere matematic.
  2. După finalizarea unei runde și dezvăluirea semințelor, oricine poate verifica cu certitudine matematică faptul că rezultatul a fost generat corect.
  3. Este ca și cum ai primi planul fiecărei runde — fără trucuri ascunse, fără scuze după rotire.

Ce înseamnă să fii Provably Fair

A fi provably fair înseamnă a demonstra două lucruri:

  1. Fiecare joc are acces la o secvență de numere cu adevărat aleatorie și imposibil de falsificat — această pagină acoperă această parte.
  2. Această secvență aleatorie determină rezultatul jocului într-un mod fix și transparent — la aceleași numere, obții mereu același rezultat. Această parte este specifică fiecărui joc — vezi cum funcționează pentru Mines și celelalte jocuri Originals.

Pentru a garanta un aleatoriu real, atât jucătorul, cât și Cloudbet contribuie la generarea numerelor — astfel încât nicio parte nu poate controla singură rezultatul, iar Cloudbet trebuie să dovedească faptul că nu și-a schimbat contribuția ulterior.

Termeni-cheie

  1. Bit: unitatea de bază a informației digitale — „1” sau „0”. Șirurile de biți reprezintă numere în binar.
  2. Byte: 8 biți, reprezentând până la 256 de valori. Semințele noastre folosesc numere de 32 de octeți (256 de biți).
  3. Sămânță (Seed): valoarea de pornire pentru un generator de numere aleatorii. Aceeași sămânță produce mereu același rezultat.
  4. Server Seed: codul secret al Cloudbet — un șir criptografic aleatoriu de 32 de octeți, generat înainte de joc, blocat și dezvăluit ulterior.
  5. Client Seed: codul tău — îl poți seta singur sau îl poate genera browserul tău (până la 255 de caractere).
  6. Nonce: un contor de runde care crește de fiecare dată când joci cu aceeași pereche de semințe, astfel încât fiecare rundă este unică.
  7. Hash / Commitment: o amprentă securizată a Server Seed-ului, transmisă înainte de joc. Este ireversibilă — nimeni nu poate reconstitui sămânța pornind de la ea, dar odată dezvăluită sămânța, calcularea hash-ului acesteia ar trebui să reproducă exact același Commitment.
  8. Round Signature: Server Seed-ul, Client Seed-ul și Nonce-ul combinate și hash-uite împreună — inputul real care determină rezultatul rundei tale.
  9. SHA3-256: algoritmul de hash folosit pentru a crea Commitment-uri și Round Signature-uri. Aceeași intrare produce mereu aceeași ieșire de lungime fixă; procesul nu poate fi inversat.
  10. SHAKE256: un algoritm flexibil din familia SHA-3 care transformă Round Signature-ul în fluxul de numere aleatorii din care este construit rezultatul jocului tău — aceeași intrare, aceeași ieșire, de fiecare dată, ceea ce face posibilă verificarea.
  11. Modulo: restul rămas după împărțirea unui număr la altul (de ex. 16 % 5 = 1) — folosit pentru a transforma un număr aleatoriu într-unul dintre rezultatele posibile.
  12. Rotirea semințelor: reînnoirea ambelor semințe pentru o nouă pereche aleatorie.

Pregătirea unui joc

Înainte de fiecare rundă, sunt create două numere: Server Seed și Client Seed.

Serverul de joc al Cloudbet generează Server Seed-ul folosind funcția criptografică randomBytes din Node.js — un număr de 32 de octeți (256 de biți), practic echivalentul aruncării securizate a unei moni repetate de 256 de ori. Rămâne secret până la rotirea perechii de semințe. Pentru a dovedi că nu va fi schimbat ulterior, serverul îl hash-uiește imediat (folosind SHA3-256) într-un Commitment, care îți este transmis înainte să joci — astfel încât, odată dezvăluită sămânța, o poți hash-ui singur și confirma că se potrivește în continuare.

Client Seed-ul este generat implicit de browserul tău sau îl poți seta singur.

În timpul jocului

Server Seed-ul, Client Seed-ul și Nonce-ul tău sunt unite și hash-uite cu SHA3-256 într-un singur Round Signature — gândește-te la asta ca la două persoane care contribuie fiecare, în secret, cu jumătate dintr-un nume, astfel încât niciuna nu cunoaște rezultatul complet dinainte.

Acel Round Signature este apoi introdus în SHAKE256, care generează fluxul de numere aleatorii ce determină rezultatul jocului tău. Deoarece SHAKE256 produce mereu aceeași ieșire din aceeași intrare, oricine deține semințele dezvăluite și Nonce-ul poate reproduce exact rezultatul tău — asta face posibilă verificarea. Transformarea acelui flux de numere aleatorii într-un rezultat concret al jocului (de ex. unde cad minele, ce arată o aruncare de zar) funcționează diferit pentru fiecare joc — vezi cum funcționează pentru Mines și celelalte jocuri Originals.

Rezultatele corecte ale jocurilor se bazează și pe rejection sampling (eșantionare cu respingere) — o metodă care asigură că un număr generat aleatoriu selectează dintre toate rezultatele posibile cu o probabilitate cu adevărat egală, în loc să favorizeze anumite rezultate din cauza unei împărțiri inegale.

Pentru un exemplu detaliat de Rejection Sampling, am pregătit un exemplu scurt cu aruncarea unui zar cu 10 fețe, unde, având 10 rezultate posibile, P este 10.

Aruncarea normală a unui zar cu 10 fețe se face generând aleatoriu un număr „X” și calculând X modulo 10, deoarece, la fel ca o aruncare de zar, această operație are 10 rezultate posibile. Totuși, făcut astfel, fără Rejection Sampling în prealabil, favorizezi în mod nedrept rezultatele mai mici. Să presupunem că X este un număr aleatoriu de 4 biți, așadar are 2⁴=16 valori posibile: 0 până la 15. Atunci, toate rezultatele posibile ale X modulo 10 (X % 10) sunt:

  1. Dacă X este între 0 și 9: 0 … 9
  2. Dacă X este între 10 și 15: 0 … 5

Acest lucru este vizualizat aici:

Fiecare dintre rezultatele 0-5 poate apărea prin generarea a două valori X diferite, în timp ce rezultatele 6-9 apar printr-una singură. Asta înseamnă că aruncările de zar 0-5 sunt de două ori mai probabile decât cele 6-9, ceea ce nu este corect:

Acest lucru se întâmplă deoarece 16 nu se împarte exact la 10. De aceea, prin Rejection Sampling găsim cel mai mare număr care SE împarte exact la 10. Cu 4 biți, cea mai mare valoare posibilă a lui X este 15, iar cel mai mare multiplu al lui 10 care încape în acest interval este 10, așa că respingem toate numerele generate aleatoriu mai mari sau egale cu 10. Astfel, doar 0 … 9 rămân valori posibile pentru X. Notă: dacă un număr este respins, se eșantionează unul nou.

După pasul de respingere, calculăm X modulo P pentru a obține un număr între 0 și P. Acesta determină apoi care dintre cele 1-din-P rezultate este ales.

Cum îți verifici rezultatele jocului

  1. Înainte de a juca, notează Commitment-ul și Client Seed-ul tău.
  2. După rundă, rotește-ți semințele pentru ca Server Seed-ul folosit să fie dezvăluit.
  3. Criptează Server Seed-ul dezvăluit cu SHA3-256 — ar trebui să corespundă Commitment-ului salvat. Asta confirmă că sămânța nu a fost schimbată în timpul jocului.
  4. Introdu Server Seed-ul, Client Seed-ul și Nonce-ul în calculatorul de verificare de mai jos — acesta reconstruiește rezultatul de la zero.
  5. Compară cu ce ai văzut în joc. O potrivire confirmă faptul că runda a fost corectă; o nepotrivire ar semnala o manipulare (ceea ce, la Cloudbet, nu se va întâmpla).

Întrebări frecvente despre Provably Fair

1. De ce sunt semințele atât de lungi și par aleatorii?

Pentru că aleatoriul este esența corectitudinii. Șirurile lungi de caractere împiedică atât Cloudbet, cât și jucătorii să prezică sau să manipuleze rezultatele. Mai multă entropie înseamnă mai multă încredere.

2. Îmi pot schimba Client Seed-ul?

Da. Mergi la setările de corectitudine din joc și introdu propriul Client Seed oricând dorești. Îl poți roti la fel de des cum vrei.

3. Ce se întâmplă dacă Server Seed-ul nu corespunde hash-ului original?

Atunci ceva nu este în regulă. Întregul scop al hash-uirii este să dovedească faptul că sămânța a fost blocată înainte de începerea jocului. O nepotrivire ar semnala o manipulare — dar la Cloudbet, acest lucru nu se va întâmpla.

4. Trebuie să înțeleg criptografia ca să folosesc acest instrument?

Nu. Instrumentul face toată munca grea. Tu doar copiezi, lipești și verifici.

5. Ce este mai exact un hash?

Gândește-te la el ca la o semnătură digitală. Este generat prin amestecarea Server Seed-ului folosind un algoritm criptografic. Dacă cineva încearcă să modifice sămânța ulterior, hash-ul va fi diferit — și vei observa frauda.

6. Pot folosi instrumente terțe pentru a verifica rezultatele?

Da. Sistemul Cloudbet este compatibil cu instrumente de verificare independente, așa că îți poți verifica rezultatele chiar și în afara platformei noastre.

7. De ce contează asta dacă jocurile sunt oricum distractive?

Pentru că corectitudinea nu este o funcție bonus — este o cerință. Când pariezi în cripto, meriți control total și zero presupuneri. Provably fair face din asta regula, nu excepția.

Ghiduri Provably Fair pentru jocuri:

  1. Provably Fair la Mines
  2. Provably Fair la Pump
  3. Provably Fair la Plinko
  4. Provably Fair la Dice
  5. Provably Fair la Dice: Golden Ticket
  6. Provably Fair la Limbo
  7. Provably Fair la Roulette