Poštenje kockica u bekgemonu: kako zaista radi RNG na serveru
Svako ko igra bekgemon onlajn je bar jednom ukucao neku verziju istog pitanja: da li su kockice nameštene? To pitanje zaslužuje pravi odgovor, a ne marketinško sleganje ramenima. Ovo je tehnička verzija: odakle dolaze digitalne kockice, šta zaista može da pođe naopako i kako ispravno napravljena igra stavlja bačeni broj van svačijeg domašaja arhitekturom, a ne obećanjem.
Gde se rađa digitalna kockica
Pravu kockicu meša fizika: prevrtanje, odskok, čoja. Digitalna kockica je broj koji proizvodi generator slučajnih brojeva (RNG), softver (često potpomognut hardverom) čiji je posao da izbacuje vrednosti koje niko ne može da predvidi niti da ponovi.
Nisu svi generatori isti. Običan pseudoslučajan generator, onaj koji meša plejlistu, daje niz potpuno određen početnom vrednošću (semenom). Ako znate seme i algoritam, znate svaki "slučajan" broj koji će taj generator ikada dati. Za plejlistu je to sasvim dovoljno, za igru u kojoj nešto zavisi od ishoda je beskorisno. Ozbiljne igre koriste kriptografski bezbedne generatore (CSPRNG), koji se neprekidno dosejavaju entropijom iz stvarnog sveta: šumom hardvera, podrhtavanjem tajminga, haosom sistemskih događaja. Njihova ključna osobina je baš ona koja igri s kockicama treba: ni onaj ko je video sve dosadašnje izlaze ne može da predvidi sledeći.
Važnije pitanje: gde se to izvršava?
Evo dela koji igračima retko padne na pamet. Manje je bitno koji generator je proizveo vaše bacanje, a više gde se izvršio. Ako se kockice generišu na uređaju igrača, igra je slomljena po konstrukciji, ma koliko algoritam bio dobar: izmenjen klijent može da baca iznova dok mu se rezultat ne dopadne, da menja ishod u memoriji ili da zaviri u vrednosti pre nego što se odluči za potez. Kockice na strani klijenta su obećanje, a obećanja se iz aplikacije uklanjaju zakrpom.
Ispravna arhitektura je serverska: bacanje se dešava na igračkom serveru, u okruženju do kog hardver nijednog igrača ne dopire. Vaš uređaj dobija bacanje koje već postoji i samo ga animira. U našoj igri, kao što objašnjavamo na stranici o fer igri, to ide dalje od kockica: server proverava svaki pokušani potez u odnosu na pravila, a oba klijenta neprekidno porede svoju tablu s otiskom koji server šalje uz svako ažuriranje. Ne postoji trenutak u kom se uređaju igrača veruje za išta bitno.
Ta jedna odluka u dizajnu odjednom briše čitave kategorije varanja. Niko ne može da baci ponovo, jer bacanje prethodi njegovom potezu. Niko ne može da pročita sledeći broj sa sopstvenog uređaja, jer tamo tog broja nema. I niko ne može tiho da savije tablu, jer se tabla koja se ne slaže sa serverskom odbacuje i sinhronizuje iz početka za jedan obilazak mreže.
Šta "dokazivo pošteno" zaista znači
Godinama je odgovor industrije na pitanje "jesu li kockice poštene?" bio sertifikat: laboratorija jednom pregleda generator i izda pečat u koji treba da verujete. Mislimo da zaslužujete nešto jače od pečata. Dokaziva poštenost znači da nama uopšte ne morate da verujete, jer svako bacanje nosi sopstveni dokaz. Mehanizam je šema obavezivanja s razmenom potez po potez, a izgleda ovako: gomila zapečaćenih ceduljica kod svakog igrača plus naša zapečaćena koverta.
- Zaključavanje. Pre nego što padne prva kockica, server pravi tajno seme i predaje vam njegov kriptografski otisak, heš, dok je ishod još nepoznat. U istom trenutku aplikacija svakog igrača zapečati sopstvenu numerisanu gomilu ceduljica i objavi samo otisak te gomile. Sva tri otiska se zajedno zamrzavaju u jedan zapis, tako da se posle nijedan ne može zameniti drugim, a nijedan ne odaje ono što krije.
- Razmena. Kockice nisu rešene unapred. Grade se jedna po jedna, po utvrđenoj i javnoj formuli, i svakoj treba ceduljica iz obe gomile. Svakog poteza igrač koji tek treba da baci prvi objavljuje svoju narednu ceduljicu, protivnik otkriva svoju tek kada je ta zaključana, a kockica se računa poslednja, iz obe ceduljice i iz zapečaćenog semena. Pečat svake ceduljice izveden je iz naredne u njenoj gomili, zbog čega se ceduljica ne može zameniti naknadno. A pošto poslednji nepoznat ulaz uvek stoji s druge strane table, niko, ni mi, ne može da zna kockicu dok je otvorena ijedna odluka koja bi je još mogla promeniti.
- Provera. Kada se partija završi, server otvara kovertu i pokazuje vam seme, a ceo zapis se objavljuje. Vi heširate seme i potvrđujete da se poklapa s otiskom koji ste dobili na početku, dokaz da nikada nije zamenjeno; proveravate da svaka ceduljica pripada gomili na koju se njena strana obavezala; a onda pokrenete istu javnu formulu i sami iznova izvedete svako bacanje. Da je jedna kockica pogurana, preračunavanje se ne bi poklopilo, i falsifikat se ne bi mogao poreći.
U tome je cela razlika između "verujte našem sertifikatu" i "proverite sami". Ne morate da verujete da su naše kockice poštene; možete da ih proverite, jednu po jednu odigranu partiju, matematikom koju svako može da ponovi. Na stranici o fer igri stoji alatka koja radi baš to: dajte joj završenu partiju i gledajte kako se svako bacanje izvodi iznova iz objavljenog zapisa. Jedino što javna stranica ne može jeste da potvrdi da je taj zapis vaš meč, jer je kopiju otisaka zaključanih pre igre sačuvao samo vaš uređaj; ta poslednja provera živi u aplikaciji.
Jedna poštena napomena koju dokaz ne menja: dokazivo poštene kockice i dalje nisu glatke, pristojne i naizmenične. Proverljivo seme proizvodi grudve, nizove i suše tačno onom učestalošću koju verovatnoća predviđa. Sumnjiv bi bio upravo tok bez nizova. Prava slučajnost je grudvasta, i baš zato tako često deluje namešteno.
Zašto poštene kockice deluju namešteno
Time stižemo do psihologije, jer je osećaj nameštenih kockica stvaran i onda kada kockice to nisu. Posao obavljaju tri dobro dokumentovane pristrasnosti:
Selektivno pamćenje. Pamtite ono veče kada ste četiri poteza zaredom ostali na baru. Ne pamtite stotine običnih ulazaka pre toga. Bolni ishodi se upisuju jače: svaki iskusan igrač nosi lični muzej nepravdi i nijedan zapis o onome što je bilo obično.
Zakon malih brojeva. Ljudi očekuju da sićušan uzorak liči na dugoročni prosek. U 36 bacanja svaka kombinacija bi "trebalo" da se pojavi otprilike jednom, ali stvarni uzorci od 36 bacanja su divlje neravni: nekih brojeva nema uopšte, drugi dolaze triput. Jedno veče za tablom je sićušan uzorak. U njemu vlada varijansa, a varijansa se doživljava lično.
Asimetrija gubitka. Metak od 17 od 36 koji vas pogodi liči na nepravdu; 19 puta od 36 kada promaši ne osetite ništa. A pošto se u bekgemonu neprekidno razrešavaju događaji od 30 do 70 odsto, "nemogućih" ishoda ima u stalnom dotoku, tačno onom brzinom kojom su i mogući.
Protivotrov je poznavanje pravih brojeva. Bilo koji određeni broj pojavi se u 11 od 36 bacanja. Dublet stiže jednom u šest bacanja. Blot udaljen šest pipova biva pogođen skoro u polovini slučajeva. Naš vodič kroz osnove verovatnoće raspoređuje celu tabelu, a čim vam te cifre uđu u glavu, većina "nameštenih" trenutaka sama sebe prekvalifikuje u sasvim običan utorak.
Pitanje interesa
Još jedna poštena stavka: operater bekgemona nema šta da dobije od krivih kockica, a ima sve da izgubi. Takmičarski igrači, oni koji ostaju godinama, upravo su ljudi koji prate izglede i primećuju odstupanja. Rejting sistem istovremeno radi i kao javni revizorski trag: kada bi kockice nekome sistematski išle naruku, raspodela rejtinga bi se pomerila na merljiv način. Poštene kockice nisu vrlina koju glumimo; to je jedini stabilan poslovni model koji igra veštine uopšte ima.
Kako da se uverite sami
Ne verujte na reč nijednom operateru, ni nama. Naučite osnovne učestalosti iz vodiča o verovatnoći, pa onda gledajte sopstvene partije s tim brojevima u glavi: izglede za ulazak protiv table s dva zatvorena polja, učestalost dubleta kroz dugu sesiju, procenat pogodaka na direktne metke. Poštene kockice se približavaju predviđanjima iz tabele upadljivo brzo. A ako želite arhitektonske detalje, obavezivanja i razmenu potez po potez, bacanja na serveru, proveru table pri svakom potezu, Glicko-2 uparivanje protivnika, stranica o fer igri je potpun opis toga kako je naš sto napravljen, zajedno s alatkom za proveru. A onda partije odlučuje ona promenljiva koja i treba: koliko dobro odigrate ono što ste dobili. Vodiči kroz strategiju postoje baš zbog toga.