На этой странице
Кубики (зашифрованная версия)
На этой странице
Введение
На этой странице речь идёт об игре, известной как «игральные кости», в которую обычно играют в интернет-казино, использующих криптовалюту для ставок и транзакций. Игра не имеет ничего общего с шестигранными игральными костями, а выигрыши и проигрыши определяются случайным числом от 0 до 10 000. Её также не следует путать с другими играми, которые называются просто «игральные кости».
Правила
- Вопреки названию игры, победы и поражения определяются случайным образом выбранным целым числом от 0 до 10 000 (включая эти числа).
- Игрок сможет определить либо победный гол, либо коэффициенты выигрыша (например, 2 к 1).
- Победа будет заключаться в том, чтобы выбросить число, превышающее определенный порог, или меньшее другого значения.
- Если игрок корректирует один элемент ставки (гол выигрыша или коэффициенты), то другой элемент будет скорректирован таким образом, что коэффициенты выигрыша будут обратно пропорциональны вероятности выигрыша, обеспечивая одинаковое преимущество казино по всем возможным ставкам.
Пример
Предположим, в игре установлен коэффициент возврата 99%. Если игрок устанавливает свои шансы на выигрыш 2 к 1, то игра скорректирует его вероятность выигрыша как 0,99/2 = 49,5%. Цели, которые позволят достичь этого, следующие:
- Более 5050
- Менее 4950
Игрок может выбрать, какой из этих вариантов достижения цели он предпочитает.
Предположим, игрок устанавливает коэффициент выигрыша 3 к 1. Тогда вероятность выигрыша в игре скорректируется до 0,99/3 = 33%. Цели, которые позволяют достичь этой цели:
- Более 6700
- Менее 3300
Я не знаю, как обрабатываются ничьи, когда победный гол является целым числом. Преимущество казино на 0,01% меньше, если ничья заканчивается ничьей, по сравнению с ничьей, когда ничья заканчивается поражением.
В следующей таблице показаны выигрышные голы в соответствии с коэффициентом возврата игроку (RTP) для ставок с выплатой 2 к 1. Например, если выигрышный гол был меньше 4975, то коэффициент возврата игроку составит 99,5%.
Вернуться к руководству игрока
| Возвращаться к игроку | Вероятность Победа | Под | Над |
|---|---|---|---|
| 99,5% | 49,75% | 4,975 | 5025 |
| 99,4% | 49,70% | 4970 | 5030 |
| 99,3% | 49,65% | 4965 | 5035 |
| 99,2% | 49,60% | 4960 | 5040 |
| 99,1% | 49,55% | 4955 | 5045 |
| 99,0% | 49,50% | 4950 | 5,050 |
| 98,9% | 49,45% | 4945 | 5055 |
| 98,8% | 49,40% | 4940 | 5060 |
| 98,7% | 49,35% | 4935 | 5065 |
| 98,6% | 49,30% | 4930 | 5070 |
| 98,5% | 49,25% | 4925 | 5075 |
На изображении выше ставки с коэффициентом 2 к 1 составляют менее 49 600 и более 53 999. В таблице выше показано, что это дает доходность в 99,2%. Это также легко рассчитать как 2 * (49600 / 100000) = 99,2%.
Доказуемо справедливо
Предположим, Эми и Боб хотят сыграть в камень-ножницы-бумага удаленно и без доверия друг к другу. Как это можно сделать?
Это легко сделать, зашифровав ходы. В интернете существует множество программ для шифрования, например, та, что есть на miniwebtool.com . Например, предположим, Эми хочет сыграть в ножницы. Она могла бы зашифровать слово «ножницы» и получить следующее зашифрованное сообщение, известное как хеш.
17f174ce4953e98e7418d22b29f7569505e4bcc39859e7825500d43a5ec1b87d d521d508d6ece5397021013c0c561bcd9ba947f1f40ac1a2f3a670b485b0aff6
Затем она могла бы отправить это Бобу до того, как он сделает свой ход, чтобы доказать, что её ход был предопределён. Предположим, Боб объявляет свой ход бумажным. Тогда Эми могла бы заявить о победе и доказать это, попросив Боба зашифровать сообщение «ножницы», и он увидит, что его хеш в точности совпадает с хешем, который Эми отправила ему перед его ходом.
Однако Боб, зная, что возможны только три исхода, может пропустить слово «ножницы» через программу хеширования и узнать, что его хеш равен указанному выше, а затем выбрать камень. Чтобы защититься от этого, Эми должна добавить какой-нибудь другой текст, подойдут случайные символы, чтобы Боб не смог расшифровать её хеш. Например, она может зашифровать «b980Cql98lbaj -- scissors» и получить другой хеш.
5e4c68f7b35503c79b1aa31df87c6043bd30a1cff28b8431394cbbb829c90d4d51dec1b25ac5be44873572dbabd735c41006c83aff59ce06d3efe86513a57108
Обратите внимание, что в хеше всего 16 возможных символов: от 0 до 9 и буквы от a до f. Весь хеш на самом деле является числом, записанным не в десятичной, а в шестнадцатеричной системе счисления, известной как шестнадцатеричная .
Принцип тот же и в «вероятно честной» игре. Однако дополнительный уровень безопасности обеспечивается за счет предоставления игроку возможности влиять на исход ставки. В противном случае казино может жульничать. Например, заметив, что игрок обычно ставит «больше» в игре в кости, оно может выдать ему в качестве результата низкое число, даже если оно зашифровано.
Проще говоря, это работает следующим образом:
- Казино выбирает случайную последовательность символов (известную как «сид»), шифрует её в хеш и предоставляет этот хеш игроку, чтобы доказать, что вклад казино в результат был предопределён.
- Игрок сам выбирает свой сид.
- Игрок делает ставку.
- Две струны соединены вместе (в любом порядке).
- Полученная в результате шага 5 объединенная строка шифруется в хеш.
- Часть хеша преобразуется из шестнадцатеричной системы счисления в десятичную.
- Часть результата, начиная с цифры 6, преобразуется, возможно, последние шесть цифр, в число от 0 до 999 999. Это и будет исходом игры.
- По завершении ставки казино покажет свой собственный «сид», который игрок сможет проверить, убедившись, что он зашифрован с использованием предоставленного хеша до совершения ставки. Это покажет, что исход был предопределен, как только игрок выбрал свой собственный «сид».
Несмотря на всё это, казино всё ещё может жульничать. Один из способов — использование стандартного начального значения генератора случайных чисел (Seed). Если игрок перейдёт на экран «Честная игра», он увидит стандартное начальное значение генератора случайных чисел. Игрок может выбрать другое значение или ввести своё собственное, но я сомневаюсь, что многие игроки будут этим заниматься. Мошенническое казино может тщательно подобрать стандартное начальное значение генератора случайных чисел и начальное значение казино, чтобы объединить их и получить в результате проигрыш для игрока.
Ещё один способ, которым казино может обмануть, — это просто выбрать начальное значение (seed), которое приводит к проигрышному результату, даже если оно не соответствует результату, предоставленному игроку до ставки. Именно это произошло со мной, когда я играл в Wixiplay . Что делать, если вы уличите казино в несоответствии начального значения и хеширования? Если вы обвините их в мошенничестве, они либо будут отрицать это без комментариев, либо просто проигнорируют обвинение. Когда меня обмануло Wixiplay, они сначала проигнорировали меня. Позже я пожаловался в Комиссию по контролю за азартными играми Кюрасао , но даже не получил ответа.
Казино, где доказуемая честность
Программа оценки результатов в игровой индустрии
Довольно трудоемко преодолевать все перечисленные выше препятствия, чтобы определить справедливость исхода игры. Чтобы упростить этот процесс, я написал программу на PHP, которая легко определит исход игры, имея начальные значения как для игрока, так и для казино. Эта программа будет работать только в том случае, если исход игры определяется следующим образом:
- Присоединяйтесь к серверу и клиенту, сначала к серверу.
- Сгенерируйте хеш SHA-512 строки из шага 1.
- Преобразуйте первые пять символов хеша из шестнадцатеричной системы счисления в десятичную.
- Если результат шага 3 превышает 999 999, то продвиньтесь на пять позиций в хеше и вернитесь к шагу 3. В противном случае переходите к шагу 5.
- Возьмите последние пять цифр из шага 3. Это и будет результатом игры.
Этот скрипт будет работать для игры в кости на сайте Crypto.Games. В других казино генератор случайных шестизначных чисел может определяться другим способом или использоваться другая программа хеширования, отличная от SHA-512.
Чтобы использовать мою программу, перейдите в эту PHP-песочницу , следуйте инструкциям в комментариях вверху относительно того, когда следует вводить данные, и нажмите «Выполнить код». Результат игры и подтверждение корректности начального значения сервера появятся в поле «Результат» под кодом.
В качестве резервной копии, кнопка ниже покажет мой код.
[spoiler=Игровой код Dice Fair]
// Конвертация игры в кости для Crypto.Games
// Для использования введите Client Seed в строке 5, Server Seed в строке 6 и Hash следующего Server Seed в строке 7.
$client_seed = "f0g9s8f7g097sdfg098sd7f0g87s0fg897";
$server_seed = "SxG74IkdDRmWh0jT015TCA01fUoCA0lI2N3KxS8L";
$next_hash = "1c42ef7fcbb94c2841d4ee88467c13813c30f5f774260f1a308b960884a7fd8b";
$server_seed_hash = hash('sha256',"$server_seed");
$combined_seed = $server_seed.$client_seed;
echo "Объединенное начальное значение = $combined_seed\n";
$combined_hash = hash('sha512', $combined_seed);
echo "Хэш объединенного начального значения = $combined_hash\n";
$position=0;
$first_five=substr($combined_hash,$position,5);
// echo "Первые пять символов, начиная с позиции $position = $first_five\n";
делать
{
$hex_to_dec=hexdec($first_five);
$position+=5;
}
while ($hex_to_dec > 999999);
// echo "Преобразовано в десятичное число = $hex_to_dec\n";
$mod5=$hex_to_dec%100000;
echo "\nИсход игры = $mod5\n";
если ($server_seed_hash == $next_hash)
{ echo "Совпадение начального значения сервера.\n"; }
еще
{
echo "НЕСООТВЕТСТВИЕ СЕМЕННЫХ ЗНАЧЕНИЙ СЕРВЕРА!\n";
echo "Серверный начальный параметр =\t$server_seed\n";
echo "Хэш начального значения сервера =\t$server_seed_hash\n";
echo "Предполагаемый следующий хеш=\t$next_hash\n";
}
// Процедура
// 1. Объедините начальные значения сервера и клиента, сначала используйте начальное значение сервера.
// 2. Сгенерируйте хеш SHA-512 строки из шага 1.
// 3. Преобразовать первые пять символов хеша из шестнадцатеричного формата в десятичный.
// 4. Если результат шага 3 превышает 999 999, то продвиньтесь на пять позиций в хеше и вернитесь к шагу 3. В противном случае перейдите к шагу 5.
// 5. Возьмите последние пять цифр из шага 3. Это будет результатом игры.
?>
[/спойлер]Заключительные рекомендации по честной игре
Если вы не хотите утруждать себя проверкой честности исхода игры, хотя бы покажите казино, что вы проверяете. Казино поймет, если вы нажмете на кнопку «честная игра», чтобы подтвердить результат. Если бы они были склонны к мошенничеству, здравый смысл подсказывал бы, что они с большей вероятностью обманывали бы клиентов, которые не проверяют результат.
Если вы нажмете «честная игра», добавьте хотя бы несколько случайных символов в поле «Сид клиента». Это предотвратит предоставление казино бонусного «Сида клиента», который приведет к желаемому казино результату.
Если вы обнаружите, что какое-либо казино жульничает, пожалуйста, пришлите мне доказательства. Я с удовольствием проверю это и предупредю других игроков, чтобы они не играли в этом казино, внеся его в свой черный список .
