Sconfiggere un poker bot


107

C'è un nuovo bot di poker Open Source chiamato PokerPirate . Sono interessato a qualsiasi modo creativo in cui un'applicazione web potrebbe rilevare / contrastare / sconfiggere un bot di poker. (Questa è una discussione puramente accademica, nello stesso spirito con cui è stato scritto PokerPirate.)


8
Presumo tu intenda " altri modi", dato che la prima / prima risposta è la tua :-)
David Johnstone

9
Parla con ogni giocatore.
Lasse V. Karlsen

2
@Lasse: hmm, non è abbastanza se il giocatore è un bot che supera il test di Turing
lornova

5
Indipendentemente dal fatto che possa superare il test di turing, non impedisce al creatore del bot di sedersi ai tavoli e passare tutto il suo tempo a chattare.
Tom Gullen

6
L'approccio migliore è quello di fare quello che fa Vegas: rigirare le regole del gioco in modo che l'unica strategia vincente sia quella di essere la casa, e poi essere la casa. A quel punto tutto ciò che fa un bot è perdere denaro più velocemente e puoi smettere di preoccuparti.
BCS

Risposte:


209

Sconfiggere un bot dal punto di vista del server

  1. Molti siti di poker online utilizzano input Captcha popup che vengono attivati ​​da attività sospette.

  2. Alcuni siti di poker monitorano i tempi e gli schemi di gioco (ad esempio, lo scenario peggiore è un giocatore che gioca 24 ore su 24, 7 giorni su 7 e 16 tavoli continuamente, c'è una minima possibilità che questo sia un vero essere umano. (Tuttavia alcuni giocatori hanno la capacità di giocare mani molto grandi volumi che ad un occhio inesperto sembrerebbero un bot)

  3. Lancialo glitch. Se sospetti che un giocatore sia un bot, cambia tutte le posizioni delle sue carte da gioco di pochi pixel sullo schermo, rendili diversi colori / disegni / motivi per 1/100 di mani e vedi se li lancia. Se non è in grado di catturare lo schermo, scadrà tutte le sue decisioni e questa è una prova del bot piuttosto conclusiva.

  4. Il tempismo dice, se un giocatore del computer risponde alle opzioni in millisecondi alla volta senza pause di riflessione su decisioni importanti, questo potrebbe essere sospetto

  5. Autocontrollo. Il sito web di poker pokertableratings.com estrae molti siti di grandi dimensioni. È stata accolta con un'accoglienza mista, alcuni amano la trasparenza, altri la odiano . Il vantaggio, tuttavia, è quello ci sono stati casi in cui le statistiche dei giocatori sospette (percentuali VPIP, percentuali PFR sono solo alcune di un gran numero di statistiche quantificabili che possono essere registrate) hanno portato a conclusioni di barare

  6. Reti di classificazione artificialmente intelligenti potrebbero monitorare le statistiche quantificabili per classificare i truffatori disonesti oi giocatori robotici.

  7. Ai tempi in cui il poker online era un'entità abbastanza nuova, c'erano voci e chiacchiere con prove limitate che alcune schermate del software client di poker di desktop di giocatori sospetti per vedere se stavano eseguendo programmi che li assistessero. Tuttavia (anche se ciò fosse vero) eseguire due computer per eseguire le due attività in modo indipendente risolverebbe il problema.

  8. La condivisione di informazioni tra recidivi tra più siti sarebbe vantaggiosa per il settore, se solo fossero onorevoli e gestiti da persone competenti e responsabili

  9. Alcuni robot sarebbero probabilmente abbastanza semplici in base alla progettazione, se potessi scoprire il loro stile di gioco e vedere come si comportano in situazioni identiche (nota che questo è possibile solo con robot non sofisticati che giocano a una strategia molto semplice) potresti scoprirli abbastanza rapidamente.

  10. Un uso incoerente delle funzionalità del programma potrebbe favorire la genuinità di un giocatore. Prendi ad esempio molti siti di poker nel gioco hanno un pulsante "Passa quando tocca a me". Se ti viene distribuita una brutta mano e stai aspettando che un altro giocatore decida cosa fare, molti giocatori controlleranno questo pulsante. Un bot può utilizzare questi pulsanti. La differenza è che un bot sarebbe agli estremi della frequenza di utilizzo, probabilmente li userebbero sempre o per niente. Laddove un giocatore di solito potrebbe premere "autofold", ma a volte cliccheranno comunque su fold anche nelle condizioni più favorevoli. Ad esempio, un giocatore autentico di solito preme il fold automatico ma questa volta non lo fa. È piegato intorno a loro senza che nessun altro giocatore agisca, ora sono state presentate con la condizione più favorevole possibile. Ora se premono il piegamento, sarebbero stati fortemente inclini a premere il piegamento automatico dall'inizio. Questo è un comportamento incoerente / non ottimizzato / casuale, coerente con l'essere umano. Il tempismo indica quando si fa clic su queste funzionalità sono altri indicatori. È importante riconoscere che questi sono tutti indicatori e non prove conclusive. Tutti questi indicatori comportamentali possono essere simulati facilmente.

Sconfiggere un bot dal punto di vista dei giocatori

  1. Prova a registrare e raccogliere quanti più dati possibile utilizzando software come PokerTracker

  2. Tenta di identificare i pattern nel suo stile di gioco

  3. Tenta di trovare relazioni tra la dimensione della puntata in proporzione al piatto / # giocatori e la forza della mano

  4. Prova a calcolare i suoi range di mani . Un bot con puntate basse probabilmente non blufferà abbastanza frequentemente da costituire un problema strategico significativo, quindi costruire range di mani altamente accurati non dovrebbe essere troppo complicato.

  5. Tentativo di trovare fughe nel suo gioco tramite analisi dei dati e tentativi ed errori. Una volta individuati fughe / schemi, tentare di sfruttarli ripetutamente ed evitare qualsiasi altra situazione.

Laddove un essere umano è in grado di adattarsi , i bot probabilmente lo sono meno e dove gli esseri umani sono appesantiti dalle catene dell'inclinazione , il pensiero orientato ai risultati e frustrazioni , i bot non lo sono. Puoi usarlo a tuo vantaggio.

Quindi, in sostanza, non c'è niente che puoi fare per fermarlo se il robot è abbastanza intelligente da simulare ritardi nel tempo reale durante le decisioni, oltre a creare schemi di gioco ragionevoli e realistici. Metti alcune condizioni casuali e una semplice back-chat (il lessico dei giocatori di poker è di solito abbastanza limitato ) e avrai un giocatore AI che sarà piuttosto difficile da rilevare.

Cosa potrebbero fare i bot per evitare il rilevamento

La chiave per evitare il rilevamento sarebbe pensare al problema da più angolazioni possibili. Stai tentando di simulare un comportamento umano intelligente in un mondo molto piccolo e restrittivo. La maggior parte delle simulazioni comportamentali che puoi eseguire sono abbastanza ovvie, ma più il tuo bot è incoerente e imprevedibile, meno è probabile che venga scoperto.

  1. Crea programmi di gioco realistici (ad esempio, 3-5 volte a settimana, 4 ore per sessione con le settimane dispari qua e là durante l'anno).

  2. Esegui programmi per prendere decisioni su computer separati, controllando un computer zombi nel caso in cui qualsiasi cattura dello schermo del sito.

  3. Randomizza i tempi delle azioni (non agire immediatamente, attendi 0,5-2 secondi per azione)

  4. Tempo a disposizione per decisioni importanti. Se una decisione è al limite, calcola la decisione e attendi un po 'per simulare il pensiero.

  5. Uso casuale delle funzionalità del software client. Simula le pause per il gabinetto facendo clic sul pulsante "Distribuiscimi" su tutti i tavoli e fai una pausa di 5 minuti ogni tanto.

  6. La chat simulata, la chat poker è spesso molto semplice, mai di solito discussione o dibattito. Dì cose come "sfortunato" o "stfu" nei momenti rilevabili appropriati. Oppure chiedi al programmatore di monitorare il suo bot e di impegnarsi in chat durante l'esecuzione.

  7. Assicurati che i movimenti del mouse siano realistici. Se i tavoli sono affiancati , non prendere una decisione sul tavolo in alto a sinistra, quindi fallo immediatamente sul tavolo in basso a destra. La maggior parte dei software dei siti offre ora scorciatoie da tastiera, che potrebbero essere preferibili da utilizzare come previsto per il movimento del mouse.

  8. Fai cose che semplicemente i classificatori di intelligenza artificiale non si aspettano. Ad esempio, una volta all'anno telefonare loro con una semplice query non complessa ("Aiuto, non posso accedere oggi!" O "Internet non funziona!") È improbabile che faccia molta differenza, ma se la persona che lavora per società di poker è abbastanza intelligente da poterlo riconoscere come un indicatore affidabile.

  9. Perdite sporadiche. L'inclinazione può essere simulata e il bot può giocare male e perdere qualche soldo ogni tanto. Tutti si inclinano a un certo punto.

La preoccupazione è anche che i siti web di poker non si preoccupano particolarmente se i bot sono in esecuzione sulle loro reti, ogni giocatore vale una grande quantità di rake e teoricamente da un punto di vista commerciale puramente cinico l'unico svantaggio sarebbe una cattiva stampa se venisse scoperto .

Anche quando sono stati scoperti exploit palesi, (cerca su Google gli scandali della rete Cereus o Absolute Poker Scandal , è abbastanza scioccante) il business sembra sopravvivere e rimanere in buona salute, perdendo solo giocatori ben istruiti e vincenti (di cui non ce ne sono molti). Ciò aumenta la percentuale di giocatori meno qualificati nella rete, il che a sua volta attira di nuovo i buoni giocatori. È un buon vecchio pescato 22. Un ottimo argomento per una corretta regolamentazione del mercato.

È importante notare che per ogni partita esiste un equilibrio di nash . Il poker online ha una sequenza temporale nel modo in cui funziona ora, dovrà spostarsi in qualcosa di più sociale (webcam / voip) affinché chiunque possa fidarsi in futuro (se le persone si fidano di esso) poiché i robot alla fine prenderanno il sopravvento altrettanto matematicamente superiore e psicologicamente immune. La comunità di poker AI è molto attiva , alimentata dal mondo accademico e / o dai benefici in conto capitale.

Versioni più semplici del poker come il poker limit sono state quasi risolte in piccoli spazi di ricerca. È solo questione di tempo prima che versioni più complesse del gioco (variazioni No Limit / Pot Limit Omaha ecc.) Diventino battibili per i giocatori artificiali.

Conclusione

I bot sofisticati non possono essere rilevati fino a quando il settore non passa a un ambiente di gioco online più social. Questo non risolverà il problema, ma sicuramente renderà più difficile per i bot vincere ai livelli inferiori. Abbiamo già visto un leggero cambiamento con il rilascio di PKR , 3D e una versione più interattiva e con meno mani all'ora degli altri siti in cui il multitablaggio è piuttosto difficile da realizzare per un giocatore.

Il problema risente anche della natura del settore, un motivo in più per attenersi ai siti Web più grandi e affidabili in cui la reputazione è diventata sempre più integrata nel loro modello di business. La mancanza di trasparenza e la finta trasparenza non aiutano la causa.

La vera sfida attualmente per gli sviluppatori di bot è scrivere un algoritmo vincente, non è così banale come sembra. Tutti coloro che giocano a poker si considerano bravi, vincenti o in pareggio, il che semplicemente non è vero. Questo è il motivo per cui le persone continuano a giocare, anche quando perdono denaro perché si illudono di essere semplicemente sfortunate, o il loro stile di gioco viene frainteso. Questa arroganza e debolezza nella psicologia umana è costata ai giocatori perdere un sacco di soldi ed è la ragione fondamentale per cui il poker può ancora essere redditizio.

Il poker è un gioco estremamente complicato che richiede anni per diventare bravo (il vecchio adagio rimane vero, "Dieci minuti per imparare, una vita da padroneggiare"). L'elemento fortuna è estremamente limitato a lungo termine.

Come ogni altra professione, per diventare bravo, devi studiare per centinaia e centinaia di ore e giocare per molte migliaia. Capirai cose che i giocatori meno esperti non capiranno, individuerai cose che i meno esperti non vedranno. L'apprendimento va avanti per un tempo molto molto lungo, forse più a lungo di quanto potremo mai vivere. È un gioco complicato.

Quante volte hai visto un cash game high stakes in televisione e hai sentito qualcuno gridare "È una chiamata facile!" dimostrare così che i dilettanti in realtà non capiscono o riconoscono la raffinatezza nel gioco, e credono veramente che il gioco a quel livello sia ancora in definitiva semplice. Non lo è. Quei giocatori ad alta posta in gioco (la maggior parte del tempo) sono lì in televisione perché sono davvero davvero davverobene. Probabilmente c'è anche un complicato meta gioco in corso, di cui il nostro amauer non può riconoscere l'esistenza. Il dilettante non starebbe davanti a un maestro di scacchi gridando loro di muovere il loro cavaliere, ma a causa della dinamica del poker essendo un'informazione imperfetta, la loro psicologia li fa credere veramente a ciò che stanno dicendo. Come negli scacchi, le decisioni possono essere complesse, delicate ed estremamente importanti per il gioco in generale. Con l'aumentare della complessità del gioco, le decisioni banali non sono più così banali, perché il tuo avversario se le aspetta.

Una volta che avanzi il tuo bot o il tuo gioco ai livelli, inevitabilmente ti imbatterai in una popolazione più numerosa di giocatori più abili. Quindi, la complessità della tua strategia dovrà salire al livello successivo, tenendo conto delle immagini della tabella , del bilanciamento della gamma , del bluff sofisticato e intelligente (cioè non solo bluffare a debolezza, bluffare a range e bluffare su immagine ecc.), con un'analisi più dettagliata della portata della mano. È davvero un gioco diverso man mano che si sale.

Una volta che un bot vincente è stato scritto, senza dubbio il programmatore avrà abbastanza abilità, conoscenza e buon senso per applicare il bot in modo non rilevabile. Questo è banale per loro.

Quindi non c'è davvero niente che puoi fare. Se vuoi giocare online, comprendi i rischi. Non rischiare mai più denaro di quanto puoi permetterti e cerca di tenere registrazioni accurate delle spese in modo da non avere una stima errata, irrealistica e in definitiva dannosa delle tue capacità. Fai uno stop loss e lascia il tavolo se non hai un vantaggio o se non sei sicuro di avere un vantaggio! Ovviamente, se tutti lo facessero, nessuno vincerebbe, questa è la natura predatoria e sfruttatrice del gioco, è da lì che viene la concorrenza ed è questo che lo rende divertente.


3
Almeno ai tempi dei monitor analogici, sarebbe stato possibile avere uno screen-grabber in esecuzione su un computer completamente separato da quello che riproduce il gioco. Rilevare una cosa del genere nel software del gioco sarebbe del tutto impossibile, ovviamente. Anche se HDCP non permettesse di fare una cosa del genere con l'uscita video di un computer moderno, si potrebbe sempre utilizzare una telecamera puntata con precisione. Se le carte sono facilmente leggibili da un essere umano, una macchina non avrà problemi.
supercat

Al giorno d'oggi potresti persino eseguire il gioco su una VM e il bot al di fuori di essa, catturando immagini e inviando eventi tastiera / mouse.
André Paramés

Dai un'occhiata a OpenHoldem. La cosa ha anche alcune estensioni DLL per simulare il jitter del mouse e l'accelerazione del mouse simile a quella umana per fare clic sui pulsanti. Se il tuo codice genera tripli di probabilità per Call o Check / Fold / Raise, sarà difficile individuare schemi senza possibilmente migliaia di mani.
rndapology

9

Ci sono tre aree separate da considerare. Il bot deve capire lo stato del tavolo, prendere una decisione e inviare la decisione all'host.

Capire lo stato della tabella è molto più semplice se viene inviata in rete in una forma riconoscibile o visualizzata all'utente come testo standard. Innanzitutto, rendi il riconoscimento delle immagini l'unica opzione, quindi rendilo il più difficile possibile. Visualizza le carte in 3D e cambia lentamente l'orientamento e la posizione delle carte. Anima piccoli tremolii o fuochi d'artificio davanti alle carte in modo che qualsiasi schermata possa essere illeggibile, ma ci vuole del tempo anche per determinarlo.

Non c'è niente da fare per prendere la decisione. Cercare di decidere se una decisione è stata presa da un essere umano o meno è come un test di turing con quasi nessuna informazione.

L'invio della decisione può essere reso difficile utilizzando di nuovo il 3D. Rendi difficile inviare pacchetti direttamente o inviare una decisione in altro modo con qualsiasi mezzo diverso dal clic su un pulsante con il mouse. Spostare leggermente i pulsanti ad ogni azione o farli fluttuare lentamente intorno all'area di gioco in attesa di una decisione. Disabilita le funzionalità del tipo di accessibilità che consentono di trovare o manipolare i pulsanti.


3
Sicurezza attraverso la difficoltà. Supponendo che tu sia autorizzato a trasmettere in streaming un video renderizzato del gioco, l'obiettivo è renderlo un CAPTCHA in movimento.
disegnato il

3
@ The Rook: PokerPirate, a cui fai riferimento nella tua domanda, non ha assolutamente nulla a che fare con HTTP. In effetti, dubito che ci siano siti di gioco d'azzardo che utilizzano HTTP. La tua domanda, risposta e commenti rivelano che sai molto poco su questo argomento. Dovresti provare a sapere di cosa stai parlando prima di dare consigli alle persone su cosa dovrebbero fare. :)
RarrRarrRarr

2
@drawnonward: se l'usabilità non è totalmente un problema, puoi avere sicurezza tagliando tutte le connessioni dati, che è probabilmente un modo creativo per fermare gli imbrogli. Non vedo come valutare le misure di sicurezza se non nel contesto dell'usabilità.
David Thornley

1
@drawnonward: Certo, ma (a) non posso visitare un sito bancario senza una password, (b) il banking è più una necessità per la maggior parte delle persone rispetto al poker online, e (c) non è un continuo fastidio che persisterà per molto tempo. Questa soluzione sarà probabilmente peggiore del problema originale.
David Thornley

2
Il problema originale è garantire che solo gli esseri umani giochino a poker su una pagina web. Con un sito bancario, una volta inserita la password guadagni la fiducia dell'host. In questo caso non puoi fare nulla per ottenere la fiducia continua dell'host, quindi la sfida alla sicurezza deve essere continua.
disegnato l'

8

PokerPirate, come quasi tutti i bot di poker mai scritti, funziona raschiando lo schermo e simulando i clic del mouse in un'applicazione di poker per Windows. Pertanto, il fulcro del sistema è la sua capacità di riconoscere gli oggetti nel gioco e compiere azioni nella finestra. Per quanto intelligente possa essere a poker, probabilmente ha ancora problemi con queste operazioni di base.

Pertanto, i modi ovvi per contrastare questo bot includerebbero:

  1. Implementa un CAPTCHA, prima della partita o quando altri fattori suggeriscono che un giocatore potrebbe essere un bot.
  2. Rendi la grafica del tavolo più complicata o cambia il tema durante il gioco.
  3. Rileva movimenti e clic del mouse insolitamente veloci e / o robotici (un essere umano non muoverà mai un mouse in una linea matematicamente perfetta).

2
La maggior parte di questo è Sicurezza sebbene oscurità. Tutto questo può essere rotto, incluso il captcha. Anche se ammetto che è la parte più difficile da rompere. (+1 Non esiste una soluzione al 100% e gran parte di quanto descritto potrebbe essere utilizzato con altre tecniche.)
Torre

2
Quanto sono bravi i bot captcha adesso, comunque? Ti dirò questo: metà delle immagini che ricevo da Google Apps sono impossibili da leggere per un essere umano .
WCWedin

Tutta la sicurezza del computer passa attraverso l'oscurità. Il motivo per cui qualcuno non può leggere un'e-mail crittografata è perché non riesce a trovare facilmente la chiave privata. Ma dato abbastanza tempo e risorse di calcolo, anche questo può essere "rotto". La maggior parte dei captcha è abbastanza buona e eliminerà il 99,99% dei bot.
Cerin

5

Idealmente l'unica soluzione valida è creare una logica honeypot che attiri un bot impegnato fornendo la tentazione di una condizione logica più favorevole che favorisca le risposte comportamentali più ideali del bot. Una volta che il bot è impegnato nell'honeypot, è necessario alimentare continuamente le condizioni del bot che preferisce presumendo che il bot non abbia un timeout impostato. Quindi il bot può essere misurato, registrato e studiato. Oltre al bot, dovresti anche isolare i dati di rete e di sessione per lo studio, a condizione che il bot non si connetta tramite TOR.

In questa situazione le considerazioni deterministiche adatte a differenziare un bot da un essere umano sono meno gravi, tuttavia, le considerazioni deterministiche al momento dell'identificazione del comportamento del bot diventano più gravi. Sfortunatamente, il proprietario del bot può apportare modifiche al bot per impedire tale identificazione se tale proprietario è a conoscenza della condizione del vaso di miele o della sua considerazione logica.


3
Citando Sun Tzu: "Conosci il tuo nemico". Evita i suoi punti di forza ed esplora le sue debolezze.
jweyrich

Non è una cattiva idea e mi interessa come sarebbe questo software. Ti interessa approfondire una condizione specifica?
torre

1
I punti di uscita di Tor sono piuttosto limitati. Qualsiasi giocatore che si connette tramite un punto di esistenza tor dovrebbe essere sospettoso.
Christian

Creare un honeypot potrebbe diventare molto costoso per un sito di poker
Tom Gullen

Puoi solo fargli pensare che sta facendo soldi.
Jeff Davis

4

Sconfiggere i bot di poker può assumere due forme: puoi provare a identificarli e bandirli dal sistema, oppure puoi semplicemente batterli a poker. Vincerli a poker è la domanda accademica più interessante. :-)

Vedi qui per alcuni documenti su come battere i robot del poker: http://www.cs.cmu.edu/~sganzfri/



2

Un altro pensiero sul fare scherzi con lo schermo per rendere difficile la scansione:

Crea la carta da un'intera sfilza di colori diversi: vicino in termini di occhio umano ma non uguale. Ciò renderebbe più difficile scegliere le cose da leggere. Il rovescio della medaglia, metti scritte false sulla carta con colori che l'occhio umano non separerà dallo sfondo.


2
Sfortunatamente questo sarebbe abbastanza facile da sconfiggere per qualsiasi programmatore concorrente, in quanto rascherebbe gli intervalli di colori e non i valori esatti aggirando questa soluzione.
Tom Gullen

Le gamme di colori funzionerebbero se fossero corrette, ma cosa succederebbe se continuassi a cambiare le cose? Significherebbe che il tuo raschietto dovrebbe essere programmato per comprendere la visione umana. Non sarebbe impossibile ma renderebbe le cose molto più difficili.
Loren Pechtel

Plausibile ma sminuirà in modo significativo l'esperienza utente valida del software che probabilmente è un cattivo affare.
Tom Gullen

Molto facile da sconfiggere. Ho già scritto un poker bot e riconosco le carte calcolando la somiglianza delle immagini all'interno di un riquadro di delimitazione. Anche se nessuno dei pixel è esattamente lo stesso (sia perché i colori della scheda o la posizione dello schermo sono leggermente cambiati su ogni dispositivo), posso comunque utilizzare queste misurazioni di somiglianza per identificare la scheda "più probabile".
Benjismith

E perché pensi che i colori debbano rimanere anche simili? Scorri attraverso colori estremamente diversi e fai scorrere lo sfondo: sto immaginando un effetto come un'onda che continua a scorrere sulle carte e cambia i colori. Mantieni un buon contrasto e assicurati che i colori che ne risultano non siano brutti.
Loren Pechtel

2

Il problema con i robot è il fatto che giocano meglio di giocatori umani decenti o che possono aspettare 24 ore su 24, 7 giorni su 7, che compaiano giocatori cattivi e poi provare a mungerli?

Inoltre, sarebbe "legittimo" o "barare" per qualcuno avere un computer seduto accanto a lui mentre gioca a poker, consultando l'altro computer per un consiglio?

Non sono sicuro di come si possa affermare che la soluzione space per il limit poker sia "risolta" quando la strategia ottimale per un giocatore sarà influenzata da ciò che si sa sugli avversari. Come può un tentativo di analizzare i giocatori affermare di essere così perfetto da non poter essere migliorato?


Ecco un'interessante discussione sul fatto che il poker sia risolvibile: forumserver.twoplustwo.com/29/news-views-gossip/… Alcuni dei poster presenti sono molto affidabili. Il problema è che teoricamente un bot funzionerà in modo imbattibile. Inoltre, il software che descrivi per `` aiutarti '' è un'area grigia, molti siti consentono software di analisi dei dati come PokerTracker / PokerOffice, ma traccia il confine con le calcolatrici ICM e altri strumenti matematici per il processo decisionale (ad esempio, questi sono estremamente utili in hyper strategia di fine partita del torneo turbo).
Tom Gullen

1

Se hai accesso a molte corrispondenze, puoi adottare un approccio di data mining. La forza di gioco di un'IA dovrebbe essere abbastanza consistente, mentre probabilmente ci sono schemi semplici per gli umani: più deboli nei primi round di riscaldamento e la forza si deteriora dopo aver giocato per molto tempo. Inoltre, i tempi delle decisioni umane probabilmente aumentano quando sono in gioco più soldi.

Se hai accesso ai movimenti del mouse (o almeno alle posizioni dei clic, il che è vero anche per le app Web), dovrebbe essere abbastanza semplice riconoscere i bot, ad eccezione di quelli più sofisticati. Gli esseri umani non muovono il mouse in una linea retta esatta, hanno periodi di accelerazione e rallentamento, distribuzioni della posizione dei clic descrivibili statisticamente, ecc.


Molti siti di poker ora implementano scorciatoie da tastiera per il multi-abilitazione, quindi puoi eliminare la necessità di un mouse in un bot. Inoltre, non penso che la decisione salga spesso con il denaro in gioco, è principalmente correlata alla difficoltà di decisione.
Tom Gullen

1

Dai un'occhiata a Ajax Control Toolkit NoBot :

NoBot utilizza alcune diverse tecniche anti-bot:

* Forcing the client's browser to perform a configurable JavaScript calculation and verifying the result as part of the postback. (Ex: the calculation may be a simple numeric one, or may also involve the DOM for added assurance that a browser is involved)

* Enforcing a configurable delay between when a form is requested and when it can be posted back. (Ex: a human is unlikely to complete a form in less than two seconds)

* Enforcing a configurable limit to the number of acceptable requests per IP address per unit of time. (Ex: a human is unlikely to submit the same form more than five times in one minute)

0

Una soluzione al 100% è impossibile, quello che mi propongo è una soluzione che farà risparmiare denaro utilizzando l'IA contro se stesso. Avere un'istanza dell'IA di PokerPirate in esecuzione sul lato server e giocare come un giocatore invisibile in ogni partita. Se un giocatore esegue troppe azioni identiche, probabilmente sta eseguendo un'istanza di PokerPirate. Questa è una specie di Honeypot o trappola in cui l'attaccante può cadere. L'attaccante può difendersi da questo honeypot rendendo il suo bot meno efficace. Quindi questo sta creando una venuta di "Gatto e topo" in cui l'attaccante può sempre rubare dei soldi e il difensore può sempre risparmiare dei soldi.


5
Peccato che tu abbia cancellato l'altra tua risposta quasi identica, poiché conteneva un feedback interessante.
Paul Dixon

Ciò presuppone che ci sia un solo bot che gioca a poker e che un essere umano non farebbe mai le stesse cose che farebbe un bot.
tracciata il

@drawnonward Un essere umano non ha intenzione di agire come un bot per tutto il tempo , c'è un fattore di incertezza qui.
torre

3
@TheRook "Gamboling" AI's "dovrebbe essere puramente matematico e c'è sempre la" risposta giusta "." Questo è vero solo nei giochi con informazioni complete di cui il poker non è uno. Un giocatore che compie sempre la stessa azione dato lo stesso stato diventa prevedibile e quindi facile da sconfiggere. I migliori robot avranno elementi di casualità. Anche il giocatore più matematico consiglierà un comportamento variabile anche nella stessa situazione (di solito con una percentuale di probabilità).
Davy8

1
@ The Rook Non ero questo era un ambiente accademico, tuttavia ho trovato un riferimento (e praticamente qualsiasi libro di poker serio che prendi concorderà sul fatto che ad un alto livello di gioco l'imprevedibilità è cruciale) sciencenews.org/sn_arc98/ 7_18_98 / bob1.htm Alcune citazioni:"We've been working on categorizing and understanding styles of play, [...] it gets more difficult in games against top players because they mix up their play deliberately to confuse you." Being unpredictable is a good strategy, he adds. "If our computer is going to beat the world champion, it's got to do something similar."
Davy8

-2

Ci sono modi molto più semplici. sì. molti suggerimenti sono giusti e necessari. ma circa il 90% delle frodi viene rilevato in modo troppo semplice.

se qualcuno lascia che un bot lavori per lui, dopo qualche tempo vorrà che un secondo bot funzioni per lui. (un'altra macchina o qualsiasi altra cosa) ma: userà la stessa password, poiché è difficile ricordarne 2 (<--- sarcastico)

cos'è rimasto: controlla gli account con lo stesso comportamento di gioco e lo stesso hash della password.


Come è affidabile? Immagino che MOLTE persone diverse stiano usando la stessa password. Non farmi nemmeno iniziare con password come la loro data di nascita, o semplicemente "azerty" o "password".
DuoSRX

6
Sale i tuoi hash! > = (
WCWedin

1
@WCWedin buona chiamata, tutti gli hash delle password dovrebbero usare un salt univoco.
torre

@DuoSRX vero, non affidabile, ma un buon suggerimento. l'intero elenco dei risultati va al team fraudolento, che effettua un controllo in background sui conti. @WCWedin sì. nobrainer ;-)
cRichter
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.