WOO logo

На этой странице

Рулетка (зашифрованная версия)

На этой странице

Введение

Эта страница посвящена зашифрованной версии рулетки, в которую часто играют в казино, использующих криптовалюту. Предполагаю, что читатель уже знаком с основными правилами обычной рулетки .

Казино, где доказуемая честность

CryptoWins Casino
4 / 5.0
Игроки оценили CryptoWins Casino 4 по 5-балльной шкале
Зарегистрироваться бонус - Липкий

77% до
₿1

Предложение для новых клиентов. Действуют правила и условия. 18+. Это предложение недоступно для игроков, проживающих в Онтарио. Предложение для новых клиентов. Действуют правила и условия. 19+. Минимальный депозит: 5$. Максимальная сумма вывода: 30 000$. Только для избранных игр: список онлайн-слотов смотрите на сайте. Срок отыгрыша бонусов — 10 дней.
CryptoSlots Casino
3.9 / 5.0
Игроки оценили CryptoSlots Casino 3.9 по 5-балльной шкале
Зарегистрироваться бонус

111% до
$500

Предложение для новых клиентов. Действуют правила и условия. 18+. Минимальный депозит: 25$. Разрешенные игры: все игры (кроме игры, запускающей джекпот). Максимальная сумма вывода: 5000$.

Бонус за регистрацию

Бонус-код

WELCOME1
мой WR: 35xB
Отыграйте сумму Бонус 35 раз на Slots, чтобы вывести средства.

Анализ

В игре на Crypto.Games рулетка играется на колесе с одним нулем, как это обычно бывает в онлайн-казино. Преимущество казино составляет 1/37 = 2,70% на каждую ставку.

Честная игра

Следующее объяснение использования криптографии предполагает, что читатель знаком с терминологией и концепцией. Основные сведения можно найти на моей странице о кубиках (зашифрованная версия) . Вот как игра в рулетку на Crypto.Games генерирует случайное число от 0 до 37, которое используется в качестве результата игры.

  1. Как и положено, игра раскрывает хеш серверного сиу-фразы для следующей ставки и позволяет игроку выбрать свой собственный клиентский сиу-фразу.
  2. Игрок делает ставки, как в обычной рулетке.
  3. Игра будет объединять начальные значения (сиды) сервера и клиента именно в таком порядке.
  4. В игре будет использован хеш SHA-512 объединенного начального значения из шага 3.
  5. В игре будет выполнено преобразование двух символов хеша, начиная с шага 4, из шестнадцатеричного формата в десятичный.
  6. Возьмите последние две цифры десятичного числа из шага 5.
  7. Если результат шага 6 равен 0–36, то используйте его в качестве результата рулетки.
  8. Если результат шага 6 равен 37 или больше, то продвиньтесь на две позиции в хеш-таблице и вернитесь к шагу 5.

Пример

рулетка 1

Сначала я перехожу на экран «Честная игра», показанный выше. Затем ввожу любой желаемый «сид-код клиента», подойдет случайный набор символов. После этого скопируйте и вставьте две вещи в другой источник:

  • Ваш клиентский посев
  • Следующий хеш начального значения сервера, который обозначен как "Next server seed SHA256".

Вы сами решаете, добавлять ли Nonce — дополнительные автоматические символы, добавляемые в конец клиентского сид-кода. Я считаю, что если бы казино намеревалось обмануть, добавление Nonce не обеспечило бы никакой защиты.

В нашем примере именно эти доказательства следует сохранить.

Хэш начального значения следующего сервера = e7043dd7fe369b94518449d61162a0c960f54781a16548af63194b7fd9d6891a
Начальное значение параметра клиента = b0x6vb0v6TYUIQWF6b0sd6f0y

рулетка 1

Затем я сделал ставку, как показано выше. Здесь я поставил 10 фишек, каждая стоимостью 0,000001 BTC (биткоина), на общую сумму 0,00001 BTC (эквивалент примерно 10 центов) на красный цвет.

рулетка 3

Результат - 7 красных, значит, я выиграл.

рулетка 4

Далее я выполняю следующие шаги, чтобы проверить результат. В реальной жизни я бы стал этим заниматься только в случае проигрыша. Если бы казино хотело обмануть, я, вероятно, проиграл бы.

  1. Я подключаю серверный и клиентский сид в следующем порядке: sMDGT5P10m071HAdTQkoYCLJ8vLXnwzq6ugfloMTb0x6vb0v6TYUIQWF6b0sd6f0y
  2. Я беру хеш SHA-512 объединенного начального значения из шага 1:
    40cf0126a307d4d72900279d330499f6a5447c35ed838d6ec3fd2b53872df73c cac001686ddf05e024c5899205afa9d0551b5e19b8397af180f6de06aea429ac
  3. Я беру первые два символа, которым 40.
  4. Я перевожу число 40 из шестнадцатеричной системы в десятичную: 4*16 + 0*1 = 64.
  5. В десятичном результате из шага 4 есть две цифры, поэтому я оставляю его как есть. В противном случае я бы взял конечные две цифры.
  6. 64 больше 36, поэтому это не подходит в качестве результата в рулетке.
  7. Я перемещаю два символа в хеш-таблице, которые обозначены как cf.
  8. Я перевожу cf в десятичную дробь: c*16 + f = 12*16 + 15*1 = 207.
  9. Поскольку в числе 207 больше двух цифр, я беру две правильные, а именно 07.
  10. Поскольку 7 <= 36, это и становится исходом игры.
  11. Далее я проверяю, совпадает ли хеш начального значения сервера, который мне был предоставлен перед ставкой (начинающийся с e7043), с хешем начального значения сервера для последней ставки.По какой-то причине это казино использует для хеширования функцию SHA-256, в отличие от SHA-512, которая применяется для хеширования объединенной строки.
  12. В данном случае хеш sMDGT5P10m071HAdTQkoYCLJ8vLXnwzq6ugfloMT действительно равен e7043dd7fe369b94518449d61162a0c960f54781a16548af63194b7fd9d6891a, что гарантирует мне, что вклад казино в последнюю ставку был предопределен.

Если вам всё это кажется слишком сложным, я, к счастью, написал программу, которая сделает это за вас. Чтобы ею воспользоваться, выполните следующие шаги:

  1. Перейдите в PHP Sandbox .
  2. Введите начальные данные клиента в строке 4.
  3. Введите начальное значение сервера (Server Seed) в строке 5.
  4. Введите хеш следующего начального значения сервера в строке 6.
  5. Нажмите «Выполнить код».
  6. Проверьте результат игры и совпадет ли хеш начального значения сервера с тем, который был предоставлен до совершения ставки. Если нет, это будет означать, что вас обманули.

У меня также есть копия кода, которую вы можете посмотреть, нажав на кнопку ниже.

[спойлер]строка 1 php
// Конвертация игры в рулетку для Crypto.Games
// Введите начальное значение параметра Client Seed в строке 4 и начальное значение параметра Server Seed в строке 5.
$client_seed = "b0x6vb0v6TYUIQWF6b0sd6f0y";
$server_seed = "sMDGT5P10m071HAdTQkoYCLJ8vLXnwzq6ugfloMT";
$next_hash = "e7043dd7fe369b94518449d61162a0c960f54781a16548af63194b7fd9d6891a";
$color_array = array(0,1,2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1);
$position=0;
$combined_seed = $server_seed.$client_seed;
echo "Объединенное начальное значение = $combined_seed\n";
$combined_hash = hash('sha512', $combined_seed);
$server_hash = hash('sha256',$server_seed);
echo "Хэш объединенного начального значения = $combined_hash\n";
делать
{
    $first_two=substr($combined_hash,$position,2);
    $hex_to_dec=hexdec($first_two);
    $hex_to_dec%=100;
    если ($hex_to_dec-->36)
    {
        $position+=2;
    }
}
while ($hex_to_dec>36);
echo "Хэш начального значения сервера =\t $server_hash\n";
echo "Результат игры =\t$hex_to_dec ";
если ($color_array[$hex_to_dec]==0)
{ echo "Зеленый\n"; } 
elseif ($color_array[$hex_to_dec]==1)
{ echo "Красный\n"; } 
еще
{ echo "Черный\n"; } 
$server_seed_hash=hash('sha256', $server_seed);
если ($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. Установите позицию равной 0.
// 2. Объедините начальные значения сервера и клиента, а также начальное значение сервера, в указанном порядке. 
// 3. Сгенерируйте хеш SHA-512 строки из шага 2.
// 4. Преобразуйте первые два символа, начиная с "позиции" хеша из шага 3, из шестнадцатеричного формата в десятичный.
// 5. Если значение из шага 4 от 0 до 36, то это и будет исходом игры.
// 6. В противном случае, переместите позицию на 2 и перейдите к шагу 4. 
?>
[/спойлер]