两根热狗、一杯苏打水,还有一张1430万美元的彩票
得梅因东区QuikTrip便利店的监控录像显示,2010年圣诞节前两天,下午大约3点30分,一名身穿连帽衫的高大男子花了3.17美元买了热狗、一杯饮料和两张Hot Lotto彩票。六天后,也就是2010年12月29日,其中一张彩票五个号码加Hot Ball全部命中。头奖现金为1430万美元,年金形式为1650万美元。但没有人前来领奖。
领奖申请是在截止前几小时才提交的。爱荷华州的彩票一年后作废;2011年12月29日,距截止时间还有一小时五十分钟,得梅因一家律师事务所的律师代表一个名为Hexham Investments的信托前来领取彩票,该信托注册于伯利兹,其受托人是一位名叫克劳福德·肖(Crawford Shaw)的纽约律师,在文件上把名字拼成了“Hexam”。申请被拒绝。2012年1月,肖亲自会见彩票官方;爱荷华州不向匿名中奖者付款,肖拒绝透露彩票的购买者是谁,并于2012年1月26日签署宣誓书撤回申请。1430万美元回到了彩票玩家奖池。彩票管理方公开了QuikTrip的监控录像,向公众征询那名穿连帽衫的男子身份。
| 日期 | 事件 |
|---|---|
| 2010年11月20日 | 蒂普顿进入MUSL的密封开奖室调整生成器时钟以适应夏令时;房间摄像机以大约每分钟一秒的速度录制 |
| 2010年12月23日 | 下午约3点30分,在得梅因一家QuikTrip购买了两张Hot Lotto彩票 |
| 2010年12月29日 | 开奖:一张彩票中得头奖,现金1430万美元/年金1650万美元 |
| 2011年11月9日 – 12月29日 | 先由一名律师提出申请,后由注册于伯利兹的Hexham Investments信托提出申请;最后一次尝试在到期前1小时50分钟,被拒绝 |
| 2012年1月26日 | 受托人克劳福德·肖撤回申请,拒绝说出购买者身份;奖金被没收 |
| 2015年1月15日 | 根据监控录像和一名同事的声音辨认,蒂普顿因两项欺诈罪名被捕 |
| 2015年7月20日 | 两项罪名均被判有罪;9月被判处十年监禁,案件正在上诉中 |
| 2017年6月 | 爱荷华州最高法院以超过诉讼时效为由撤销了定罪;同月,蒂普顿对持续性犯罪行为认罪,并承认大约在2005年至2006年间植入了那段代码 |
| 2017年8月22日 | 被判处最高刑期25年;需向科罗拉多州、俄克拉荷马州、威斯康星州和堪萨斯州赔偿约220万美元 |
| 2022年7月 | 服刑五年后获假释 |
日期来自爱荷华州案件记录,分别由《得梅因纪事报》、美联社、《每日野兽》(2015年7月7日)和CNN(2017年8月22日)报道。维基百科对该案的总结给出的现金价值为1430万美元,宣传奖金为1650万美元;这两个数字都出现在当时的报道中。
穿帽衫的男子是埃迪·蒂普顿,他其实根本不能合法购买彩票。作为MUSL(多州彩票协会)的信息安全主管,他是五名有权进入开奖室的人员之一,而且他还参与编写了开奖室里使用的软件。一名同事从录音中认出了他的声音。2015年审判时检方的理论是,2010年11月20日,他以调整时钟为掩护,插入了一个带有自我删除程序的USB闪存盘,而那台每六十秒才录一秒的摄像机,被事先安排好没有拍到这一幕。辩方则称这些摄像机一直有故障记录,而且从未找到任何恶意软件。陪审团做出了有罪裁决;两年后,爱荷华州最高法院以超过诉讼时效为由撤销了这些定罪;随后,面临五个州指控的蒂普顿在法庭上站了出来,交代了他实际所做的事情。
一年中的三个日期,八点之后
这段代码不是在爱荷华州找到的——那里的硬盘已被清空——而是在威斯康星州发现的。2016年,调查人员在检查该州Megabucks开奖所用的生成器时,发现在软件已经过审查和认证之后,又被添加了几段代码。在一年中的三个日期——5月27日、11月23日和12月29日——如果这一天恰好是周三或周六(开奖日),并且开奖时间在晚上8点之后,生成器就不会进行随机开奖。它会运行调查人员所称的一种多变量算法,而作者能够重现该算法的输出结果。而在一年中其他任何日子,它都和审计人员签字认可的随机数生成器一模一样。
那么我们来看看大奖清单。科罗拉多州,2005年11月23日:568,990美元,是蒂普顿的兄弟汤米所分得的450万美元奖金的一部分,使用的正是埃迪曾参与搭建的生成器。威斯康星州,2007年12月29日:783,257美元,支付给了由罗伯特·罗兹控制的一家公司,此人是蒂普顿在得克萨斯的朋友,后来曾向蒂普顿转账。堪萨斯州,2010年。爱荷华州,2010年12月29日:那1430万美元的奖金从未被领取。俄克拉荷马州,2011年11月23日:120万美元。每一笔都发生在11月23日或12月29日。日期就是签名;之所以六年都没人发现,是因为没人去查看一份日期清单——人们看的是一台经过认证的随机数生成器。
| 情况 | 每张彩票中大奖的概率 | 覆盖所需彩票数 |
|---|---|---|
| Hot Lotto,5/39加1/19,诚实开奖 | 1比10,939,383 | 10,939,383 |
| 诚实开奖,一年中的362天 | 1比10,939,383 | 10,939,383 |
| 5月27日、11月23日、12月29日,如果落在周三或周六晚上8点后开奖,代码的作者就知道结果 | 1 分之 1 | 1(他买了2张) |
| 相同日期,其他所有人 | 10,939,383 分之 1 | 10,939,383 |
C(39,5) × 19 = 575,757 × 19 = 10,939,383,这是Hot Lotto在2013年5月之前使用的矩阵。能够重现生成器状态的玩家并不是拥有更好的赔率,而是直接知道答案。据已披露的信息,其余362天都是诚实的,这也是该生成器能通过每一次审计的原因。
这里有一个比rootkit本身更重要的细节。随机数生成器本质上是一个函数:输入种子,输出数字。认证检查的是这个函数本身,但无法检查是谁选择了种子,也无法检查这个函数是否在一年中的三个晚上悄悄使用了另一个种子。威斯康星州的代码并没有破坏随机性,它只是短暂地用一种从外部看起来一模一样、从内部却完全确定的东西取代了随机性,然后在被检查之前又恢复为随机状态。无论在此之前还是之后,对输出的任何测试都会通过。
审计无法回答的问题是:谁选择了种子?
这起案件之所以被破获,靠的是一名理赔员、一个拼写错误的信托和一个便利店摄像头,而不是开奖本身的任何线索。这才是令人不安的地方。MUSL拥有一个密封的房间、一个经过认证的生成器、一个五人访问名单和一个监控摄像头,而对这四者都负责的人正是攻击者本人。被捕后,爱荷华彩票局宣布更换新的开奖设备和软件、新的摄像头、新的开奖室协议,以及
结构性的解决方案不是更好的摄像头,而是把种子的选择权从任何能看到结果的人手中拿走。在可证明公平的游戏中,运营商会在下注前公布其种子的哈希值;玩家提供自己的种子;每一轮的数字都是这两者加上一个计数器的密钥哈希值。即使内部人员写了这个函数并持有服务器种子,他也无法选择结果,因为玩家的种子是在承诺之后才提供的,而运营商也不能在不破坏已公布哈希值的情况下更改自己的种子。在这一规则下,蒂普顿每年的那三个日期将变得不可能实现——不是因为那段代码写不出来,而是因为他需要知道的种子根本不由他来选择。
引擎已验证_shared/seedApi.ts:getRandomKey返回{serverSeedHashed, clientSeed, nonce},setClientSeed(clientSeed)让玩家可以设置自己的种子,并从nonce 0开始一组新的配对;_shared/demoLocal.ts将每一轮的数字推导为u64(hmacSha256Utf8(serverSeed, `${clientSeed}-${nonce}-${cursor}`)),据称与服务器端的RandomUtils.generateHash相匹配。OriginalBaseDiceService.kt随后将该数字映射为9,999个等概率结果之一(50%赔率时为×1.98,1.0%的优势)。服务器种子在游戏开始前通过其SHA-256值进行承诺;自2026年9月22日起,已退役的种子不会在应用内下发,因此该承诺是通过指纹进行验证,而不是由玩家打开验证。
这并不是说可证明公平的赌场比州彩票更值得信赖;这里要说的是一个更小的主张:种子不应只由庄家一方选择,而在彩票中恰恰如此。蒂普顿的大奖始终只有房间里那一个人所允许的随机程度,而这个房间的设计恰恰让任何人都无法察觉这一点。如果有公开的承诺和一个庄家无法选择的种子,他本会和其他所有人拥有同样的赔率:全年每一天都是10,939,383分之一。
遊种子不应由庄家选择
下注前哈希已承诺,你的种子也参与其中——没有任何一方能单独决定结果骰子 →
常见问题
埃迪·蒂普顿是谁?
他是多州彩票协会(Multi-State Lottery Association)的信息安全总监,该协会运营Hot Lotto及其他多州彩票游戏,他也是该协会随机数生成器的程序员之一。他购买了2010年12月29日爱荷华州Hot Lotto开奖的中奖彩票,奖金高达1430万美元,但该奖金从未被领取,因为理赔是通过一个匿名的伯利兹信托机构提出的,而该信托最终选择撤回而不愿透露他的身份。
他是如何操纵开奖的?
对威斯康星州一台姊妹生成器的法证检查发现,认证之后被添加的代码会在5月27日、11月23日和12月29日这几天,如果日期恰逢周三或周六晚上8点后的开奖,就会用他能够计算出的数字替换随机开奖结果。2017年6月,他承认大约在2005年至2006年间安装了这段代码。此前检察官曾主张,他是利用2010年11月20日的一次开奖室访问——当时摄像头每分钟只录制一秒——安装了一个会自我删除的程序。
涉及哪些奖池?
科罗拉多州,2005年11月23日(56.899万美元份额,由他兄弟Tommy领取);威斯康星州,2007年12月29日(78.3257万美元,通过Robert Rhodes的一家公司);堪萨斯州,2010年;爱荷华州,2010年12月29日(1430万美元,已被没收);俄克拉荷马州,2011年11月23日(120万美元)。全部发生在11月23日或12月29日。
判决结果是什么?
2015年7月被定罪,判处十年监禁;2017年6月因超过追诉时效,定罪被撤销;随后他对持续犯罪行为认罪,并于2017年8月22日被判处最高刑期25年,并需支付约220万美元的赔偿金,由科罗拉多、俄克拉荷马、威斯康星和堪萨斯分摊。他于2022年7月服刑五年后获得假释。
这种事会发生在可证明公平的游戏上吗?
通过这种方式不会。运营方在下注前就以公开的哈希值承诺自己的种子,玩家随后提供自己的种子,结果由两者共同决定,因此即便是编写代码并掌握服务器种子的内部人员,也无法选定结果。唯一仍有可能的是服务器不遵守其承诺,这正是为什么哈希要先公布,而玩家的种子由玩家自己设置。
来源与参考资料
- 《The Daily Beast》— M.L. Nestel,《史上最大彩票骗局内幕》(2015年7月7日):QuikTrip购物(3.17美元的热狗,两张彩票,约下午3:30)、每分钟一秒的摄像头、2010年11月20日的开奖室访问、Hexham/“Hexam”在到期前1小时50分钟的领奖申请、2012年1月的提款
- CNN —《操纵中奖结果的前彩票员工被判25年监禁》(2017年8月22日):判决结果、220万美元赔偿金的分配(科罗拉多110万美元、俄克拉荷马64.4万美元、威斯康星39.1万美元、堪萨斯3万美元)、2017年6月就五个州七张彩票的持续犯罪行为认罪、爱荷华州1430万美元的奖池
- 美联社通过NBC26 —《大规模彩票丑闻中操纵者兄弟被捕》(2016年):威斯康星州的代码段、450万美元奖池中科罗拉多56.899万美元的份额、“六次开奖分别发生在2005年至2011年间的11月23日或12月29日”
- 维基百科 —《Hot Lotto欺诈丑闻》(总结自Des Moines Register、美联社、Ars Technica及State v. Tipton, 897 N.W.2d 653 (Iowa 2017)):威斯康星州的法医发现(5月27日、11月23日、12月29日;周三/周六;晚上8点后)、各州奖池、上诉、2017年的供述、2022年7月假释、爱荷华州彩票委员会2015年4月的声明
- 维基百科 —《Hot Lotto》:2013年5月前使用的5选39加1选19矩阵及周三/周六开奖时间表
- Betkyo引擎来源:_shared/seedApi.ts, _shared/demoLocal.ts, _shared/rng.ts(服务器种子承诺、客户端种子、每轮HMAC-SHA256)以及OriginalBaseDiceService.kt(9,999种结果,50%时×1.98,1%优势)
- 本文计算:C(39,5) × 19 = 575,757 × 19 = 10,939,383
本文涉及的游戏