Kako pobediti slot aparate
- Aleks, čovek koji je dešifrovao PRNG (generator pseudo-nasumičnih brojeva) koje koriste slotovi i napravio milione
- Prevare slot aparata, manipulacija hardvera i specijalni alati
- Slotovi i softverski problemi
- Prilog: Kako je Aleksov algoritam mogao da funkcioniše
Dobro dizajnirani slot aparati koji koriste pravi generator nasumičnih brojeva su teorijski nepobedivi. Ali u stvarnosti, postoje mnogi dokumentovani slučajevi igrača koji su uspeli da prevare slot aparat da im isplati mnogo više nego što su se vlasnici kazina nadali.
Mnogi od ovih trikova su očigledna krađa. Oni obično uključuju alate za manipulisanje hardvera slot aparata, njegovog dispenzera novčića ili akceptora novčanica. Bilo je slučajeva kada je insajder unutar casina, pomagao da se manipulišu slot aparati.
U drugim slučajevima, igrače je prilično neobično pratila sreća. Oni su uspeli da pronađu softverski problem i iskoriste ga u svoju korist.
Međutim, daleko najzanimljiviji slučaj je priča iz nedavne prošlosti (2009-2018) o Rusu iz St. Petersburga, koji je uspeo da uspešno predvidi ishod spina na određenim modelima slot aparata i iskoristi ovo u svoju korist da „izmuze" milione od kazina širom sveta.
Ova priča je toliko neverovatna da sam odlučio da potrošim neko vreme na nju i zaronim u dublju analizu tehnika koje je koristio.
Aleks, čovek koji je dešifrovao PRNG (generator pseudo-nasumičnih brojeva) koje koriste slotovi i napravio milione
Aleks je radio kao freelance programer i haker kada ga je ruski kazino zaposlio da manipuliše RTP nekih Novomatic slot aparata. Da bi uradio posao, Aleks je morao detaljno da nauči kako funkcioniše unutrašnjost ovih aparata. Takođe je učio o PRNG-u (generatorima pseudo-nasumičnih brojeva), kako funkcionišu i kako se koriste kod slot aparata. Prelomna tačka se dogodila kada je primetio da slot mašine koriste nebezbedan PRNG algoritam koji bi mogao biti predvidiv.
Pravi RNG koristi elektromagnetni šum kako bi generisao potpuno nasumične i potpuno nepredvidive vrednosti. PRNG funkcioniše na drugačiji način. Počinje sa prethodno definisanim vrednostima i onda ih izmeša sa nekim drugim ulaznim jedinicama kako bi generisao beskonačnu seriju vrednosti. Izlazne vrednosti PRNG-a se na prvi pogled čine potpuno nasumičnim i nemogućim za predviđanje. Ipak, ako PRNG koristi slab algoritam, a Vi znate tačno koji, onda možete biti u mogućnosti da predvidite sledeći nasumični broj.
Aleks je očigledno primetio da su algoritmi koje koriste neki slot aparati slabi, i odlučio da tu činjenicu iskoristi u svoju korist.
Tokom sledećih nekoliko godina, uspeo je da postavi temelje, pripremajući se za nešto što će postati mnogo sofisticiranija operacija:
- Uradio je obrnuti-inžinjering nekoliko popularnih slot igara.
- Razvio je algoritam koji može da shvati trenutne PRNG parametre i predvidi ishode budućih spinova zasnovanih na 24 spina na slotu.
- Razvio je Iphone aplikaciju koja je koristila predviđene ishode da kaže igraču kada tačno da pritisne spin dugme kako bi pobedio.
- Zaposlio je desetine "agenata na terenu", čiji je zadatak bio da izvlače milione iz casina širom sveta u toku narednih 6-7 godina.
Aleks tvrdi da su tokom vremena on i njegov tim uspeli da zarade milione dolara.
Da li je Aleksov sistem legalan i moralno prihvatljiv?
Tehnika koju je razvio ne uključuje zabranjene manipulacije slot aparata. To je veliki kontrast u odnosu na mnoge tehnike krađe opisane kasnije u ovom članku, koje varaju hardver slot aparata da izbaci više para nego nameravano. Aleksova strategija je zasnovana na čistoj matematici njegovih sopstvenih posmatranja, i stoga može biti uzeta u obzir kao validna i čista „kako pobediti slot" strategija.
Mnogi eksperti klađenja (uključujući i mene) smatraju da su Aleksove akcije potpuno čiste i moralno prihvatljive. Ja bih ih uporedio sa brojanjem karata u blekdžeku, lovom na bonuse (bonus hunting) ili sa advantage betting-om (vrstom klađenja gde se koristi razlika u kvotama). Kazina postavljaju ove slot aparate dobrovoljno, i njihov je problem ako neko pametan može da predvidi ishode i dobije prednost na tome.
Ali kazina (posebno konvencionalna kazina - koja nisu online) su ogromne kompanije koje imaju jako puno novca i kontakte sa lokalnim organima vlasti. Kada su kazina primetila da postoji organizovana grupa koja koristi njihove slot aparate kao bankomate, bez sumnje su povukla neke veze. Nadležni organi i advokati kazina su naposletku uspeli da pronađu zločin koji odgovara onome što je ova grupa radila. Naime, „zavera da se počini prevara". Ovo je rezultovalo hapšenjem 4 Aleksova agenta u Mizuriju 2015. godine (koji su kasnije optuženi i osuđeni do 2 godine u federalnom zatvoru) [2].
To je bila prelomna tačka u priči, i neki agenti su počeli otvorenije da pričaju o detaljima njihovog sistema. Grupa je verovatno postala poznata većini službenika obezbeđenja kazina, i druga hapšenja su usledila u Singapuru [3].
Aleksov pokušaj da sarađuje sa proizvođačima slotova
Aleks je, prepoznajući da postaje previše rizično za njegove agente da nastave sa korišćenjem ovog sistema, odlučio da napravi poslednji pokušaj da iskoristi svoju veštinu za pravljenje para. Kontaktirao je Aristocrat - proizvođača slot aparata koje je uspeo da kompromituje - direktno. Nadajući se nagradi od 8 cifara, ponudio je svoje usluge kako bi poboljšao PRNG algoritme i popravio sve probleme bezbednosti. U isto vreme, pretio je da ako Aristrocrat ne prihvati njegovu ponudu, on će prodati ove osetljive informacije njihovim konkurentima. Međutim, Aristocrat je odbio da igra njegovu igru, uprkos činjenici da im je pružio sve matematičke detalje njihove ranjivosti.
Kada je Aristocrat odbio Aleksovu ponudu, on je odlučio da iskoristi još jednu šansu, i ode malo dalje objavljujući detalje svoje priče. Kontaktirao je Brendana Koernera - čoveka koji je već pisao o poznatim činjenicama njegove priče u ovom članku.
Brendan se složio da nastavi sa pričom, i objavio je još jedan članak sa mnogo više detalja koji su došli direktno od Aleksa. Da se to nije dogodilo, Vi ne biste čitali o njima u mom članku.
Koliko je to bilo veliko i koje su posledice?
Ima jako puno dokaza da je Aleks uspeo uspešno da primeni svoju strategiju na zastarelim Aristrocrat MK IV slot aparatima. Sam Aristocrat sada prepručuje svojim klijentima da zamene ove aparate. Uprkos tome, i dalje postoje hiljade ovih aparata u mnogim kazinima širom sveta. Ipak, mnoga kazina ne bi trebalo da imaju nikakav problem da ih zamene kada je neophodno.
Aleks tvrdi (i postoje neki signali koji potvrđuju njegovu tvrdnju [4]) da je 2009. godine, počeo da dešifruje PRNG-e nekih starih Novomatic kabineta. Ipak, prilično je verovatno da je Novomatic uspeo da ukloni ovu ranjivost sa sigurnosnim ažuriranjem 2011. godine. Možda ovaj Novomatic-ov patent za Sistem i Metodu centralizovanog procesuiranja generatora nasumičnih brojeva iz 2013. godine takođe ima nešto sa tim.
On takođe tvrdi da je uspeo da uradi isto sa nekim aparatima koje proizvodi Atronic.
Daleko najjača Aleksova tvrdnja je da je našao sličnu ranjivost kod Aristrocrat Helix kabineta. Helix je jedan od njihovih trenutnih modela, tako da ako Aleks ne blefira, onda Aristocrat može imati i mnogo veći problem - posebno ako ga nije moguće rešiti sigurnosnim ažuriranjem ili manjom zamenom čipa. Ali sa druge strane, Aristocrat je ogromna kompanija sa godišnjim prihodima od 2 biliona dolara i 500 miliona dolara godišnjeg profita. Tako da je veoma verovatno da će preživeti (sa većom unutrašnjom zamenom hardvera i oštećenom reputacijom, u najgorem scenariju).
Kako bilo, ne očekujte previše zabave. Čak i ako Aleks odluči da objavi više detalja o ovim algoritmima, kazina će najverovatnije isključiti sve pogođene slot aparate pre nego što obični ljudi dođu do šanse da ovo iskoriste u svoju korist.
Istinita priča ili urbana legenda?
Postoji mnogo indirektnih dokaza da je priča koju je opisao Aleks istinita. Nadležni organi ne bi uhapsili i osudili njegove agente u 2 zemlje da nije istinita. Novomatic ne bi istraživao manipulaciju slot aparata, i ne bi izdao sigurnosna ažuriranja da nije istinita.
Ali zar nemaju proizvođači slotova posvećene specijaliste za bezbednost? Kako je moguće da tako ogromne kompanije previde takvu ranjivost?
Objasniću Vam to prilično lako.
Radio sam kao programer 10 godina i mogu da kažem da je sigurnosne pretnje vrlo lako prevideti. To je čak i mnogo verovatnije za nove i nepoznate tipove napada kao što je ovaj. Čak i ako je bio neki menadžer bezbednosti nadležan u to vreme, bio je obučen da ublaži pretnje koje su mu bile poznate do tada (majmunska kandža itd.). Ako razvojni tim nije imao pravog eksperta koji bi mogao da predvidi nove ranjivosti i digne ruku, onda je ova PRNG pretnja veoma lako mogla da se previdi.
Regulatori samo zahtevaju da PRNG generiše uniformnu distribuciju generisanih brojeva. To je ono što čak i prosti PRNG-i rade. Nepredvidivost (kriptografska sigurnost) ne mora uopšte da bude testirana.
Koncept PRNG-a zvuči kao nešto strano većini „poslovnih ljudi". Oni brinu samo o nekoliko stvari. Oni su zadovoljni kada se slot aparat:
- ne kvari,
- sviđa igračima,
- donosi novac.
Takođe, softver u slot aparatima često preživi nekoliko generacija kabineta sa samo malim ažuriranjima. I zašto menjati nešto što je radilo bez problema zadnjih 15 godina, zar ne? Stoga, prilično je moguće da čak i veoma moderni aparati koriste kodove sa početka 90ih.
Moja tehnička analiza Aleksovog sistema
Znam da mnogi od Vas željno iščekuju da saznaju detaljno kako je Aleksov sistem funkcionisao.
To je razlog zbog kog sam uzeo sve objavljene detalje i odlučio da demonstriram kako obrnuti-inženjering može biti iskorišćen za predviđanje budućih ishoda PRNG slota. Pogledajte moju tehničku analizu na kraju ovog članka.
Prevare slot aparata, manipulacija hardvera i specijalni alati
Kao što sam prethodno tvrdio, verujem da je Aleksov sistem moralno prihvatljiv i čak legalan u nekim jurisdikcijama. Međutim, nije svaki način koji je prethodno korišćen za „pobedu" slotova bio takav. Postoje brojni nelegalni načini koji su korišćeni u prošlosti za varanje na slot aparatima.
Većina zabeleženih prevara na slot aparatima su imale nešto sa hardverskom manipulacijom i/ili specijalni alat korišćen da „prevari" slot aparat i zaradi novac.
Neke od njih su se dešavale u više navrata, dok su druge bile jednokratne operacije. Šta sve one imaju zajedničko je činjenica da sve funkcionišu samo na fizičkim slot aparatima koje možete naći u kazinima. Kako igrači moraju da budu fizički blizu aparata da bi ga izmanipulisali, online kazina su zaštićena.
Takođe, kako su kazina stalno na meti prevara, počela su da implementiraju dalje mere sigurnosti i hardverska ažuriranja koja su učinila da je većinu prevara o kojima ću pričati nemoguće izvesti danas.
Okej, hajde da se bacimo na to. Ovde su neki od načina na koji su slot aparati bili varani u prošlosti.
Lažni novčići ili tokeni
Prva slot prevara koju ću pomenuti je veoma jednostavna. Uključuje lažne novčiće ili bilo šta drugo što slot aparati registruju kao formu plaćanja. Ako ste sposobni da proizvedete nešto za šta aparat „misli" da je novčić, možete to da iskoristite da dobijete novac.
Postoji jedan poznat primer čoveka koji je veoma uspešno iskoristio ovu tehniku. Louis Colavecchio je američki kazino falsifikator takođe poznat kao „The Coin" („Novčić"). On i njegova ekipa su uspeli da naprave zavidnu sumu lažnih novčića i kazino tokena i iskoriste ih da dobiju novac u kazinima u Atlantik Sitiju i Konetikatu. Uhvaćen je i kasnije je postao prilično poznat, zahvaljujući History kanalu, koji je napravio dokumentarac o njemu.
Novčići na žici (Yo-Yo)
Ako ste se ikad igrali sa Yo-Yo-om, znate da ide dole i gore kada se koristi kako treba. I to je tačno ono što novčić na žici radi. Prvo, novčić se ubacuje u slot aparat i dozvoljava mu se da ide dovoljno daleko kako bi aparat mogao da ga registruje i započne igru. Zatim se povlači nazad i koristi se iznova i iznova.
Ova tehnika je prilično slična lažnim novčićima, ali eliminiše potrebu za njihovom proizvodnjom na velikoj skali. Sa novčićem na žici, manje-više bilo ko može da prevari kazino. Naravno, nisu svi pokušali, i nisu svi koji su pokušali bili uspešni.
Obrušeni novčić
Tehnologija koja se koristi za procenu validnosti novčića postaje sve bolja i bolja, što je trikove kao što je lažni novčić učinila prevaziđenim ili u najmanju ruku mnogo težim za izvesti. Slot aparati su počeli sa korišćenjem svetlosnog senzora kako bi registrovali uplate i pravili razliku između pravih i lažnih novčića.
Obrušeni novčić je bio registrovan kao validna forma uplate, ali padao je ispod fizičkog komparatora koji je bio korišćen za merenje veličine dolazećih novčića. Novčić je stoga bio vraćen igraču i bio spreman da se koristi ponovo.
Ako je slot aparat zahtevao da novčić ispunjava određene zahteve veličine, drugi objekat se ubacivao u mašinu zajedno sa obrušenim novčićem. Objekat se savršeno podudarao sa veličinom novčića i ostajao bi u aparatu, dok bi obrušeni novčić „prevario" optički senzor i ispao napolje.
Ofingeri
Morate da razmišljate o starom tipu slotova koji su isplaćivali novčiće direktno svaki put kada bi igrač nešto osvojio. Oni su imali mehanički brojač novčića koji je bio korišćen za brojanje novčića koji izlaze kako bi aparat isplatio tačno onoliko koliko je igrač osvojio.
U ovoj prevari, ofinger (ili nešto slično po obliku i formi) je guran u prostor pored brojača novčića, što je uticalo na njegovu preciznost. To je značilo da je slot isplaćivao više nego što je trebalo, što je učinilo da igranje bude profitabilnije na duge staze.
Top-bottom joint
Top-bottom joint je alat koji se sastoji od dva dela... pogodili ste - od gornjeg (vrha) i donjeg dela (dna), tačnije od metalne šipke savijene da čini krug (od gore) i dugačke žice za gitaru ili neke druge tanke žice (na dnu).
Donji deo se ubacivao u donji deo aparata, gde je dolazio u kontakt sa unutrašnjom elektrikom aparata, povlačeći malo naboja iz njega. Zatim se ubacivao gornji deo u prorez za novčiće, koji je zatvarao strujno kolo i terao aparat da isplati sve novčiće koje je imao unutra.
Majmunska kandža
Majmunsku kandžu je stvorila legenda umetnosti varanja slot aparata i kazina - Tommy Glenn Carmichael. Ali da bi došli do majmunske kandže, prvo moramo da se vratimo na top-bottom joint. Carmichael je posedovao servis za popravku televizora koji mu nije išao najbolje. Tako da, kada ga je njegov prijatelj Ray Ming upoznao sa top-bottom joint-om, odlučio je da ga isproba.
Imao je nešto uspeha sa tim alatom, ali je kasnije uhvaćen i osuđen na 5 godina u zatvoru, ne samo zbog varanja, već i zbog njegovih prethodnih osuda. Onda je shvatio da je alat koji je do tada koristio (top-bottom joint) već bio prilično poznat. Shvatio je da mora da smisli nešto novo kako bi uspeo u polju obmane kazina.
Zato je izumeo majmunsku kandžu. Nabavio je video poker aparat i počeo da eksperimentiše. Carmichael je uspeo da stvori veoma prostu, a ipak funkcionalnu čudnu napravu. Spojio je metalnu žicu na iskrivljenu metalnu šipku, koju bi kasnije ubacivao u otvor slot aparata i pomerao bi je u krug dok ne bi pronašao prekidač spremnika za novčiće. Povukao bi i dobio sve što je bilo u aparatu.
Svetlosni štapić
Kako su slot aparati postajali sve više tehnološki napredniji i sigurniji, prestajali su da koriste mehaničke sisteme za brojanje novca. Počeli su da koriste optičke senzore, koji su učinili prevaziđenim većinu prethodno pomenutih prevara. Ali se Carmichael adaptirao na promenu, i osmislio način da prevari nove sisteme.
Napravio je mali uređaj koji je mogao da „zaslepi" optički senzor, zbog čega on ne bi bio u stanju da detektuje koliko novca je ubačeno u aparat i koliko novca se isplaćivalo. S obzirom da je aparat mislio da ispravna suma još uvek nije isplaćena, nastavio je da izbacuje sve više i više para, čime je prevarant postajao sve bogatiji i bogatiji.
Klavirska žica
Datira još iz 1982. godine, kada su kolutovi na slot aparatima još uvek bili upravljani mehanički. Klavirska žica se ubacivala u rotirajuću unutrašnjost slot aparata. Žica je korišćena za blokiranje sata koji je služio za merenje rotacije točkova, što je značilo da je igrač mogao da manipuliše ishod spina.
Grupa ljudi koja je pokušala da izvede ovu operaciju uspela je da pogodi dobitak od $50,000. Međutim, bili su snimani tokom čitavog procesa, i kasnije uhapšeni. Njihov uspeh je bio kratkotrajan, ali su zaista uspeli da promene ishod igre koristeći samo klavirsku žicu.
Zamena čipa
Dennis Nikrasch je uspeo da uradi stvari na drugačiji način. I on je kupio slot aparat da „igra" kod kuće. Shvatio je da čip aparata može da se reprogramira da manipuliše ishod igre. Reprogramirani čipovi su zatim mogli da se instaliraju u slot aparate kazina i koriste za pravljenje jako velike zarade.
I on nije zadržao ovu informaciju samo za sebe. Naručio je gomilu ovih čipova, reprogramirao ih, došao do ključeva za slot aparate i zamenio njihove čipove. I „samo" tako, uspeo je da vodi uspešnu operaciju koja ga je učinila bogatim. Naposletku je, 2004. godine, naravno bio uhapšen, i umro je 2010. godine.
Slotovi i softverski problemi
Iako ovaj način pobeđivanja slotova tehnički nije varanje ni prevara, odlučio sam da ga učinim delom ovog članka. Slotove programiraju ljudi. I ljudi prave greške. Greška u programiranju može dovesti do softverskog gliča (eng. glitch - kratkotrajna greška) koji može kasnije biti (svesno ili nesvesno) iskorišćen od strane igrača.
Postoje mnogi dokumentovani primeri softverskih gličeva koji su rezultovali ogromnim pobedama:
- U 2015. godini, žena od 90 godina iz Ilinoisa osvojila je 41 milion dolara dok je igrala Miss Kitty slot aparat. Kazino je odbio da je isplati.
- Čovek iz Austrije osvojio je džekpot od 43 miliona. Međutim, kazino je insistirao da je pogodio samo 4 od 5 simbola koji su neophodni da bi se aktivirao džekpot. Stoga, njegova pobeda nije isplaćena i umesto toga su mu ponudili 100 dolara i besplatni obrok.
- Žena iz Njujorka je uspela da pogodi neverovatan džekpot od 42.9 miliona dolara. Aparat je imao maksimalnu isplatu od $6500 i ogroman dobitak je bio samo glitch. Kazino je insistirao da ona ima pravo samo na $2.25 od njenog spina.
I mogao bih i dalje da nabrajam. Suština je da se ogromni dobici ponekad dese zbog softverske greške i uglavnom se nikad ne isplaćuju. I što je još gore, neka sumnjiva kazina možda čak i koriste ovo kako ne bi isplaćivali stvarne pobede, već ih okrivljuju kao softverski glitch.
Ipak, softverski glitch ne mora uvek da rezultuje pogađanjem džekpota. Umesto toga može da obezbedi igraču niz manjih pobeda, ili da pogrešno protumači novac ubačen u aparat na način koji favorizuje igrača. Situacije kao što je ova mogu ostati ispod radara i mogu biti iskorišćene od strane snalažljivih igrača.
Ali zapamtite, sreća favorizuje pripremljen um. :)
Prilog: Kako je Aleksov algoritam mogao da funkcioniše
Hajde da počnemo sumiranjem svega što znamo o njegovoj strategiji:
- Aleks je tražio rezultate od otprilike 24 spina kako bi predvideo buduće ishode.
- Agenti su čekali pravi trenutak da pritisnu spin dugme.
- Brendan Koerner je uspeo da prati poreklo PRNG algoritma (na osnovu matematičkih dokaza koje je pružio Aleks) do knjige Umetnost kompjuterskog programiranja.
PRNG koji je mogao biti korišćen u Aristrocrat-ovim kabinetima
Najjednostavniji PRNG algoritam opisan u knjizi Umetnost kompjuterskog programiranja koji daje zadovoljavajuće rezultate je zapravo prilično jednostavan:
RNG = (a * PreviousRNG + c) mod m
Ovaj algoritam, poznat kao Linearni kongruentni generator (Linear Congruential Generator - LCG), se još uvek koristi kao uobičajeni PRNG algoritam u mnogim programskim jezicima (npr. Java).
Da li su programeri Aristocrat slot aparata jednostavno koristili standardan RNG algoritam za programski jezik koji su upotrebljavali? Ili su možda koristili najjednostavniji PRNG koji ispunjava zahteve uniformnosti?
Smatram da je to moguć scenario. Ovaj standardni algoritam funkcioniše i ispunjava kriterijume uniformnosti generisanih nasumičnih brojeva. Moguće je da je ispunjavao sve kriterijume na kojima su programeri radili kod specifikacije zahteva.
Kako provaliti jednostavan PRNG
Hajde sada da spekulišemo koliko odvažno je Aleks mogao da eksploatiše ovaj algoritam.
1. Dekompilacija
Prvi korak je upoznavanje sa tačnim parametrima algoritma (parametri a, c i m). Ovo je lak deo jer su parametri napisani na svakom slot aparatu. Aleks je samo trebao da pročita binarni kod sa memorije kabineta i da uradi dekompilaciju. Ovo je zadatak koji bilo koji specijalista mikroelektronike može da uradi ako je opremljen sa pravim alatima.
Ali samo poznavanje a, c i m parametara nije dovoljno. Dekompilacijom, zapravo možete da pročitate parametre svih PRNG algoritama - čak i onih kriptografski zaštićenih. Da bi mogli da predvidite i eksploatišete RNG sekvencu na pravom slot aparatu koji se nalazi u kazinu, takođe morate znati još nešto - trenutnu RNG seed vrednost (RNG seed - broj koji se koristi za inicijalizaciju generatora pseudo-nasumičnog broja).
2. Nalaženje trenutne RNG vrednosti
LCG PRNG algoritam je uopšteno okarakterisan kao lako predvidiv. To znači da ako znate samo 3 nasumična broja, možete da izračunate parametre a, c i m i lako predvidite naredne brojeve u sekvenci.
Nemojte da Vas to zbuni, jer ovo nije potpuno isti zadatak sa kojim se Aleks suočavao. Aleks je već znao parametre a, c i m iz dekompilacije, ali nije znao tačno RNG stanje vrednosti. Mogao je indirektno da posmatra proizvedene nasumične brojeve gledajući pozicije na kojima se kolutovi zaustavljaju u snimljenim spinovima.
Ključna tačka je da je logika slot igre deterministička i programirana u unutrašnjosti kabineta. Tako da na njoj može da bude urađen obrnuti-inženjering, može da se dekompilira i simulira negde drugo. Logika igra obično uzima nasumični broj i koristi neke matematičke operacije kako bi odredila gde svaki kolut treba da se zaustavi.
Kolutovi slot aparata obično imaju oko 50 do 100 simbola sa spoljne strane, od kojih se tri prikazuje na ekranu. Kombinacije mogu da se ponove, i kolutovi mogu da imaju različitu dužinu, ali hajde da pretpostavimo da postoji 50 jedinstvenih kombinacija na svakom kolutu. Nasumični broj selektuje jednu od ovih 50 kombinacija, tako da samo gledajući prvi točak pri prvom spinu, možete eliminisati 49/50 (98%) potencijalnih nasumičnih brojeva.
Ako igra ima 5 kolutova, onda u proseku samo jedan od 312 miliona nasumičnih brojeva daje tačno isti rezultat kao onaj koji je igrač posmatrao.
Ako znate ishod mnogo uzastopnih nasumičnih (*) brojeva, onda ubrzo možete završiti sa 1 inicijalnim nasumičnim brojem koji daje željeni ishod za svaki spin. Zapravo, broj spinova koji Vam treba je proporcionalan dužini inicijalnog nasumičnog broja.
Samo treba da simulirate sve moguće nasumične brojeva i voilà... pa, ne tako brzo.
Ako slot aparat koristi nasumične brojeve koji su 64 bita dugi, onda bi simuliranje svih njih zahtevalo previše računarske snage (544 godine na mom laptopu). Aleksu je još uvek trebalo malo nenamerne pomoći od Aristocrat-ovih programera. Pronašao sam 2 stvari koje su mogle da pomognu Aleksu:
- Korišćenje RNG stanja koje je previše kratko (32-bitni).
- Korišćenje nasumičnog broja na takav način da može da se iskoristi za nalaženje trenutnog RNG stanja.
1. Previše kratko (32-bitno) RNG stanje
Aristocrat MK IV kabineti su programirani na 32-bitnom ARM 250 procesoru. Ako su programeri slota odlučili da takođe koriste 32-bitnu nasumičnu seed vrednost, onda postoji samo 4,294,967,296 mogućih RNG stanja. Možda izgleda puno, ali savremeni kompjuteri su veoma brzi i ovaj broj opcija može lako da se prouči sirovom silom (traje 4 sekunde na mom laptopu).
Kako bilo, smatram da je ova opcija malo verovatna. Štaviše, 32-bitni nasumični broj je previše kratak da bi pokrio sve moguće rezultate u nekim igrama (5 kolutova * 90 simbola).
2. Korišćenje nasumičnog broja kao način „lak za eksploataciju"
Pretpostavimo da je u upotrebi bilo 64-bitno RNG stanje. Kako koristiti 64-bitni broj za determinističko zaustavljanje 5 kolutova sa 50 simbola svaki? Najlakši pristup koji održava uniformnost bi bio sledeći:
Pos1 = RND modulo 50
Pos2 = (RND / 50) modulo 50
Pos3 = (RND / (50*50)) modulo 50
Pos4 = (RND / (50*50*50)) modulo 50
Pos5 = (RND / (50*50*50*50)) modulo 50
Svaki kolut sada koristi deo nasumičnog broja, i ne postoje nikakve korelacije između pojedinačnih kolutova. Pod uslovom da su nasumični brojevi uniformni, onda postoji jednaka šansa za bilo koji mogući ishod igre (**). Regulator odobrava.
Sada eksploatacija:
Ako znate pozicije kolutova, možete lako da izračunate kraj nasumičnog broja (RND mod 50^5):
RndEnd = pos1 + pos2*50 + pos3*50*50 + pos4*50*50*50 + pos5*50*50*50*50
Da li će Vam ovo pomoći da pogodite trenutno RNG stanje? Zapravo hoće. Dosta će Vam pomoći.
Sada ne morate da simulirate sve moguće nasumične brojeve, već samo one koji se završavaju sa RndEnd. Ili, da budemo još precizniji, svi nasumični brojevi koji se slažu sa obrascem RngEnd + X * 50^5:
- 1 * 312500000 + RndEnd
- 2 * 312500000 + RndEnd
- 3 * 312500000 + RndEnd
- ...
Sada od 2^64 mogućih vrednosti (18466744073709551616), treba da isprobate samo 59029581035. Obe su ogromne sume mogućih vrednosti, ali dok bi na mom laptopu simulacija prve trajala 544 godine, simulacije druge bi bila završena za 60 sekundi. To je ogromna razlika.
I to je to. Sada znate nasumičan broj i može da predvidite buduće spinove.
Prava RNG eksploatacija koju je Aleks koristio je možda bila drugačija, ali kladim se da ima dosta zajedničkih stvari sa procesom koji sam opisao ovde.
(*) U stvarnosti Aleks nije znao ishode uzastopnih nasumičnih brojeva, ali znao je ishode nasumičnih brojeva koji su bili prilično blizu u nizu.
Aleksovi agenti su morali da čekaju određen trenutak da pritisnu spin dugme. To ukazuje da Aristocrat MK IV kabineti kontinualno generišu nasumične brojeve sa nekom učestalošću (u nekim jurisdikcijama to je zakonski zahtev). Kada igrač pritisne spin dugme, trenutni nasumični broj se koristi za određivanje ishoda spina.
Upamtite da učestalost generisanja nasumičnih brojeva mora takođe da bude programirana u unutrašnjosti slot aparata. Stoga, lako može da se pročita i predvidi nakon dekompilacije koda.
Pretpostavimo da se RNG-i u slot aparatima generišu sa frekvencijom od 100/sekundi. Igranje 24 runde može da traje oko 60 sekundi, tako da je u to uključeno oko 6000 nasumičnih brojeva, od kojih se 24 koristi za izračunavanje ishoda spina. Sledeći zadatak je računanje prvog nasumičnog broja koji daje ishod prvog spina, i takođe ishode preostala 23 spina koji se vrte dalje u narednih 6000 ciklusa. Ovo je lako simulirati; samo zahteva još nekoliko puta (sa tačnim optimizacijama).
(**) Da bi dobili savršenu uniformnost, morali bi da izbacite brojeve koji su veći od 2^64 - 2^64 mod (50^5).
Zanimljivi linkovi za više o ovim diskusijama:
- https://news.ycombinator.com/item?id=13579353
- https://www.schneier.com/blog/archives/2017/02/predicting_a_sl.html
- https://www.justice.gov/usao-edmo/pr/four-russian-nationals-indicted-fraud-charges
- https://www.wired.com/story/meet-alex-the-russian-casino-hacker-who-makes-millions-targeting-slot-machines/
- https://www.casino.org/blog/slot-cheats-that-work/