News

Dají se online vrhcáby zmanipulovat?

Dají. Uzavřený server umí kostky upravit a samotné výsledky to nedokážou. Jak manipulace vypadá a proč ji commit-reveal odhalí.

fairnessprovably fairdice

Dají. Online kostky se hází na serveru, který nevidíš, a nic fyzicky nebrání provozovateli změnit číslo dřív, než dorazí na tvou desku. Samotné výsledky nikdy nic nedokážou ani v jednom směru, takže poctivá otázka nezní, jestli je manipulace možná. Zní: dokáže hra prokázat, že k ní nedošlo.

Děláme hru ve vrhcáby, takže tu nejsme nestranní. Právě proto na to chceme odpovědět pořádně, včetně nepříjemných částí.

Proč kostky na každém webu působí zmanipulovaně?

Protože rozptyl ve vrhcábech je nemilosrdný a lidská paměť je zaujatá. Dvě kostky padnou třiceti šesti způsoby; série nejsou porucha, jsou záruka, a někde dnes večer poctivý server hodí čtyři dublety po sobě proti někomu, kdo zahrál každý kámen správně. Pamatuješ si 5-5, které sebralo tvůj odkrytý kámen. Nepamatuješ si zázračný hod, který tě zachránil minulé úterý. Prohry ulpívají, úniky se vypaří, a po třech špatných partiích za sebou začnou být kostky osobní. Jsou osobní i u skutečné desky ve skutečné kavárně. Zeptej se kohokoli, kdo čtyřicet let posouvá dřevěné kameny.

A tady je past. Zmanipulovaná hra by působila naprosto stejně. Série nedokazují nic ani v jednom směru, takže pokud je tvým důkazem to, jak kostky působily, poctivý server od nepoctivého neodlišíš. My také ne. Tohle není obhajoba online kostek. Tohle je právě jejich problém.

Mohl by web své kostky opravdu upravit?

Technicky ano, a nebylo by to ani těžké. Server vidí celou desku ještě před hodem. Provozovatel, který by chtěl podvádět, by mohl:

  • Naklonit pár hodů ze sta ve chvílích, které váží nejvíc: hod, který trefí, vstup z lavice, který selže, dublet, jenž obrátí prohranou partii.
  • Držet zápasy uměle vyrovnané, aby seance trvaly déle a prohry působily jako těsné.
  • Potichu nadržovat straně, na které má provozovatel zájem.
  • Dělat to dost zřídka na to, aby kostky pořád prošly každým statistickým testem, jaký hráč zvládne spustit.

Netvrdíme, že to nějaký konkrétní web dělá. Říkáme, že to architektura umožňuje. Uzavřený server je zamčená místnost: provozovatel hází o samotě, nahlásí číslo a poprosí tě, abys věřil. Zvenčí za dveřmi vypadají poctiví i nepoctiví provozovatelé úplně stejně.

Nedokazuje certifikovaný generátor, že jsou kostky poctivé?

Přečti si, co ten certifikát opravdu pokrývá. Laboratoř testuje generátor: algoritmus na zkušebním stole, který vyrábí miliony čísel procházejících statistickými kontrolami. To certifikuje součástku. O doručení neříká nic, tedy o tom, jestli číslo, které dorazilo na tvou desku, přišlo z toho generátoru, v tu chvíli a cestou nezměněné. Ověřená váha v zázemí nedokazuje, že tvůj chléb byl vážen na ní.

Certifikace je navíc momentka. Běžící servery se neustále nasazují znovu a cesta kódu mezi generátorem a tvou partií se mění ještě dlouho poté, co laboratoř odešla domů. Certifikovaný generátor tak odpovídá na otázku, kterou se nikdo doopravdy neptal. Nejde o to, jestli někde v budově existují dobré kostky. Jde o to, jestli je tvá partie dostala, při každém hodu, dnes večer.

Co vlastně commit-reveal mění?

Přesouvá poctivost ze slibu na důkaz. Než partie začne, server vytáhne tajné semínko a zveřejní jeho otisk, hash SHA-256 zvaný závazek. Každý hod v partii se pak z toho semínka odvodí, jeden výpočet HMAC-SHA256 na hod, popořadě. Když partie skončí, server semínko odhalí.

Teď může kdokoli zkontrolovat dvě věci. Zahashuj odhalené semínko: musí sedět se závazkem zveřejněným před prvním tahem. Přepočítej hody: musí sedět s každým číslem, které se na desce objevilo. Kdyby server po zhlédnutí tvé pozice změnil byť jedinou kostku, výpočet by nevyšel. Manipulace přestává být podezřením, které nelze otestovat, a stává se lží, kterou lze přistihnout.

Kostky zamčené před partií na ni nemohou reagovat.

V tom je jádro. Užitečný druh manipulace je reaktivní: uvidět odkrytý kámen a hodit trefu. Commit-reveal serveru bere oči, protože celá posloupnost byla pevně dána před zahajovacím tahem a jakýkoli zásah po závazku je matematicky odhalitelný. Co nedělá, je že kostky nezjemní. Posloupnost byla poctivá, ne milosrdná. Pořád budeš sedět na lavici v tu nejhorší možnou chvíli, a teď to budeš umět prokázat jako poctivé.

Jak partii ověřit v praxi?

Takhle jsme to postavili v Orionu. Každá partie odehraná na našich serverech nese závazek učiněný před prvním hodem, server ověřuje každý tah u zdroje a kontrola dohrané partie zabere zhruba minutu:

Otevři ověřovač. Jdi na orion.arthea.ai/verify v jakémkoli prohlížeči. Nic k instalaci, žádný účet k založení.

Zadej identifikátor partie. Každá serverová partie v Orionu ho má. Vlož ho.

Nech počítat prohlížeč. Stránka přepočítá závazek i každý hod pomocí Web Crypto, lokálně, ve tvém prohlížeči. Naše slovo do kontroly nevstupuje. Kdyby bylo změněno jediné číslo, přepočet by to řekl.

Ověřovač běží už dnes. Samotná hra je hotová a dveře na orion.arthea.ai/go nesou odkazy na App Store a Google Play a vždy ukazují, co je dostupné právě teď. Tak či tak poctivá odpověď zůstává. Ano, online vrhcáby se dají zmanipulovat. Lékem není hezčí slib. Jsou jím kostky, které ukazují svůj výpočet.