Férovosť kociek v backgammone: ako serverové RNG naozaj funguje
Každý, kto hrá backgammon online, už raz napísal do vyhľadávača nejakú verziu tej istej otázky: sú kocky zmanipulované? Zaslúži si skutočnú odpoveď, nie marketingové pokrčenie plecami. Toto je tá technická verzia: odkiaľ sa berie digitálna kocka, čo sa na nej naozaj môže pokaziť a ako poriadne postavená hra dostane hodený výsledok mimo dosahu úplne každého, a to stavbou, nie sľubom.
Kde sa rodí digitálna kocka
Fyzickú kocku znáhodňuje fyzika: kotúľanie, odraz, súkno. Digitálna kocka je oproti tomu číslo, ktoré vyrobí generátor náhodných čísel (RNG), teda kus softvéru (často živený hardvérom), ktorého jedinou úlohou je vydávať hodnoty, ktoré nikto nedokáže predpovedať ani zopakovať.
A generátory si nie sú rovné. Jednoduchý pseudonáhodný generátor, aký zamieša zoznam skladieb, vytvára postupnosť, ktorú úplne určuje jeho začiatočná hodnota, takzvané zrno. Kto pozná zrno a algoritmus, pozná každé „náhodné“ číslo, ktoré ten generátor kedy vydá. Na zoznam skladieb to stačí, na hru, kde ide o niečo, je to bezcenné. Vážne hry používajú kryptograficky bezpečné generátory (CSPRNG), ktoré sa neustále nanovo zasievajú z entropie reálneho sveta: zo šumu hardvéru, z chvenia časovania, z chaosu udalostí operačného systému. Ich určujúca vlastnosť je presne tá, ktorú hra s kockami potrebuje: ani útočník, ktorý sledoval každý predchádzajúci výstup, nedokáže predpovedať ten nasledujúci.
Dôležitejšia otázka: kde to beží?
A tu prichádza časť, na ktorú sa väčšina hráčov nikdy nespýta. Menej záleží na tom, ktorý generátor vyrobí váš hod, než na tom, kde beží. Ak sa kocky generujú na zariadení hráča, hra je štrukturálne pokazená bez ohľadu na to, aký dobrý je algoritmus: upravený klient môže hádzať dovtedy, kým sa mu výsledok nepozdáva, môže siahnuť na výsledok v pamäti alebo nazrieť do hodnôt skôr, než ťah potvrdí. Kocky na strane klienta sú sľub, a sľuby sa dajú z aplikácie odpatchovať.
Správna stavba je serverovo autoritatívna: hod sa deje na hernom serveri, v prostredí, na ktoré hardvér žiadneho hráča nedosiahne. Vaše zariadenie dostane hod, ktorý už existuje, a iba ho zanimuje. V našej hre to, ako vysvetľujeme na stránke o férovej hre, ide ešte ďalej než ku kockám: server overuje každý pokus o ťah voči pravidlám a obaja klienti si svoju dosku priebežne porovnávajú s odtlačkom, ktorý server posiela pri každej aktualizácii. Neexistuje jediný okamih, v ktorom by sa zariadeniu hráča verilo v čomkoľvek podstatnom.
Toto jediné rozhodnutie v návrhu naraz odstráni celé kategórie podvádzania. Nikto nemôže hádzať znova, lebo hod predchádza jeho ťahu. Nikto si nemôže prečítať ďalšie číslo zo svojho zariadenia, lebo tam nie je čo čítať. A nikto nemôže potichu ohnúť dosku, lebo doska, ktorá nesúhlasí so serverovou, sa do jednej výmeny správ zahodí a zosynchronizuje nanovo.
Čo naozaj znamená „dokázateľne férové“
Odvetvie roky odpovedalo na otázku „sú kocky poctivé?“ certifikátom: laboratórium raz preverí generátor a vydá pečiatku, ktorej máte veriť. My si myslíme, že si zaslúžite niečo silnejšie než pečiatku. Dokázateľne férové znamená, že nám nemusíte veriť vôbec, lebo každý hod so sebou nesie vlastný dôkaz. Metódou je záväzková schéma s výmenou ťah za ťahom a vyzerá takto: každý hráč má kôpku zapečatených lístkov a my k tomu jednu zalepenú obálku.
- Zámok. Skôr než padne prvá kocka, server vygeneruje tajné zrno a odovzdá vám jeho kryptografický odtlačok, hash, ešte v čase, keď je výsledok neznámy. V tom istom okamihu zapečatí aj aplikácia každého hráča vlastnú očíslovanú kôpku lístkov a zverejní iba odtlačok tej kôpky. Všetky tri odtlačky sa spolu zmrazia do jedného záznamu, takže sa žiaden z nich nedá dodatočne vymeniť za iný a ani jeden neprezradí, čo skrýva.
- Výmena. Kocky nie sú určené dopredu. Stavajú sa po jednej pevným, verejným vzorcom a každá z nich potrebuje lístok z oboch kôpok. V každom ťahu zverejní svoj ďalší lístok najprv hráč, ktorý ide hádzať, súper vydá ten svoj až vtedy, keď je prvý zamknutý, a kocka sa počíta posledná, z oboch lístkov a zo zapečateného zrna. Pečať každého lístka je odvodená od nasledujúceho lístka v jeho kôpke, a práve preto sa lístok nedá dodatočne vymeniť. A keďže posledný neznámy vstup sedí vždy na druhej strane dosky, nikto, ani my, nemôže poznať kocku dovtedy, kým je otvorené akékoľvek rozhodnutie, ktoré by ju ešte zmenilo.
- Kontrola. Keď sa partia skončí, server otvorí obálku, ukáže vám zrno a zverejní sa celý záznam. Zahashujete zrno a overíte, že sedí s odtlačkom, ktorý ste dostali na začiatku, čo je dôkaz, že sa nikdy nevymenilo; skontrolujete, že každý lístok patrí do kôpky, ku ktorej sa jeho strana zaviazala; a potom spustíte ten istý verejný vzorec a každý hod si odvodíte sami. Keby bola čo i len jedna kocka postrčená, prepočet by nesedel a manipulácia by sa nedala poprieť.
Presne v tom je celý rozdiel medzi „verte nášmu certifikátu“ a „skontrolujte si to sami“. Nemusíte veriť, že sú naše kocky poctivé; môžete si ich overiť, jednu dohranú partiu po druhej, matematikou, ktorú si prepočíta ktokoľvek. Stránka o férovej hre nesie nástroj, ktorý robí presne toto: dajte mu dohranú partiu a sledujte, ako sa každý hod pred vašimi očami odvodí zo zverejneného záznamu. Jediné, čo verejná stránka nedokáže, je potvrdiť, že ten záznam patrí k vášmu zápasu, lebo kópiu odtlačkov zamknutých pred hrou si uchovalo jedine vaše zariadenie; táto posledná kontrola býva v aplikácii.
Jedna poctivá poznámka, ktorú dôkaz nemení: dokázateľne férové kocky stále nie sú hladké, zdvorilé kocky, čo sa striedajú. Overiteľné zrno vytvára zhluky, série a suchá presne v takej frekvencii, akú predpovedá pravdepodobnosť. Podozrivý by bol práve prúd, v ktorom by žiadne série neboli. Skutočná náhoda je hrudkovitá, a práve preto tak často pôsobí zmanipulovane.
Prečo férové kocky pôsobia zmanipulovane
Tým sa dostávame k psychológii, lebo pocit zmanipulovaných kociek je skutočný aj vtedy, keď kocky nie sú. Robia to tri dobre zdokumentované skreslenia:
Výberová pamäť. Pamätáte si večer, keď ste štyri ťahy po sebe tancovali na bare. Nepamätáte si tie stovky bežných vstupov predtým. Bolestivé výsledky sa ukladajú silnejšie, a tak si každý skúsený hráč nosí súkromné múzeum krívd a nijaký záznam o obyčajnom.
Zákon malých čísel. Ľudia čakajú, že aj drobná vzorka bude vyzerať ako dlhodobý priemer. Pri 36 hodoch by ste každý hod „mali“ vidieť asi raz, lenže skutočné 36-hodové vzorky sú divoko nerovnomerné: niektoré čísla chýbajú a iné prídu trikrát. Jeden večer backgammonu je drobná vzorka. Vládne jej rozptyl, a rozptyl pôsobí osobne.
Asymetria straty. Strela 17 zo 36, ktorá vás trafí, pôsobí ako nespravodlivosť; tých 19 z 36 prípadov, keď minie, nepôsobí nijako. Backgammon neustále rozhoduje udalosti s pravdepodobnosťou 30 až 70 percent, takže prísun „nemožných“ výsledkov nikdy nevyschne, a prichádzajú presne takou rýchlosťou, akou sú možné.
Protiliekom je poznať skutočné čísla. Ktorékoľvek konkrétne číslo padne v 11 hodoch z 36. Dublet príde raz za šesť hodov. Blot vzdialený šesť pipov je zasiahnutý takmer v polovici prípadov. Naša príručka o základoch pravdepodobnosti rozprestrie celú tabuľku, a keď máte tie čísla v hlave, väčšina „zmanipulovaných“ chvíľ sa sama preradí medzi obyčajné utorky.
Otázka motivácie
Ešte jedna poctivá vec: prevádzkovateľ backgammonu nemá z krivých kociek čo získať a môže stratiť všetko. Súťaživí hráči, teda tí, čo zostávajú roky, sú presne tí ľudia, ktorí sledujú šance a všimnú si odchýlku. Ratingové systémy sú zároveň verejnou audítorskou stopou: keby kocky niekoho systematicky zvýhodňovali, rozdelenie ratingov by sa merateľne posunulo. Férové kocky nie sú cnosť, ktorú predvádzame; sú jediný stabilný obchodný model, aký hra zručnosti má.
Ako sa presvedčiť sami
Neverte slovu žiadneho prevádzkovateľa, ani nášmu. Naučte sa základné šance z príručky o pravdepodobnosti a potom sledujte vlastné partie s tými číslami v hlave: šance na vstup proti domu s dvomi spravenými poľami, frekvenciu dubletov počas dlhého večera, úspešnosť priamych striel. Poctivé kocky sa k predpovediam tabuľky približujú pozoruhodne rýchlo. A ak chcete detaily stavby, teda záväzky a výmenu ťah za ťahom, hody na strane servera, overovanie dosky pri každom ťahu, párovanie cez Glicko-2, stránka o férovej hre je úplným vyhlásením o tom, ako je náš stôl postavený, vrátane overovacieho nástroja. Potom o partiách rozhoduje tá premenná, ktorá rozhodovať má: ako dobre odohráte hody, ktoré dostanete. Strategické príručky sú presne na to.