检测在线扑克作弊

时间:2010-09-03 11:19:19

标签: artificial-intelligence classification poker anti-cheat statistics

最近出现在一个大型扑克网站上,一些玩家可能able to see all opponents cards as they played通过利用已发现的安全漏洞。

一个天真的骗子会以极快的速度获胜,而且这些作弊通常很快被捕获,如果不能很快被抓住,他们很容易通过他们的手历史快速扫描来发现。

当骗子表现出情报时,更难以解决问题,在他们必须被召入的地方虚张声势,用最坏的牌召唤河牌,基本前提是他们故意丢失底池以掩盖他们看到其他人的能力球员卡,他们以合理的现实价格获胜。

假设:

  • 数百万个经过验证和完整的信息手记录的数据集
  • 理论无限的计算机能力
  • 假设游戏无限注德州扑克,虽然对奥马哈或限制扑克的建议可能是有益的

我们怎样才能合理准确地对这些作弊者进行分类?最初的2 + 2线程呼吁创意,我认为SO社区可能会有一些有用的建议。

这也是一个有趣的问题,因为它是最新的,并且如果有人找到了创造性的解决方案,它在改善世界方面具有真正的应用,因为真正的玩家很有可能在发现识别的骗子时将资金退还给他们。

11 个答案:

答案 0 :(得分:6)

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

然后你可以用WTSD vs winrate,在showdown vs winrate赢得摊牌而没有摊牌,在摊牌vs VPIP赢得%。

您选择的统计数据必须具有统计学意义。如果你知道扑克,上面的选择是有道理的。

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

编辑:奥马哈更加强硬,因为它真的是变种。有些球员在没有作弊的情况下表现出令人难以置信的条纹。

答案 1 :(得分:6)

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

Statistical analysis is a joke for identifying poker cheats
我意识到这个问题可以为系统提供数百万手的历史记录。我敢肯定有些球员的手牌历史很大,地狱,我可能已经玩了很多在线牌。但我也在网上玩了10多年。这不是一个很短的时间,而且我的理解是,在识别在线扑克骗子时,两个相互矛盾的事情是真的:它需要在很短的时间内发生,就像任何好小偷一样,在线扑克作弊是在服用后立即将他的藏品带到别处。

有一个很好的扑克in this paper差异的例子,它是通过匹配一个总是加注的玩家和一个总是呼叫的玩家(PDF的第13页)产生的。在超过10万手牌的过程中,我认为大多数人都愿意与能够看到他们牌的人进行比赛,而且总是叫球员平均每场赢得026个小盲注。我知道这听起来不是很多,但假设5-10美元的赌注,那就是6,500美元。也许有人可以帮我找到这个链接,但是测得的专业赢率并不比这大得多。请注意,这些玩家中没有任何人在作弊,而且这一手数量的统计预期差异明显小于实际发生的数量。

What online poker players need to understand
扑克是赌博。这是一场技巧游戏,因为有些玩家能够从对手那里获得比他们的对手能够收集的更多信息,并且额外的信息通常与看到其他人的牌一样有用。即使是比其典型对手更好的球员,也会最终导致长期输球。如果你不明白这一点,那么你只是在与任何对手玩的任意数量较少的牌中搜寻有统计数据的女巫。

What can be done?
记住这个问题表明作弊者能够看到其他玩家的牌,你不需要进行统计分析来识别他们。只有三种方式可行。

首先,服务器有意向客户端发送信息,这是一个明显的安全问题,不应该实现(IMO,即使是版主)。如果发现一个网站允许这种情况发生,那么玩家有责任将资金转移到其他地方,或者在该可怕的设计决定得到纠正之前拒绝在网站上玩。网站的责任还应该是让玩家了解在网站上玩牌时所发生的确切步骤,以便他们在首先选择网站时做出决定。默默无闻的安全是不可能的。至于捕获窃贼,这些信息应该放在他们服务器上的日志文件中,应该定期审核这种行为。

其次,用户已经攻击了扑克服务器并且他们会在匆忙中知道这一点,否则一旦暴露,玩家就有责任确定在哪里玩。在这种情况下,骗子可以在大多数国家被起诉。

最后,处理算法可能已被破解。这是过去使用天真方法进行交易的公司的一个主要问题,但大多数主要商店通过从登录到他们系统的玩家的随机输入以及使用熵生成硬件来种子他们的随机数来解决这个问题发电机。多数民众赞成并不是说它无法破解。如果是这种情况,唯一的选择是公司设计一个新的随机数生成器。

答案 2 :(得分:5)

好。 IT人员对各种错误的问题着迷。

更好的问题是“甚至可能作弊如何?”。在摊牌时,没有必要将对手的手放在线上。如果该数据没有发送给客户,那他们怎么可能作弊呢?

他们需要闯入服务器。不要告诉我这是不可预防的。

答案 3 :(得分:2)

我认为如果他们欺骗聪明,那么赢得不太多的回合,就不会被发现。我不相信你能看到运气和作弊之间的区别。

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

  1. 用户与服务器之间的每个连接都已加密
  2. 用户之间没有通信,用户只能与服务器通信。
  3. 服务器只告诉每个用户用户应该看到的卡片,而不是其他卡片,除非轮次完成并且用户打开他们的卡片。
  4. 用户可以在这里作弊的唯一方法是,与其他玩家聚在一起,或模仿具有不同帐户和访问IP的多个玩家,并打开另一个通道以在玩家之间进行通信。这样一来,这个小组有一个很大的优势,因为他们比自己的牌知道更多,但他们仍然无法看到其他牌。而且因为它现在是一个作弊的团体,所以更难以发现它,因为他们可以与多个玩家分享他们的收入,而且这个团体甚至可能拥有一个失去超过他所获得但仍然赢得整体的玩家。

答案 4 :(得分:1)

我怀疑你是否可以肯定地说,如果某人作弊或者他们只是擅长扑克,那么在某个时刻之后。

然而,您可以通过查看在整个时间段内受益的用户来缩小您认为可能会作弊的候选人。这将删除绝大多数用户,使您可以更好地集中资源。 (这当然包括熟练掌握扑克的用户。)

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

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

答案 5 :(得分:1)

对于所有人表示不相信这甚至是可能的:在OP中链接的扑克论坛上的社区同样令人敬畏,但该网站已经证实存在这样的安全漏洞。很简单,该网站使用非常基本且不安全的加密来向其玩家传输孔卡数据。从理论上讲,任何知道这一点的人都有可能拦截从站点到特定受害者的传输(例如,通过物理附近和拦截无线数据),并使用截获的知识欺骗该玩家。

问题是关于如何检测此漏洞是否实际被利用(在它被修复之前),如果是这样的话,给定了所列出的资源。

哦,你们当中有些人似乎在假设我们正在谈论一个假设的场景,和/或玩扑克游戏;不是。该网站是真实的,漏洞是真实的,调查真的发生了(参见OP中的链接),正在调查的游戏是正常购买200美元及以上的真钱游戏。

答案 6 :(得分:0)

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

  1. 清除垃圾数据。你只会真正关心那些分为两类的球员:(1)赢得更多手牌而不是输球的球员,(2)赢得比输球更多钱的球员。谁在乎一个失败的骗子呢?嘿。

  2. 通过这个配对的玩家实际分析列表,我会看看他们的比赛风格。假设你有很多历史数据,我会建立一个玩家技能档案并试图规范他们的投注策略。作为一个糟糕的扑克玩家,我通常会备份较弱的牌,没有体面的玩家会因为感觉良好而退回。例如,任何时候我用另一张低牌(2,3,4,5)发牌,如果他们适合,我会经常在转牌前跟注其他牌手所做的任何投注,即使这样战略不是很成功。大盲注位置上方的转牌前加注通常表示球员有一对口袋对,但我对比赛的热爱不会让我在翻牌前弃牌。

  3. 所以对我来说,你对我的比赛的分析会说我在翻牌前匹配激进的来电,这是正常的。但是一个不同的玩家偶尔会在翻牌前下注大赌注,这可能表明某些事情可能会失控。

    我不知道你需要建立什么样的系统来制作不同用户风格的游戏,但我想你可以使用一些计算机学习算法来“学习”一个人的游戏风格体面的准确性。

    1. 你提到一个聪明的用户会举手以尽量减少他作为骗子的外表。我认为这是进行更多分析的绝佳机会。经验丰富的获胜球员是否会通过可怕的手牌进行比赛?可能不会,永远。如果我是4S,7H,并在翻牌圈看到9D,JC,AH,我会知道我获胜的机会非常非常小。它还告诉我们,在翻牌圈给出的牌对于任何人来说都不是很强,因此桌上投注的任何人都可能有一对Jack,Ace配对,两对或三种。既然你知道你的4S,7H是毫无价值的,那么你要么难以欺骗底池,要么直接弃牌。不是很多优秀的球员(谁会在你的获胜球员中找到缩短的名单)就会像这样坚持到底。
    2. 无论如何,这些都是我想到的。现在实际上实现它们,我不知道从哪里开始,所以我担心我不能在那里提供太多帮助。这是一个非常有趣的学术问题,所以请帮我们一个忙,让我们随时了解你的最终目的。如果你想让这个对话离线,请随时发送电子邮件至stackoverflow@ericharrison.info。

答案 7 :(得分:0)

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

即.. PreFlop:一名球员弃置口袋国王,在他之前没有加注,其他人有口袋A ..

这可能表明玩家知道他的首发KINGS(相当不错)并不像别人的口袋ACES那么好。但是假设他在翻牌前做出决定而不是在翻牌后......取决于...... / p>

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

答案 8 :(得分:-1)

说实话,我非常怀疑能够看到对手的球员是随机的。代码中必须存在某种交叉,生成卡片视图,选择某些用户而不是其他用户。我建议对此代码运行测试,并尝试在“查看器”和“非查看器”中查找趋势。如果您发现一个强劲的趋势,那么趋势可以应用于实际数据集,也可以看到哪些用户,或哪些人或哪些因素产生了代码错误。

答案 9 :(得分:-1)

你的问题的答案很简单。只用手历史就无法检测出那种类型的作弊者。您需要非公开的信息才能将多个特征关联起来以找到可疑的骗子。

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

答案 10 :(得分:-2)

最可能的欺骗情况似乎是人们一起工作。在同一张桌子上知道对方牌的三个人应该能够进行一些投注调整,以便让更好的投注者能够领先。

为防止串通而采取了哪些措施?