检测在线扑克作弊行为

发布于 2024-09-17 08:52:27 字数 661 浏览 4 评论 0原文

最近在一家大型扑克网站上发现,一些玩家可能通过利用发现的安全漏洞,能够在对手玩牌时看到所有牌。

一个天真的作弊者会以令人难以置信的快速度获胜,而且这些作弊者通常很快就会被发现,如果没有很快被发现,他们很容易通过快速扫描他们的手牌历史来检测到。

当作弊者表现出聪明才智时,就会出现更困难的问题,在他们一定会被跟注的地方虚张声势,用最差的牌跟注河牌圈下注,基本前提是他们故意输掉底池,以掩饰自己看到其他玩家牌的能力,他们以相当现实的比率获胜。

给定: 数

  • 以百万计经过验证且完整的信息手牌历史的数据集
  • 理论上无限的计算机能力
  • 假设游戏为无限德州扑克,尽管有关奥马哈或限注扑克的建议可能是有益的

我们如何才能合理准确地对这些作弊者进行分类?最初的 2+2 线程征求意见,我认为 SO 社区可能会提供一些有用的建议。

这是一个有趣的问题,因为它是当前的,并且如果有人找到创造性的解决方案,那么它可以真正应用于改善世界,因为当发现作弊者被发现时,真正的玩家很有可能获得资金退还给他们。

It recently emerged on a large poker site that some players were possibly able to see all opponents cards as they played through exploiting a security vulnerability that was discovered.

A naïve cheater would win at an incredibly fast rate, and these cheats are caught very quickly usually, and if not caught quickly they are easy to detect through a quick scan through their hand histories.

The more difficult problem occurs when the cheater exhibits intelligence, bluffing in spots they are bound to be called in, calling river bets with the worst hands, the basic premise is that they lose pots on purpose to disguise their ability to see other players cards, and they win at a reasonably realistic rate.

Given:

  • A data set of millions of verified and complete information hand histories
  • Theoretical unlimited computer power
  • Assume the game No Limit Hold'em, although suggestions on Omaha or limit poker may be beneficial

How could we reasonably accurately classify these cheaters? The original 2+2 thread appeals for ideas, and I thought that the SO community might have some useful suggestions.

It's an interesting problem also because it is current, and has real application in bettering the world if someone finds a creative solution, as there is a good chance genuine players will have funds refunded to them when identified cheaters are discovered.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

断念 2024-09-24 08:52:27

绘制 V$PIP 与具有统计显着性 #hands 的所有玩家的胜率的关系图。您应该用肉眼看到异常值。我认为这是首先要做的基本事情。

然后您可以绘制 WTSD 与胜率、对决时的胜率与不对决时的胜率、对决时的 %won 与 VPIP 的关系图。

您选择的统计数据必须具有统计显着性。如果您了解扑克,以上选择就有意义。

这不是机器的工作,异常值是通过眼睛检测到的。

编辑:奥马哈要困难得多,因为它确实是变体。有些情况下,弱玩家在没有作弊的情况下取得了令人难以置信的连胜。

Plot V$PIP versus winrate of all players with a statistically significant #hands played. You should see outliers with naked eye. I think that's the basic thing to do first.

Then you can plot WTSD vs winrate, winrate at showdown vs winrate without showdown, %won at showdown vs VPIP.

The stats you choose must be significant statistically. If you know poker, the above choices make sense.

This is not a job for a machine, outliers are detected by eye.

EDIT: Omaha is much tougher, since it is really variant. There are cases of unbelievable streaks made by weak players who were not cheating.

橘和柠 2024-09-24 08:52:27

我讨厌这么直率,但是除了@Erwin Smout 的答案之外,本页上的所有答案都是毫无价值的。

统计分析对于识别扑克作弊来说是一个笑话
我意识到这个问题允许系统有数百万手的历史记录可供使用。我确信有些玩家的牌局历史如此之大,天啊,我可能玩过这么多在线牌局。但我也已经在线玩了十多年了。这不是一个小时间,据我所知,在识别在线扑克作弊者时,有两个相互矛盾的事情是正确的:它需要在很短的时间内发生,并且像任何优秀的小偷一样,在线扑克作弊者是拿走后立即将他的藏品带到别处。

本文中有一个很好的例子来说明扑克中的差异本文< /a> 是通过匹配总是加注的玩家和总是跟注的玩家而生成的(PDF 第 13 页)。在 100,000 手牌的过程中,我认为大多数人都愿意与能看到自己牌的人比赛,总是跟注的玩家每手牌平均赢得 0.026 个小盲注。我知道这听起来不多,但假设赌注为 5-10 美元,则为 6,500 美元。也许有人可以帮我找到链接,但是测得的职业胜率比这个要小,也不会大太多。请注意,这些玩家都没有作弊,并且该手牌数的统计预期差异明显小于实际发生的情况。

在线扑克玩家需要了解什么
扑克就是赌博。这是一场技巧游戏,因为有些玩家能够从对手那里获得比对手能够收集到的更多的信息,而这些额外的信息通常与查看其他人的牌一样有用。即使是比典型对手更好的玩家,最终也会成为长期失败者。如果你不明白这一点,那么你只是在与任何对手对战的任意少量牌局中寻找具有统计数据的女巫。

可以做什么?
请记住,问题指出作弊者能够看到其他玩家的牌,您不需要统计分析来识别它们。只有三种方法可以做到这一点。

首先,服务器有意向客户端发送信息,这是一个明显的安全问题,不应实施(IMO,即使对于主持人来说也是如此)。如果发现某个网站允许这种情况发生,则玩家有责任将其资金转移到其他地方,或者拒绝在该网站上玩游戏,直到该可怕的设计决策得到纠正。网站还应该有责任告知玩家在网站上玩牌时发生的确切步骤,以便他们在选择网站时首先做出决定。隐匿性安全是不允许的。至于抓捕小偷,这些信息应该保存在服务器上的日志文件中,并且应该定期审核此类行为。

其次,用户入侵了扑克服务器,他们会很快知道这一点,否则一旦暴露,决定在哪里玩又是玩家的责任。在这种情况下,作弊者在大多数国家都会受到起诉。

最后,交易算法可能已被破解。这在过去是公司使用简单方法来处理牌局的一个主要问题,但大多数主要商店通过从登录到其系统的玩家那里获取随机输入以及使用熵生成硬件来播种随机数来解决这个问题发电机。但这并不是说它不能被破解。如果是这种情况,公司唯一的选择就是设计一个新的随机数生成器。

I hate to be so blunt, but all the answers on this page with the exception of @Erwin Smout's are worthless.

Statistical analysis is a joke for identifying poker cheats
I realize the question allows there to be millions of hands worth of history available to the system. I'm sure there are players with hand histories this large, hell, I've probably played this many online hands. But I've also been playing online for over 10 years. Thats not a small amount of time, and it is my understanding that two conflicting things are true when it comes to identifying online poker cheaters: it needs to happen in a small amount of time, and like any good thief, an online poker cheat is going to take his stash elsewhere immediately after the taking.

There was a great example of the variance in poker in this paper which was generated by matching an always raise player versus an always call player (page 13 of the PDF). Over the course of 100,000 hands, wayyyy more than I think most people would be willing to play against someone who could see their cards, the always call player won on average .026 small blinds per hand. I know this does not sound like much, but assuming stakes of $5-10, that comes out to $6,500. Maybe someone can help me find the link, but the measured professional win rate is less not too much larger than this. Please note, NEITHER of these players was cheating, and the statistically expected difference over this number of hands is significantly less than what actually transpired.

What online poker players need to understand
Poker is gambling. It is a game of skill, because some players are able to elicit more information from their opponents than their opponents are able to gather, and that extra information is often as useful as seeing other peoples cards. Even players who are better players than their typical opponents, will end up long term losers. If you do not understand this, you're just searching for witches with statistics in the arbitrarily small number of hands you'll be playing against any opponent.

What can be done?
Keeping in mind the question states that cheaters are able to see the other players cards, you don't need statistical analysis to identify them. There are only three ways in which that is possible.

First is that the server is sending the information intentionally to clients which is an obvious security issue and should not be implemented (IMO, even for moderators). If a site was found allowing this to happen, it is the player's responsibility to move their funds elsewhere, or refuse to play on the site until that terrible design decision is rectified. It should also be the responsibility of the sites to inform their players of the exact steps that take place during hands played on the site so they have that to make their decision on when choosing a site in the first place. Security by obscurity is unpermitable. As for catching the thieves, this information should be sitting in log files on their servers, which should be regularly audited for this type of behavior.

Second is that the user has hacked the poker server and they would know about that in hurry, or else once it is exposed, it is again players responsibility to determine where to play. In this case, the cheater can be prosecuted in most countries.

Lastly, it is possible the dealing algorithm has been cracked. This one was a major problem in the past with companies that used naive methods to deal hands, but most of the major shops solved this problem by taking random inputs from players logged into their system as well as using entropy generating hardware to seed their random number generator. Thats not to say it cannot be cracked however. If this is the case, the only option is for the company to engineer a new random number generator.

风和你 2024-09-24 08:52:27

出色地。 IT 人员对各种错误的问题着迷。

更好的问题是“作弊怎么可能?”。在摊牌之前,没有必要将对手的双手送过线。如果这些数据没有发送给客户,那么他们怎么可能作弊呢?

他们需要闯入服务器。别告诉我这是无法预防的。

Well. IT people get fascinated by all kinds of wrong question.

A better question is "how is cheating even possible ?". There is no need what so ever to send the opponent's hands over the wire until at showdown. If that data isn't sent to the client, then how could they cheat ?

They'd need to break into the server. Don't tell me that isn't preventable.

何以心动 2024-09-24 08:52:27

我认为如果他们作弊很聪明,那么在赢得不多的回合的情况下,就不会被发现。我不相信你能在这里看出运气和作弊之间的区别。

但我想知道哪家在线扑克提供商可能存在作弊行为。因为我无法想象如果扑克软件编码正确的话如何做到这一点。如果我被要求编写一个在线扑克软件,用户将无法看到对手的牌,因为他无法获得这些信息。我就是这样做的。

  1. 用户和服务器之间的每一次连接都是加密的
  2. ,用户之间没有通信,用户只能与服务器对话。
  3. 服务器只告诉每个用户该用户应该看到的牌,而不告诉其他牌,除非回合结束并且用户打开他们的牌。

用户在这里作弊的唯一方法是,你与其他玩家聚集在一起,或者冒充多个具有不同帐户和访问IP的玩家,并打开另一个玩家之间进行通信的通道。这样一来,该小组就有很大的优势,因为他们知道的牌比自己的牌多,但他们仍然无法看到其他牌。而且因为现在这是一个作弊的群体,所以更难发现它,因为他们可以与多个玩家分享他们的收入,并且这个群体甚至可能有一个玩家损失超过他的收益,但仍然总体获胜。

I think if they cheat intelligent, so with winning not too much rounds, it won't be detectable. I don't believe you could see the difference between luck and cheating here.

But I would like to know at which online poker provider the cheating is possible. Because I can't imagine a way how to do this, if the poker software is coded properly. If I was asked to program an online poker software, The users wouldn't be able to see the opponents cards, because there is no way he could get this information. And this is how I would do this.

  1. Every connection between users and server is encrypted
  2. no communication between users, the users can only talk to the server.
  3. The server tells every user only the cards the user should see, and no other cards, unless the round is finished and the users open their cards.

The only way the users could cheat here is, you get together with other players, or impersonate multiple players with different accounts and accessing IPs, and open another channel to communicate between the players. This way the group has a big advantage because they know more than their own cards, but there's still no way they can see other cards. And because it's now a group that is cheating it is even more harder to detect it, because they can share their earnings with multiple players, and this group could even have a player that looses more than (s)he gains and still win overall.

ぃ双果 2024-09-24 08:52:27

我怀疑你能否肯定地说某人是否在作弊,或者他们只是擅长扑克,超过了某一点。

然而,您可以通过查看在您的时间段内总体受益的用户来缩小您认为可能作弊的候选人范围。这将删除绝大多数用户,使您能够更好地集中资源。 (这当然包括擅长扑克的用户。)。

完成此操作后,您可以将作弊可能期间的游戏历史记录与之后或之前的历史记录进行比较,并查看用户成功率是否减少或增加。
这应该会给你一个需要更仔细调查的用户列表,可能通过分析特定游戏来调查。

享受吧,这是一个很好的问题。

I doubt you can say with any certainty if someone is cheating or if they are just good at Poker, past a certain point.

You could however narrow the candidates who you think might be cheating, by looking at the users who over your time period benefited overall. This will remove the vast majority of users, allowing you to focus your resources better. (This of course will include users who are skilled at Poker.).

Once you've done that, you can compare the history of play from while the cheat was possible to the history afterwards or before, and see if the users success decreases or increases.
That should give you a list of users who you need to investigate more carefully, possibly by analyzing specific games.

Enjoy, it's a nice problem.

戈亓 2024-09-24 08:52:27

对于所有表示怀疑的人来说,这甚至是可能的:OP 中链接的扑克论坛上的社区同样感到震惊,但相关网站已确认存在这样的安全漏洞。很简单,该网站使用非常基本且不安全的加密技术将底牌数据传输给玩家。从理论上讲,任何意识到这一点的人都有可能拦截从该站点到特定受害者的传输(例如,通过物理上靠近并拦截无线数据),并使用拦截的知识来欺骗该玩家。

问题是如何检测此漏洞是否确实被利用(在修复之前),如果是,则根据概述的资源被谁利用。

哦,还有你们中的一些人似乎假设我们正在谈论假设的场景和/或虚拟货币扑克;我们不是。该网站是真实的,漏洞是真实的,调查确实在进行(参见 OP 中的链接),并且接受调查的游戏是正常买入金额为 200 美元及以上的真钱游戏。

For all of you expressing disbelief that this is even possible: the community on the poker forums linked in OP were similarly awestruck, but the site in question has confirmed that such a security vulnerability was present. Quite simply, the site was using very basic and insecure crypto to transmit hole card data to its players. Theoretically, it would have been possible for anyone aware of this to intercept transmissions from the site to a specific victim (eg. by being physically nearby and intercepting wireless data), and to cheat that player using the intercepted knowledge.

The question is about how to detect whether this vulnerability was actually exploited (before it was fixed), and if so by whom, given the resources outlined.

Oh, and also some of you seem to be assuming we're talking about a hypothetical scenario, and/or play-money poker; we're not. The site is real, the vulnerability was real, the investigation is really happening (see link in OP), and the games under investigation are real-money games with normal buyins of $200 and above.

傲娇萝莉攻 2024-09-24 08:52:27

我绝不是数据挖掘专家,而且我对大型数据集统计分析的掌握也相当薄弱(而且我不太擅长扑克,尽管我喜欢它)所以请接受我在这里所说的一切与一粒盐。

  1. 清除垃圾数据。你只会真正关心符合两类的玩家:(1) 赢的牌数多于输的牌数的玩家,(2) 赢的钱多于输的钱的玩家。谁会在意一个损失惨重的骗子呢?呵呵。

  2. 有了这个配对的球员名单来实际分析,我会看看他们的比赛风格。假设您有大量历史数据,我会建立一个玩家技能档案并尝试规范他们的投注策略。作为一名糟糕的扑克玩家,我通常会支持较弱的牌,而没有一个好的玩家会仅仅因为感觉良好而支持这些牌。例如,每当我收到一张面牌和另一张低牌(2、3、4、5)时,如果它们是同花,我通常会跟注其他玩家在回合前所做的任何下注,即使这样策略不是很成功。大盲注以上的转牌前加注通常表明玩家有口袋对子,但我对打牌的热爱不允许我在翻牌前放弃同花牌。

所以对我来说,你对我的打法的分析会说,当我有任何同花的时候,我在翻牌前匹配激进的跟注是正常的。但如果某个玩家只是偶尔在翻牌前跟注大额下注,则表明某些事情可能不正常。

我不知道你需要构建什么样的系统来对不同用户的游戏风格进行分析,但我想你可以使用一些计算机学习算法来“学习”一个人的游戏风格,并且具有相当不错的准确性。

  1. 您提到聪明的用户会举手以尽量减少他作为骗子的形象。我认为这是进行更多分析的绝佳机会。一个经验丰富、获胜的玩家会打出一手糟糕的牌吗?可能永远不会。如果我拿到的是 4S、7H,翻牌圈看到 9D、JC、AH,我就会知道我获胜的机会非常非常小。它还告诉我们,翻牌圈给出的牌对任何人来说都不是很强,因此桌上下注的任何人都可能持有 J 或 A 对、两对或三对。既然你知道你的 4S、7H 毫无价值,你要么大力下注以虚张声势,要么直接弃牌。没有多少优秀的玩家(他们会在你的获胜玩家缩短列表中找到)会坚持这样的牌局。

无论如何,这些都是我想到的。现在实际实施它们时,我不知道从哪里开始,所以恐怕我不能提供太多帮助。但这是一个非常有趣的学术问题,所以请帮我们一个忙,让我们知道你最终的结果。如果您想离线进行此对话,请随时发送电子邮件至 [电子邮件受保护]< /a>.

I'm by no means a data-mining expert, and my grasp of statistical analysis of large data sets is pretty weak as well (and I'm not very good at poker, even though I love it) so take everything I say here with a grain of salt.

  1. Weed out the junk data. You are going to only really care about players that fit into two categories: (1) players who win more hands than they lose, (2) players who win more money than they lose. Who cares about a cheater who loses a lot? Heh.

  2. With this paired down list of players to actually analyze, I would take a look at their style of play. Assuming you have a lot of historical data, I would build a player skill profile and attempt to normalize their betting strategy. As a poor poker player, I normally will back up weaker cards that no decent player would back simply because they feel good. For example, any time I am dealt a face card with another low card (2, 3, 4, 5), if they're suited, I'll often ALWAYS call any bets made by other players before the turn, even though this strategy is not very successful. Pre-turn raises above the Big Blind often indicate a player has a pocket pair, yet my love of playing won't let me fold a suited hand pre-flop.

So for me, your analysis of my play would say that me matching aggressive calls pre-flop when I have anything suited would be normal. But a different player who only occasionally calls large pre-flop bets would be an indication that something might be out of whack.

I don't know what sort of system you'd need to build to make a profile of different users styles of play, but I imagine you could use some computer learning algorithms to "learn" a person's style of play with pretty decent accuracy.

  1. You mentioned that a smart user would throw hands to minimize his appearance as a cheater. I think this is a GREAT opportunity for more profiling. Would an experienced, winning player play through an awful hand? Probably not, ever. If I was dealt a 4S, 7H, and saw 9D, JC, AH on the flop, I would know that my chances of winning were really, really small. It also tells us that the cards given on the flop aren't very strong for anyone, so anyone at the table betting probably has a Jack or Ace paired, two pair, or three of a kind. Since you know your 4S, 7H is worthless, you'd either bet hard to bluff the pot or fold outright. Not very many good players (who would have been found in your winning players shortened list) would ever stick around on a hand like that.

Anyway, those are the things I've thought of. Now actually implementing them, I have no idea where to even begin so I'm afraid I can't be of much help there. This is a very interesting academic problem though, so please do us a favor and keep us informed of what you end up going with. If you want to take this conversation offline, feel free to email me at [email protected].

雾里花 2024-09-24 08:52:27

在尝试做任何过于复杂的事情之前,你能不能先寻找简单的指标?

IE。翻牌前:一名玩家在没有加注的情况下弃牌了口袋K,而其他人有口袋A。

这可能表明该玩家知道他的起始KING(相当不错)不如其他人的口袋ACES好。但是这是假设他在翻牌前而不是翻牌后做出决定.. 确实取决于..

忽略这一点,只是大声思考..

Could you not look for simple indicators initially before trying to do anything too complex??

i.e.. PreFlop : A player folds pocket kings with no raise before him and someone else had pocket Aces..

This MIGHT be indicative of the player knowing his starting KINGS (pretty good) is not as good as someone elses pocket ACES .. however that's assuming he makes the decision pre-flop and not post flop.. depends really..

Ignore this, just thinking out loud..

孤独难免 2024-09-24 08:52:27

说实话,我非常怀疑能够看到对手牌的玩家是随机的。生成选择某些用户而不是其他用户的卡片视图的代码中一定存在某种交叉。我建议对此代码运行测试,并尝试找到“观看者”和“非观看者”的趋势。如果您发现强烈的趋势,则可以将该趋势应用于实际数据集,以查看哪些用户、哪些手或哪些内容生成了代码错误。

To be perfectly honest, I'd doubt very much that the players who could see opponents hands were random. There must be some sort of cross over in the code that generates the card view that was selecting some users but not others. I would recommend running tests on this code and trying to find a trend in the "viewers" and "non-viewers". If you find a strong trend, then the trend could be applied to the actual dataset too see which users, or which hands or which whatever was generating the code fault.

忘年祭陌 2024-09-24 08:52:27

你的问题的答案很简单。仅靠手牌历史是无法检测出这种类型的作弊者的。您需要非公开的信息,以便关联多个特征来查找可疑的作弊者。

哦,是的,显然提供这些游戏的公司尽一切可能在低税收、不受监管的国家开设商店。在它们受到监管并执行严格的代码合规性和测试之前,这种情况将继续发生。

The answer to your question is simple. There is no way to detect that type of cheater with just hand histories. You need the information that is not public in order to correlate multiple characteristic's to find a suspected cheater.

Ohh yea, and obviously the companies that provide these games do everything possible to setup shop in a low tax, non-regulated country. Until they are regulated and enforce strict code compliance and testing this will continue to happen.

守望孤独 2024-09-24 08:52:27

最有可能作弊的情况似乎是人们一起工作。同桌的三个人互相了解对方的牌,应该能够做出一些下注调整,从而让更好的人脱颖而出。

采取哪些措施来防止串通?

the most likely cheating situation would seem to be people working together. Three guys at same table knowing each others cards should be able to make some betting adjustments that would allow the pool of betters to come out ahead.

What stops are in place to prevent collusion?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文