News

Pot fi tablele online măsluite?

Pot. Un server închis poate aranja zarurile, iar rezultatele singure nu dovedesc nimic. Cum arată măsluirea și de ce commit-reveal o face vizibilă.

fairnessprovably fairdice

Pot. Zarurile online se aruncă pe un server pe care nu îl vezi, și nimic nu împiedică fizic un operator să schimbe un număr înainte ca acesta să ajungă pe tabla ta. Rezultatele singure nu vor dovedi niciodată nimic în nicio direcție, așa că întrebarea cinstită nu este dacă măsluirea e posibilă. Este dacă un joc poate dovedi că ea nu s-a întâmplat.

Noi facem un joc de table, deci nu suntem neutri aici. Tocmai de aceea vrem să răspundem cum se cuvine, inclusiv la părțile incomode.

De ce par zarurile măsluite pe orice site?

Pentru că varianța la table e nemiloasă, iar memoria omului e părtinitoare. Două zaruri cad în treizeci și șase de feluri; seriile nu sunt o defecțiune, sunt o garanție, și undeva în seara asta un server cinstit va da patru duble la rând împotriva cuiva care a jucat fiecare piesă corect. Ții minte 5-5 care ți-a lovit piesa descoperită. Nu ții minte aruncarea miraculoasă care te-a salvat marțea trecută. Înfrângerile rămân, scăpările se evaporă, și după trei partide proaste la rând zarurile devin ceva personal. Devin personale și la o tablă adevărată, într-o cafenea adevărată. Întreabă pe oricine împinge piese de lemn de patruzeci de ani.

Și aici e capcana. Un joc măsluit s-ar simți exact la fel. Seriile nu dovedesc nimic în nicio direcție, deci dacă dovada ta e cum s-au simțit zarurile, nu poți deosebi un server cinstit de unul necinstit. Nici noi nu putem. Asta nu e o apărare a zarurilor online. Asta e chiar problema lor.

Ar putea un site chiar să își aranjeze zarurile?

Tehnic da, și nici măcar nu ar fi greu. Serverul vede toată tabla înainte să arunce. Un operator care ar vrea să trișeze ar putea:

  • Să încline câteva aruncări din o sută în momentele care contează cel mai mult: aruncarea care lovește, intrarea de la bară care eșuează, dubla care întoarce o partidă pierdută.
  • Să țină meciurile strânse artificial, ca sesiunile să dureze mai mult și înfrângerile să pară ratări la milimetru.
  • Să favorizeze discret partea în care operatorul are un interes.
  • Să facă asta destul de rar încât zarurile să treacă în continuare orice test statistic pe care l-ar putea rula un jucător.

Nu susținem că un anumit site face asta. Spunem că arhitectura permite. Un server închis e o cameră încuiată: operatorul aruncă în particular, raportează un număr și te roagă să te încrezi. Din afara ușii, operatorii cinstiți și cei necinstiți arată identic.

Un generator certificat nu dovedește că zarurile sunt corecte?

Citește ce acoperă de fapt certificatul. Un laborator testează un generator: un algoritm pe bancul de probă, care produce milioane de numere ce trec verificări statistice. Asta certifică piesa. Nu spune nimic despre livrare, adică despre dacă numărul ajuns pe tabla ta a venit de la acel generator, în acel moment, nemodificat pe drum. Un cântar verificat metrologic din depozit nu dovedește că pâinea ta a fost cântărită pe el.

Certificarea e și un instantaneu. Serverele în funcțiune sunt reinstalate mereu, iar traseul codului dintre generator și partida ta continuă să se schimbe mult după ce laboratorul a plecat acasă. Așa că generatorul certificat răspunde la o întrebare pe care nimeni nu o punea cu adevărat. Contează nu dacă există zaruri bune undeva în clădire. Contează dacă partida ta le-a primit, la fiecare aruncare, în seara asta.

Ce schimbă de fapt commit-reveal?

Mută corectitudinea din promisiune în dovadă. Înainte să înceapă partida, serverul extrage o sămânță secretă și publică amprenta ei, un hash SHA-256 numit angajament. Fiecare aruncare din partidă este apoi derivată din acea sămânță, un calcul HMAC-SHA256 pe aruncare, în ordine. Când partida se termină, serverul dezvăluie sămânța.

Acum oricine poate verifica două lucruri. Aplică hash pe sămânța dezvăluită: trebuie să coincidă cu angajamentul publicat înainte de prima mutare. Recalculează aruncările: trebuie să coincidă cu fiecare număr apărut pe tablă. Dacă serverul ar fi schimbat fie și un singur zar după ce ți-a văzut poziția, socoteala nu ar ieși. Măsluirea încetează să fie o bănuială pe care nu o poți testa și devine o minciună pe care o poți prinde.

Zarurile încuiate înainte de partidă nu pot reacționa la ea.

Ăsta e miezul. Felul util de măsluire e reactiv: vezi piesa descoperită, dai numărul care lovește. Commit-reveal ia ochii serverului, pentru că toată succesiunea a fost fixată înainte de mutarea de deschidere, iar orice intervenție după angajament se detectează matematic. Ce nu face este să facă zarurile blânde. Succesiunea a fost cinstită, nu milostivă. Vei sta în continuare la bară în cel mai prost moment posibil, iar acum vei putea dovedi că a fost corect.

Cum verifici o partidă în practică?

Așa am construit-o în Orion. Fiecare partidă jucată pe serverele noastre poartă un angajament făcut înainte de prima aruncare, serverul validează fiecare mutare la sursă, iar verificarea unei partide încheiate durează aproximativ un minut:

Deschide verificatorul. Intră pe orion.arthea.ai/verify în orice browser. Nimic de instalat, niciun cont de creat.

Introdu codul partidei. Fiecare partidă de server din Orion are unul. Lipește-l acolo.

Lasă browserul să calculeze. Pagina recalculează angajamentul și fiecare aruncare folosind Web Crypto, local, în browserul tău. Cuvântul nostru nu intră în verificare. Dacă un singur număr ar fi fost schimbat, recalcularea ar spune.

Verificatorul funcționează deja azi. Jocul în sine e gata, iar ușa de la orion.arthea.ai/go poartă legăturile către App Store și Google Play și arată mereu ce este disponibil chiar acum. Oricum ar fi, răspunsul cinstit rămâne. Da, tablele online pot fi măsluite. Remediul nu e o promisiune mai frumoasă. Sunt zaruri care își arată socoteala.