在这一页
老虎机(加密)
在这一页
简介
本页解释了基于加密公平游戏流程的特定老虎机的工作原理。最终,所有老虎机的结果都基于随机数的抽取。对于加密游戏,随机数基于一长串随机字符。
公平公正的赌场
Bonus Code
分析
就 Crypto.Games 的老虎机而言,它非常简单。它是一款五转轴单线游戏。玩家必须下注 10 个积分。10 个积分的价值由玩家决定。每个转轴有八个不同的符号:苹果、香蕉、樱桃、葡萄、草莓、橙子、比特币和桃子。每个转轴的结果与其他转轴无关。
以下是 Crypto.Games 老虎机的赔付表。符号的位置无关紧要。例如,如果玩家获得两个比特币符号,无论它们在赔付线上的位置如何,他都会获得赔付。所有奖金均按“一赔一”计算。如果出现四个相同的水果和一个比特币,我推测玩家只会获得四个相同水果中较高的一个的赔付,尽管游戏帮助文件并未提及这种情况。
赔付表
事件 | 支付 |
---|---|
五个比特币 | 10000 |
五张相同的牌 | 1500 |
四个比特币 | 700 |
四条 | 100 |
三个比特币 | 70 |
两个比特币 | 二十五 |
一个比特币 | 11 |
比赛分析
我认为 Crypto.Games 老虎机的运作方式是,每个符号应该具有相同的权重或概率。如果真是这样,那么下表就是我的分析。回报列为 (赢利)*(概率)/10。除以 10 的原因是玩家必须下注 10 个积分。右下角单元格显示回报率为 98.03%。
回报表 — 等权重
事件 | 支付 | 组合 | 可能性 | 返回 |
---|---|---|---|---|
五个比特币 | 10,000 | 1 | 0.000031 | 0.030518 |
五张相同的牌 | 1,500 | 7 | 0.000214 | 0.032043 |
四个比特币 | 700 | 三十五 | 0.001068 | 0.074768 |
四条 | 100 | 245 | 0.007477 | 0.074768 |
三个比特币 | 70 | 490 | 0.014954 | 0.104675 |
两个比特币 | 二十五 | 3,430 | 0.104675 | 0.261688 |
一个比特币 | 11 | 11,970 | 0.365295 | 0.401825 |
失败者 | - | 16,590 | 0.506287 | 0.000000 |
全部的 | 32,768 | 1.000000 | 0.980286 |
然而,公平游戏的运作方式决定了某些符号的权重比其他符号更大。具体来说,苹果、香蕉、樱桃、葡萄和草莓的权重均为26,而橙子、比特币和桃子的权重均为25。转轴停在任何特定符号上的概率与其权重成正比。游戏的大部分回报来自比特币符号。由于比特币的权重为25,而整体平均值为25.625,因此转轴停在比特币上的概率略低于八分之一。这降低了游戏的回报率,如下表所示。右下角单元格显示回报率为95.06%。
回报表——不等权重
事件 | 支付 | 组合 | 可能性 | 返回 |
---|---|---|---|---|
五个比特币 | 10,000 | 9,765,625 | 0.000027 | 0.026973 |
五张相同的牌 | 1,500 | 78,938,130 | 0.000218 | 0.032705 |
四个比特币 | 700 | 351,562,500 | 0.000971 | 0.067972 |
四条 | 100 | 2,748,092,600 | 0.007590 | 0.075904 |
三个比特币 | 70 | 5,062,500,000 | 0.013983 | 0.097880 |
两个比特币 | 二十五 | 36,450,000,000 | 0.100677 | 0.251691 |
一个比特币 | 11 | 130,836,733,750 | 0.361377 | 0.397515 |
失败者 | - | 186,513,035,520 | 0.515157 | 0.000000 |
全部的 | 362,050,628,125 | 1.000000 | 0.950639 |
公平游戏
以下是 Crypto.Games 确定每个卷轴停止位置的过程。假设读者了解哈希和 16 进制数学的基础知识。如果不了解,请参阅我的骰子(加密版)页面。
- 将服务器种子和客户端种子连接在一起,先连接服务器种子。
- 获取步骤 1 的 SHA-512 哈希值。
- 从左侧开始,从步骤 2 中的 Hash 中取出两个字符。
- 将步骤 3 中的两个字符从十六进制转换为十进制。
- 取步骤4的结果的末位数字。
- 如果步骤5的结果是1到8,则将其映射到一个符号,如下所示:
- 1 = 苹果
- 2 = 香蕉
- 3 = 樱桃
- 4 = 葡萄
- 5 = 草莓
- 6 = 橙色
- 7 = 比特币
- 8 = 桃子
- 如果步骤 6 在 1 到 8 范围内,则将该符号分配给卷轴,从左侧开始。
- 无论是否找到符号,在哈希中前进两个位置并返回步骤 3,直到找到 1 到 8 范围内的五个数字(每个卷轴一个)。
例子
以下是示例手的运作过程。
在上图的“可证明公平性”面板中,我选择了自己的客户端种子。然后,我将服务器种子和客户端种子的哈希值复制粘贴到其他地方,并标记为“下一个服务器种子 SHA256”。在本例中,它们是:
客户端种子:sdf96dsf9876s9dd78f6 下一个服务器种子哈希:bdfa300164ebbd77ce9a3c3c58863688c4537df91173088915afdd4c9b6b302c
我下了注,然后玩了起来。我的游戏结果(从左到右)是樱桃-苹果-香蕉-草莓-香蕉,我输了。
选择客户端种子后,我会回到“可验证公平”面板,确保结果已命中注定。以下是我采取的步骤:
- 首先,我注意到最后的服务器种子,他们说的是:
ylVWazQHJxoG9TAcLmDj1n6q1UkJgyFW4oTJhUhL
我将其放入SHA-256 哈希程序中。该种子的哈希值为:
bdfa300164ebbd77ce9a3c3c58863688c4537df91173088915afdd4c9b6b302c
这与我下注前获得的下一个服务器种子哈希相匹配,因此我可以确信,在我选择客户端种子之后但在下注之前,结果就已经注定了。
但是,我想知道为什么结果是樱桃-苹果-香蕉-草莓-香蕉。验证方法如下:
- 按顺序组合服务器种子和客户端种子,得到 ylVWazQHJxoG9TAcLmDj1n6q1UkJgyFW4oTJhUhLsdf96dsf9876s9dd78f6。
- 采用步骤 1 的SHA-512 哈希值,得到 3F8CEF835C55B60C8682C580C1A0C6DCA5013F4614A82A6797273495CCE46418EA044CCD964B83D0765C9CE6A174F93E20DB56E118CF8AE82B2D0864FC09B066。
- 取前两个字符 3F,并将其从十六进制转换为十进制:3*16 + 15 = 48 + 15 = 63。
- 取 63 的最后一位数字 3。由于该数字在 1 到 8 的范围内,因此请根据上述公平游戏指南将其映射到一个符号。在本例中,3 对应 Cherry 符号。
- 将步骤 2 中的哈希值推进两个符号,即 8C。
- 将 8C 从十六进制转换为十进制:8*16 + 12 = 140。
- 140 的最后一位数字是 0,它不映射到任何内容,因此跳过 8C。
- 将步骤 2 中的哈希值向前推进两个符号,即 EF。
- 将 EF 从十六进制转换为十进制:14*16 + 15 = 239。
- 239 的最后一位数字是 9,它不映射到任何数字,因此跳过 EF。
- 将步骤 2 中的哈希值推进两个符号,即 83。
- 将 EF 从十六进制转换为十进制:8*16 + 3 = 131。
- 取 131 的最后一位数字 1。由于 1 的范围是 1 到 8,因此请根据上述公平游戏指南将其映射到一个符号。在本例中,1 对应一个苹果。
- 将步骤 2 中的哈希值推进两个符号,即 5C。
- 将 5C 从十六进制转换为十进制:5*16 + 12 = 92。
- 取 92 的最后一位数字 2。由于 2 的范围是 1 到 8,因此请按照上述公平游戏指南将其映射到一个符号。在本例中,2 对应香蕉。
- 将步骤 2 中的哈希值推进两个符号,即 55。
- 将 55 从十六进制转换为十进制:5*16 + 5 = 85。
- 取 85 的最后一位数字 5。由于 5 的范围是 1 到 8,因此请按照上述公平游戏指南将其映射到一个符号。在本例中,5 对应一个草莓。
- 将步骤 2 中的哈希值向前推进两个符号,即 B6。
- 将 B6 从十六进制转换为十进制:11*16 + 6 = 182。
- 取 182 的最后一位数字 2。由于 2 的范围是 1 到 8,因此请按照上述公平游戏指南将其映射到一个符号。在本例中,2 对应香蕉。
- 已经找到了五个符号,因此樱桃、苹果、香蕉、草莓和香蕉会在中心支付线上向玩家显示,作为其下注的结果。
公平游戏守则
如果听起来这些步骤繁琐,我同意。为此,我特意编写了一个PHP 程序来帮你完成。点击链接,按照以下说明操作即可:
- 在第 4 行输入服务器种子。
- 在第 5 行输入客户端种子。
- 在第 6 行输入下一个服务器种子哈希。
- 点击“执行”。
服务器种子的验证和投注的结果将显示在下面的结果框中。
我还保留了代码的副本,您可以通过单击下面的剧透按钮来查看。
[剧透]// Crypto.Games 的老虎机转换 $server_seed = "ylVWazQHJxoG9TAcLmDj1n6q1UkJgyFW4oTJhUhL"; $客户端种子 = “sdf96dsf9876s9dd78f6”; $next_server_seed_hash = "bdfa300164ebbd77ce9a3c3c58863688c4537df91173088915afdd4c9b6b302c"; $reel_strip_array=array("错误","苹果","香蕉","樱桃","葡萄","草莓","橙子","硬币","桃子"); $win_array=数组(10000,1500,700,100,70,25,11,0); $server_seed_hash=hash('sha256', $server_seed); 如果 ($server_seed_hash==$next_server_seed_hash) { echo "服务器种子匹配.\n"; } 别的 { echo“服务器种子不匹配!\n”; echo "服务器种子 =\t$server_seed\n"; echo“服务器种子哈希=\t$server_seed_hash\n”; echo“所谓的下一个哈希=\t$next_server_seed_hash\n”; } $reels_found=0; $位置=0; $combined_seed = $server_seed.$client_seed; echo "组合种子 = $combined_seed\n"; $combined_hash = hash('sha512', $combined_seed); echo“组合种子的哈希值=$combined_hash\n”; 做 { $first_two=substr($combined_hash,$position,2); $hex_to_dec=hexdec($first_two)%10; 如果(($hex_to_dec>=1)&&($hex_to_dec<=8)) { $reels_array[$reels_found] = $hex_to_dec; $reels_found++; echo "卷轴 $reels_found =\t$reel_strip_array[$hex_to_dec]\n"; } $位置+=2; 如果 ($位置==128) { echo“错误——哈希中没有更多空间。\n"; $reels_found=5; } } while ($reels_found<5); $coins=0; for ($i=0; $i<=4; $i++) { if ($reels_array[$i]==7) { $coins++; } } if ($coins==5) { $win=0; } elseif ( ($reels_array[0]==$reels_array[1]) && ($reels_array[0]==$reels_array[2]) && ($reels_array[0]==$reels_array[3]) && ($reels_array[0]==$reels_array[4])) { $win=1; } // 五张相同的牌 elseif ($coins==4) { $win=2; } elseif ((($reels_array[0]==$reels_array[1]) && ($reels_array[0]==$reels_array[2]) && ($reels_array[0]==$reels_array[3])) || (($reels_array[0]==$reels_array[1]) && ($reels_array[0]==$reels_array[2]) && ($reels_array[0]==$reels_array[4])) || (($reels_array[0]==$reels_array[1]) && ($reels_array[0]==$reels_array[3]) && ($reels_array[0]==$reels_array[4])) || (($reels_array[0]==$reels_array[2]) && ($reels_array[0]==$reels_array[3]) && ($reels_array[0]==$reels_array[4])) || (($reels_array[1]==$reels_array[2]) && ($reels_array[1]==$reels_array[3]) && ($reels_array[1]==$reels_array[4]))) { $win=3; } // 四张相同的牌 elseif ($coins==3) { $win=4; } elseif ($coins==2) { $win=5; } elseif ($coins==1) { $win=6; } else { $win=7; } echo "Win =\t$win_array[$win]\n" // 过程 // 1. 将“位置”步进为 0,将“找到的卷轴”步进为 0。 // 2. 按顺序加入服务器和客户端种子以及服务器种子。 // 3. 生成步骤中字符串的 SHA-512 哈希值2. // 4. 从步骤 3 中的哈希“位置”开始,将前两个字符从十六进制转换为十进制。 // 5. 从步骤 4 中取出末位数字。 // 6. 如果步骤 5 的结果为 1 到 8,则根据下表将其映射到符号,并将“找到的卷轴”增加 1。 // 7. 如果找到了五个卷轴,则停止,否则将“位置”增加 1 并返回步骤 4。 // 8. 找到五个卷轴后,从左到右显示它们,以便在哈希中找到它们。 // 9. 符号映射: // 1 = 苹果 // 2 = 香蕉 // 3 = 樱桃 // 4 = 葡萄 // 5 = 草莓 // 6 = 橙子 // 7 = 硬币 // 8 = 桃子 ?>
[剧透]