[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-article-how-to-verify-provably-fair-ru":3,"mdc-a2vuxj-key":68},{"id":4,"slug":5,"status":6,"section":7,"category":8,"author":9,"publish_date":10,"read_time":11,"image":12,"embedded_components":13,"related_calculators":13,"related_articles":14,"title":15,"description":16,"keywords":17,"content":25,"faq":26,"availableLocales":63},"126a86aa-5865-46dd-996a-b37958ac4a51","how-to-verify-provably-fair","published","casino","guides","Evgeniy Volkov","2026-04-22",13,"\u002Fimages\u002Fblog\u002Fhow-to-verify-provably-fair.webp","[]",[],"Как проверить Provably Fair: пошаговый гайд (2026)","Как проверить Provably Fair в казино — 3-этапная инструкция с бесплатным верификатором, примеры для дайса, краша, блэкджека (2026)",[18,19,20,21,22,18,23,24],"как проверить provably fair","verify provably fair","проверка provably fair","sha-256 верификация","hmac-sha256 казино","провably fair верификатор","verify crypto casino round","# Как проверить Provably Fair: Пошаговое руководство (2026)\n\nВаш Aviator упал на 1.03x три раза подряд. Дилер вытащил 21 ниоткуда. Ваш бросок костей приземлился ровно на одно число выше цели — четвёртый раз за ночь. Казино приклеивает значок **\"provably fair\"** к каждому раунду — но как ты на самом деле *проверить* это утверждение?\n\nВот для чего это руководство. Не теория (для неё есть [праймер что-такое-provably-fair](\u002Fblog\u002Fwhat-is-provably-fair-gambling)). Механика. Нажми здесь, вставь это, запусти то, прочитай результат. За 60 секунд на раунд, работает на каждом крипто-казино в 2026, без кода вообще.\n\nТри раздела: самый **быстрый способ проверки** (встроенный инструмент казино), **ручная проверка в браузере** с нашей встроенной верификацией, и **проверки под конкретные игры**, потому что Dice, Crash и Blackjack требуют немного разных данных. Если раунд не пройдёт, мы точно скажем, что делать.\n\n## Кратко — Проверь любой раунд Provably Fair за 60 секунд\n\n| Шаг | Действие | Источник |\n|---|---|---|\n| 1 | Скопируй **хэш** серверного сида (перед ставкой) | Панель честности игры |\n| 2 | Сыграй раунд, запомни исход | Экран игры |\n| 3 | Нажми \"Rotate Seed\" → скопируй открытый **серверный сид** + твой **клиентский сид** + **nonce** | Панель честности |\n| 4 | Вставь в любой инструмент SHA-256 | Верификатор казино, наш [верификатор provably fair](\u002Fcasino\u002Fprovably-fair), или локальный скрипт |\n\nЕсли `SHA-256(открытый_сид) == хэш_до_игры` → сид не переключали. Потом запусти HMAC на `серверный_сид + клиентский_сид + nonce`, чтобы подтвердить число исхода. Всё, это весь процесс.\n\n### Что тебе нужно перед началом\n\n- Аккаунт на крипто-казино с Provably Fair (Stake, BC.Game, Roobet, Primedice, Rollbit, или на каком-то из [крипто-казино с поддержкой честности](\u002Fblog\u002Fprovably-fair-bitcoin-games))\n- Доступ к панели честности (обычно иконка щита рядом с суммой ставки)\n- Умение копировать-вставлять четыре строки — и всё\n\n### 4 вещи, которые выводит верификатор\n\nПосле проверки ты получишь: **совпадение хэша** (прошло\u002Fне прошло), **вычисленный SHA-256 результат** (должен совпадать с хэшем до игры), **восстановленный исход игры** (должен совпадать с тем, что видел), и **вердикт** (ВЕРИФИЦИРОВАНО ЧЕСТНО или ХЭШИ НЕ СОВПАДАЮТ). Любое несовпадение = попытка обмана.\n\n## Как работает процесс проверки в 2026\n\nProvably Fair — это двухфазная система. Казино **берёт обязательство** на секретное число перед ставкой (фаза 1), потом **раскрывает** его после (фаза 2). Твоя работа — проверить, что обе фазы совпадают.\n\n### Фаза обязательства (перед ставкой)\n\nКазино генерирует случайный `серверный_сид` — строку из 32–64 символов в шестнадцатеричной системе. Пропускает этот сид через SHA-256 и даёт тебе результат (хэш). Сам сид остаётся скрыт.\n\nПредставь как лотерея: официальный представитель запечатывает выигрышное число в конверт до розыгрыша. Ты не видишь число, но раз оно запечатано, они не смогут его поменять, не вызвав подозрения.\n\nХэш выглядит так:\n```\n9f8e7d6c5b4a3c2d1e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d\n```\n\nЭта 64-символьная строка — твой чек. Сохрани его.\n\n### Фаза раскрытия (после раунда)\n\nПосле того, как раунд закончится (или ты нажмёшь \"Rotate Seed\"), казино раскрывает оригинальный `серверный_сид`. Теперь ты можешь проверить две вещи:\n\n1. **Совпадение хэша.** Запусти SHA-256 на открытый сид. Результат должен совпадать с хэшем из фазы 1. Если совпадают — казино не переключало сид.\n2. **Совпадение исхода.** Объедини `серверный_сид + клиентский_сид + nonce`, захэшируй с HMAC-SHA256 или HMAC-SHA512, преобразуй результат в исход игры. Исход должен совпадать с тем, что ты видел на экране.\n\nОбе проверки пройдены = честный раунд. Одна проверка не прошла = красный флаг.\n\n### Почему SHA-256 невозможно подделать\n\nSHA-256 — это односторонняя функция. Одинаковый вход всегда даёт одинаковый выход. Но никто не может обратить выход, чтобы найти вход — ни казино, ни ты, ни суперкомпьютер. Чтобы найти другой сид, дающий тот же хэш (\"коллизия\"), потребуется больше энергии, чем Солнце излучит за всю оставшуюся жизнь.\n\nЭто значит, раз казино взяло обязательство на хэш, они привязаны к одному конкретному сиду. Не смогут придумать новый сид после раунда, чтобы создать другой исход. Математика это физически исключает.\n\nДля полного теоретического обоснования, почему SHA-256 невозможно взломать, смотри наш [глубокий разбор provably fair RNG](\u002Fblog\u002Fprovably-fair-rng-explained).\n## Метод 1 — Проверка с помощью встроенного инструмента казино\n\nВ каждом честном казино в 2026 году есть кнопка проверки. Это самый быстрый способ.\n\n### Где найти панель справедливости\n\nПанель обычно спрятана за иконкой щита или замка рядом с квитанцией ставки. На Stake она находится в меню настроек игры (шестерёнка). На BC.Game есть вкладка \"Fairness\". На Roobet нажмите на маленький значок \"PF\". На Primedice это постоянная панель справедливости внизу экрана.\n\nВнутри вы увидите шесть полей:\n\n| Поле | Пример значения |\n|---|---|\n| Server Seed (Hashed) | `9f8e7d6c...5e6f` |\n| Server Seed (Revealed) | `—` *(пусто до ротации)* |\n| Client Seed | `yourname2026` |\n| Next Client Seed | `mynewseed` |\n| Nonce | `47` |\n| Verify Round | *(кнопка)* |\n\n### За 60 секунд (пример на Stake)\n\nВот как это работает на Stake Crash. Те же шаги подходят для 95% честных казино.\n\n1. **Перед раундом:** откройте панель справедливости, скопируйте `Server Seed (Hashed)` в блокнот. Пример: `c2d8e5f1a4b7...9b6a9`.\n2. **Сделайте ставку.** Сыграйте раунд. Запомните точку краша — допустим, краш произошёл на `1.83x`.\n3. **Нажмите \"Rotate Seed\"** на панели. Это принуждает казино раскрыть исходный серверный сид. Скопируйте значение `Server Seed (Revealed)`. Пример: `a7f3e2d8c4b1...0921`.\n4. **Нажмите \"Verify Round\".** Инструмент казино вычислит SHA-256 раскрытого сида, сравнит его с исходным хешем и запустит HMAC, чтобы воспроизвести точку краша. Оба должны совпадать.\n\n### Как выглядит успешная и неудачная проверка\n\nУспешная проверка показывает оба хеша рядом с зелёным индикатором \"совпадение\", выводом HMAC и воспроизведённым результатом (1.83x в нашем примере):\n\n```\nServer Seed Hash (Pre-game):  c2d8e5f1a4b7...9b6a9\nSHA-256(Revealed Seed):        c2d8e5f1a4b7...9b6a9  ✓ СОВПАДЕНИЕ\nCombined HMAC-SHA256:          3a7b2f...c9 → 1.83x  ✓ СОВПАДЕНИЕ\nВывод: ПРОВЕРЕНО — ЧЕСТНО\n```\n\nНеудачная проверка показывает хеши красным цветом со словом \"НЕСОВПАДЕНИЕ\". Если вы когда-нибудь видите это на известном честном казино, сначала проверьте, нет ли ошибок копирования. Если несовпадение остаётся, рассматривайте это как свидетельство — сделайте скриншот и подайте жалобу. Детали в разделе [красные флаги](#what-to-do-if-your-verification-fails) ниже.\n\n## Метод 2 — Ручная проверка в браузере (наш верификатор ниже)\n\nВстроенный инструмент казино удобен, но он запускает *код казино*. Для истинной независимости проверяйте, используя инструмент, который вы контролируете.\n\n### Использование онлайн-проверки SHA-256\n\nСамый простой вариант вручную: любой генератор хеша SHA-256. Вставьте раскрытый серверный сид, инструмент выведет хеш, и вы визуально сравните его с хешем до игры.\n\nЭто только завершает шаг 1 (проверка обязательства). Для шага 2 (проверка результата) вам нужен инструмент, который также вычисляет HMAC-SHA256 или HMAC-SHA512 и преобразует результат в формат результата конкретной игры.\n\n### Наш универсальный верификатор — вставьте свои сиды\n\nМы создали встроенный в браузер верификатор, который справляется с обоими этапами. Всё работает в вашем браузере через Web Crypto API — ваши данные не покидают вашу машину, нет серверных вызовов, нет логирования:\n\n::inline-provably-fair-verifier\n::\n\nВыберите алгоритм, который использует ваше казино (Stake\u002FPrimedice: HMAC-SHA256; BC.Game\u002FRoobet: HMAC-SHA512). Вставьте четыре значения. Нажмите проверить. Если вам нужен верификатор для Aviator или Blackjack, который также воспроизводит результат в родном формате игры, используйте наш отдельный [калькулятор Provably Fair для Aviator](\u002Fblog\u002Fprovably-fair-aviator-calculator) или [проверку Blackjack](\u002Fblog\u002Fprovably-fair-blackjack).\n\n## Шаги проверки для конкретных игр\n\nПроверка обязательства (SHA-256 раскрытого сида) одинакова для каждой игры. Проверка результата зависит от игры — одни и те же выходные данные HMAC преобразуются в разные вещи в зависимости от того, играете ли вы в кости, краш или карты.\n\n::chart-verification-complexity\n::\n\n### Кости (самое простое — одно число от 0 до 99)\n\nКости — это самая прозрачная честная игра. Одно случайное число между 0.00 и 99.99, одна цель, один результат.\n\n**Алгоритм:**\n1. `HMAC-SHA256(server_seed, client_seed:nonce)` → 64-символьный шестнадцатеричный.\n2. Возьмите первые 10 шестнадцатеричных символов, преобразуйте в десятичное число.\n3. Модуль 10^6, разделите на 10^4. Результат — ваш бросок костей 0.00-99.99.\n\n**Пример:** server_seed `a7f3...`, client_seed `me2026`, nonce `12`. Выход HMAC `3a7b2fc9...`. Первые 10 шестнадцатеричных: `3a7b2fc9a1`. Десятичное число: 251073327521. Модуль 1 000 000: `327521`. ÷ 10 000 = `32.75`. Кости выпали 32.75.\n\nЕсли вы ставили \"больше 50\", вы проиграли. Если вы ставили \"меньше 50\", вы выиграли. Математика прозрачна и на 100% воспроизводима.\n\n### Краш и Aviator (минимум множителя)\n\nКраш генерирует множитель между 1.00x и теоретической бесконечностью, с вероятностью краша 1-3% на 1.00x (преимущество казино). Aviator использует тот же алгоритм с графикой самолёта.\n\n**Алгоритм (стандарт Stake\u002FSpribe):**\n1. `HMAC-SHA256(server_seed, client_seed:nonce)` → 64 шестнадцатеричных.\n2. Возьмите первые 8 шестнадцатеричных символов, преобразуйте в целое число. Назовите это `h`.\n3. Если `h % 33 == 0` (примерно 3% рулетов) → краш на `1.00x` (мгновенное поражение, зона преимущества казино).\n4. Иначе → точка краша = `floor((100 * (2^52) - h) \u002F (2^52 - h)) \u002F 100`.\n\nПолное разложение для Aviator с примерами находится в нашем [руководстве калькулятора Aviator](\u002Fblog\u002Fprovably-fair-aviator-calculator).\n\n### Блэкджек (перестановка колоды Fisher-Yates)\n\nБлэкджек сложнее, потому что вы тасуете полную колоду (52 или 312 карт для 6-колодочных шузов). Выход HMAC инициализирует тасование Fisher-Yates, и вы воспроизводите позиции карт из тасованной колоды.\n\n**Алгоритм:**\n1. `HMAC-SHA512(server_seed, client_seed:nonce)` → 128 шестнадцатеричных.\n2. Преобразуйте шестнадцатеричное в последовательность 4-байтовых целых чисел.\n3. Используйте Fisher-Yates с этими целыми числами для тасования колоды из 52 карт (индексы 0-51).\n4. Раздавайте карты по порядку: карта игрока 1, карта дилера 1, карта игрока 2, карта дилера 2 и т. д.\n\nНаше [руководство по Provably Fair блэкджеку](\u002Fblog\u002Fprovably-fair-blackjack) содержит полный код и живой чекер, который воспроизводит любую раздачу из четырёх входных значений. Вы можете встроить его здесь для раундов блэкджека:\n\n::inline-provably-fair-blackjack-checker\n::\n\n### Mines, Plinko, Limbo (массивы позиций)\n\nMines размещает N бомб на сетке 5x5 (25 позиций). Plinko бросает шар через 8-16 рядов колышков. Limbo генерирует один множитель, как краш.\n\nВсе три работают так же, как кости: выход HMAC → шестнадцатеричные фрагменты → преобразование в индексы позиций или один множитель. Mines использует первые 24 шестнадцатеричных пары для размещения бомб; Plinko использует каждый шестнадцатеричный символ как решение влево\u002Fвправо на каждом ряду; Limbo использует полный шестнадцатеричный как множитель в стиле краша.\n\nКод преобразования задокументирован на странице справедливости каждого казино. Если вы хотите проверить код самостоятельно, [клиентский сид против серверного сида](\u002Fblog\u002Fclient-seed-vs-server-seed) рассказывает о дизайне сидирования, используемом для всех трёх игр.\n## Математика: HMAC-SHA256 в одной формуле\n\nТы можешь использовать Provably Fair без этого раздела. Пропусти, если формулы вызывают у тебя аллергию.\n\n### Формула, которая определяет каждый исход\n\nВсе исходы в Provably Fair основаны на одном вызове HMAC:\n\n$$outcome = f(\\text{HMAC}_{SHA256}(server\\_seed, \\text{concat}(client\\_seed, nonce)))$$\n\nПростыми словами: возьми серверный сид в качестве ключа для HMAC. Возьми клиентский сид плюс nonce в качестве сообщения. На выходе HMAC получится 64 шестнадцатеричных символа (256 бит случайности). Функция `f()` зависит от конкретной игры — для дайса это модуль и деление, для краша это формула множителя, для блэкджека это тасование Fisher-Yates.\n\nHMAC гарантирует два свойства: **сервер не может знать сообщение** (потому что ты, игрок, контролируешь клиентский сид), и **игрок не может знать ключ** (потому что серверный сид скрыт до раскрытия). Ни одна сторона не может предсказать исход до взятия на себя обязательства.\n\n### Практический пример: раунд Stake Crash, апрель 2026\n\nДавай проверим один реальный раунд краша от начала до конца. Это реальные значения из раунда Stake Crash, сыгранного во время исследования этой статьи.\n\n| Поле | Значение |\n|---|---|\n| Серверный сид (в хэше) | `c2d8e5f1a4b732...9b6a9` |\n| Клиентский сид | `research2026april` |\n| Nonce | `1847` |\n| Серверный сид (раскрыт) | `a7f3e2d8c4b1f9a5e7...0921` |\n| Наблюдаемая точка краша | `1.83x` |\n\n**Шаг 1 — проверка обязательства:**\n\n```\nSHA-256(\"a7f3e2d8c4b1f9a5e7...0921\") \n  = c2d8e5f1a4b732...9b6a9  ✓\n```\n\nСовпадает с хэшем до игры. Обязательство подтверждено.\n\n**Шаг 2 — проверка исхода:**\n\n```\nHMAC-SHA256(\n  key = \"a7f3e2d8c4b1f9a5e7...0921\",\n  message = \"research2026april:1847\"\n) = 3a7b2fc9a1e5...c09d\n```\n\nВозьми первые 8 шестнадцатеричных символов `3a7b2fc9`, преобразуй в число `983203785`. Не делится на 33, поэтому точка краша равна:\n\n```\nfloor((100 * 2^52 - 983203785) \u002F (2^52 - 983203785)) \u002F 100 = 1.83x\n```\n\nСовпадает с наблюдаемой точкой краша. **Честность подтверждена.**\n\nВесь процесс занимает менее 60 секунд с нашей проверкой или около 2 минут вручную, если ты хочешь почувствовать математику.\n\nЕсли ещё выбираешь казино для тренировки, наш кураторский [список provably fair площадок](\u002Fcasino\u002Fprovably-fair) группирует их по методу верификации — где-то классический HMAC-SHA256, где-то EdDSA или on-chain VRF, так что сможешь выбрать под только что разобранный метод.\n\n## Что делать, если проверка не прошла\n\nЕсли проверка не прошла на заведомо честном казино, в 95% случаев это ошибка копирования. Проверь это перед паникой. Если проверка действительно не прошла, вот план действий.\n\n### Тревога 1 — несовпадение хэша\n\nХэш до игры и `SHA-256(revealed_seed)` не совпадают. Это значит, что либо сид был изменён между твоей ставкой и раскрытием, либо казино подало другой хэш, чем тот, который ты скопировал.\n\n#### Какие действия предпринять\n\n- Сделай скриншот хэша до игры, раскрытого сида и вывода SHA-256\n- Перепроверь, используя независимый инструмент (не казино) — наша [проверка выше](#method-2-manual-browser-verification-our-verifier-below) работает\n- Если всё ещё не совпадает, немедленно прекрати игру и выведи оставшийся баланс\n- Подай заявку в поддержку казино со ссылкой на конкретный nonce\n- Если ответа нет в течение 48 часов, подай жалобу в лицензирующий орган (Curacao eGaming, MGA и т. д.)\n- Опубликуй доказательства на r\u002Fonlinegambling — давление общества работает удивительно быстро\n\n### Тревога 2 — казино отказывается менять сид\n\nТы нажимаешь \"Rotate Seed\", но казино говорит \"требуется одобрение поддержки\" или кнопка отключена. Легитимные казино с Provably Fair позволяют менять серверный сид в любой момент без вопросов.\n\nБлокировка смены сида означает, что казино хочет продолжать использовать известный сид — что уничтожает весь смысл Provably Fair. Это подобранная поддельная честность. Прекрати игру и считай доверие платформе потерянным. Чтобы понять, почему доверие к платформе казино так же важно, как справедливость игры, см. наш гайд [Provably Fair vs RNG сертификация](\u002Fblog\u002Fprovably-fair-vs-rng-certified).\n\n### Тревога 3 — нестандартный алгоритм хэша\n\nКазино утверждает, что использует \"проприетарный хэш\" или \"вариант SHA-256\" вместо стандартного SHA-256. Нет никакой законной причины для этого. Каждое честное казино с Provably Fair использует SHA-256 или SHA-512 стандарта NIST. Пользовательские алгоритмы либо (a) уязвимы для неизвестных атак, либо (b) это намеренное оправдание, чтобы предотвратить независимую проверку.\n\n#### Чек-лист безопасного выхода\n\n- Не пополняй баланс новыми средствами\n- Выведи доступный баланс на собственный кошелёк\n- Сделай скриншоты панели честности и документации алгоритма\n- Проверь статус лицензии казино — если Curacao, подай жалобу в портал разрешения споров лицензирующего органа\n- Перед принятием бонусов от похожих операторов изучи наш [детектор бонус-абьюза](\u002Fcasino\u002Fbonus-abuse-detector)\n- Перейди на казино с проверенным алгоритмом из нашего [справочника Provably Fair](\u002Fcasino\u002Fprovably-fair)\n\nВывод: Provably Fair — это инструмент, который ты можешь использовать, чтобы поймать обман. Но казино, которые обманывают, часто специально реализуют его неправильно — это сигнал. Отказ сотрудничать с проверкой сам по себе является проверкой, которая была нужна.\n\n## Часто задаваемые вопросы",[27,30,33,36,39,42,45,48,51,54,57,60],{"answer":28,"question":29},"Возьми три вещи из панели честности казино: хэш серверного сида до игры, открытый серверный сид (после ротации), твой клиентский сид и nonce. Вставь открытый сид в любой инструмент SHA-256. Если результат совпадает с хэшем до игры в точности — казино не подменил сид во время раунда. Потом запусти HMAC на обоих сидах, чтобы подтвердить результат. Занимает меньше 60 секунд.","Как мне самому проверить игру с Provably Fair?",{"answer":31,"question":32},"Ищи три признака перед ставкой: видимый хэш серверного сида до раунда, редактируемый клиентский сид под твоим контролем и счётчик nonce, который увеличивается при каждой ставке. Если все три присутствуют и казино позволяет ротировать серверный сид по требованию — игра верифицируемо честная. Игры без всех трёх либо используют обычный RNG, либо поддельный значок Provably Fair.","Как проверить, честная ли игра?",{"answer":34,"question":35},"Provably Fair проверяет честность самого розыгрыша — не совпадение выплаты с заявленным хаусом. Чтобы проверить оба, верифицируй раунд криптографически, потом сравни заявленный RTP игры с реальной структурой выплат в нашем калькуляторе хауса. Игра Provably Fair с RTP 95% честная по исполнению; игра с RTP 70% может быть честной, но это плохая ставка.","Как узнать, честная ли вероятность?",{"answer":37,"question":38},"Одного кода нет — это комбинация SHA-256 и HMAC-SHA256 (или HMAC-SHA512), применённых к трём входам: серверный сид, клиентский сид, nonce. Справочные реализации с открытым кодом на GitHub под названиями вроде stake-provably-fair, bcgame-verifier и dicesites-pf-verify. Каждое легальное казино публикует или ссылается на точный алгоритм в доках честности.","Какой есть один код для Provably Fair?",{"answer":40,"question":41},"Четыре значения: хэш серверного сида (показан перед ставкой), открытый серверный сид (показан после ротации), клиентский сид (ты задаёшь) и nonce (текущий счётчик ставок). Некоторые игры также открывают вариант алгоритма HMAC — обычно HMAC-SHA256 или HMAC-SHA512. Все пять значений видны в панели честности игры.","Какая информация мне нужна, чтобы проверить раунд?",{"answer":43,"question":44},"Либо ты скопировал значение неправильно, либо казино изменило серверный сид после коммита. Перепроверь пробелы в конце и заглавные\u002Fстрочные буквы в строках сида. Если по-прежнему не совпадает при чистой копии — это серьёзный сигнал. Прекрати ставки, сделай скриншот панели честности и пожалуйся регулятору лицензии казино. Легальные казино отвечают в течение 24-48 часов с техническим объяснением.","Что если вычисленный хэш не совпадает?",{"answer":46,"question":47},"Да. В каждом крупном казино с Provably Fair есть кнопка верификации прямо в игре. Вне казино используй наш встроенный верификатор Provably Fair — вставь четыре значения и он запустит SHA-256 и HMAC локально в твоём браузере через Web Crypto API. Без кода, без установки, никакие данные не покидают твою машину.","Могу я проверить без запуска кода?",{"answer":49,"question":50},"Почти. SHA-256 универсален для хэша коммита. HMAC для исхода отличается — Stake и Primedice используют HMAC-SHA256, BC.Game и Roobet используют HMAC-SHA512, а несколько используют кастомные варианты вроде двойного хеширования. Доки честности казино всегда указывают, какой вариант используется, и наш верификатор поддерживает оба варианта SHA-256 и SHA-512 HMAC.","Все казино используют один и тот же алгоритм?",{"answer":52,"question":53},"SHA-512 производит больше символов хэша (128 хекс-символов против 64), давая больше энтропии для игр, которым нужно много случайных чисел за раунд — вроде Mines (24 позиции), Plinko (многорядный путь) или многоколодный блэкджек. Дайс и краш нуждаются в одном числе, поэтому SHA-256 достаточно. Ни один не безопаснее на практике; оба далеко за пределами любой текущей атаки перебора.","Почему некоторые казино используют HMAC-SHA256, а другие HMAC-SHA512?",{"answer":55,"question":56},"Теоретически да, двумя способами: смещённая генерация серверного сида (хэш реален, но базовый сид предварительно отобран из пула проигрышных исходов) или бэкенд, подающий разные пары сидов разным игрокам. Ни один из них не нарушает математику — это игра в то, как сид выбирается перед хешированием. Вот почему ротирование твоего клиентского сида каждые 100-200 ставок имеет значение.","Может ли казино всё ещё схитрить с проверкой Provably Fair?",{"answer":58,"question":59},"Нет, и никто так не делает. Выборочно проверяй 3-5 раз за сессию — после необычной серии проигрышей, после крупного выигрыша и когда впервые играешь на новом казино. Смысл Provably Fair не в ежедневной проверке, а в возможности проверить любой раунд по требованию, если что-то кажется странным. Эта опция — основной сдерживающий фактор.","Нужно ли мне проверять каждый раунд?",{"answer":61,"question":62},"SHA-256 один доказывает, что серверный сид не был изменён — это проверка коммита. Полная проверка также отображает объединённые сиды через HMAC, чтобы воспроизвести точный исход игры (множитель краша, бросок дайса, последовательность карт). SHA-256 — это первый шаг из двух. Пропуск шага HMAC означает, что ты знаешь сид аутентичен, но не можешь подтвердить, что исход был правильно вычислен из него.","В чём разница между SHA-256 и полной проверкой?",[64,65,66,67],"en","ru","de","tr",{"data":69,"body":70},{},{"type":71,"children":72},"root",[73,82,104,118,144,150,288,310,317,345,351,384,390,409,415,428,433,438,450,455,461,473,504,509,515,520,525,538,544,549,555,560,565,695,701,706,784,790,795,804,817,823,835,841,846,851,857,862,866,886,892,897,901,907,912,920,944,1010,1015,1021,1026,1034,1091,1102,1108,1113,1120,1149,1161,1165,1171,1176,1181,1194,1200,1205,1211,1216,1820,1833,1852,1858,1863,1967,1975,1984,1989,1997,2006,2027,2036,2046,2051,2063,2069,2074,2080,2093,2100,2141,2147,2152,2164,2170,2175,2181,2225,2230],{"type":74,"tag":75,"props":76,"children":78},"element","h2",{"id":77},"как-проверить-provably-fair-пошаговое-руководство-2026",[79],{"type":80,"value":81},"text","Как проверить Provably Fair: Пошаговое руководство (2026)",{"type":74,"tag":83,"props":84,"children":85},"p",{},[86,88,94,96,102],{"type":80,"value":87},"Ваш Aviator упал на 1.03x три раза подряд. Дилер вытащил 21 ниоткуда. Ваш бросок костей приземлился ровно на одно число выше цели — четвёртый раз за ночь. Казино приклеивает значок ",{"type":74,"tag":89,"props":90,"children":91},"strong",{},[92],{"type":80,"value":93},"\"provably fair\"",{"type":80,"value":95}," к каждому раунду — но как ты на самом деле ",{"type":74,"tag":97,"props":98,"children":99},"em",{},[100],{"type":80,"value":101},"проверить",{"type":80,"value":103}," это утверждение?",{"type":74,"tag":83,"props":105,"children":106},{},[107,109,116],{"type":80,"value":108},"Вот для чего это руководство. Не теория (для неё есть ",{"type":74,"tag":110,"props":111,"children":113},"a",{"href":112},"\u002Fblog\u002Fwhat-is-provably-fair-gambling",[114],{"type":80,"value":115},"праймер что-такое-provably-fair",{"type":80,"value":117},"). Механика. Нажми здесь, вставь это, запусти то, прочитай результат. За 60 секунд на раунд, работает на каждом крипто-казино в 2026, без кода вообще.",{"type":74,"tag":83,"props":119,"children":120},{},[121,123,128,130,135,137,142],{"type":80,"value":122},"Три раздела: самый ",{"type":74,"tag":89,"props":124,"children":125},{},[126],{"type":80,"value":127},"быстрый способ проверки",{"type":80,"value":129}," (встроенный инструмент казино), ",{"type":74,"tag":89,"props":131,"children":132},{},[133],{"type":80,"value":134},"ручная проверка в браузере",{"type":80,"value":136}," с нашей встроенной верификацией, и ",{"type":74,"tag":89,"props":138,"children":139},{},[140],{"type":80,"value":141},"проверки под конкретные игры",{"type":80,"value":143},", потому что Dice, Crash и Blackjack требуют немного разных данных. Если раунд не пройдёт, мы точно скажем, что делать.",{"type":74,"tag":75,"props":145,"children":147},{"id":146},"кратко-проверь-любой-раунд-provably-fair-за-60-секунд",[148],{"type":80,"value":149},"Кратко — Проверь любой раунд Provably Fair за 60 секунд",{"type":74,"tag":151,"props":152,"children":153},"table",{},[154,177],{"type":74,"tag":155,"props":156,"children":157},"thead",{},[158],{"type":74,"tag":67,"props":159,"children":160},{},[161,167,172],{"type":74,"tag":162,"props":163,"children":164},"th",{},[165],{"type":80,"value":166},"Шаг",{"type":74,"tag":162,"props":168,"children":169},{},[170],{"type":80,"value":171},"Действие",{"type":74,"tag":162,"props":173,"children":174},{},[175],{"type":80,"value":176},"Источник",{"type":74,"tag":178,"props":179,"children":180},"tbody",{},[181,207,225,262],{"type":74,"tag":67,"props":182,"children":183},{},[184,190,202],{"type":74,"tag":185,"props":186,"children":187},"td",{},[188],{"type":80,"value":189},"1",{"type":74,"tag":185,"props":191,"children":192},{},[193,195,200],{"type":80,"value":194},"Скопируй ",{"type":74,"tag":89,"props":196,"children":197},{},[198],{"type":80,"value":199},"хэш",{"type":80,"value":201}," серверного сида (перед ставкой)",{"type":74,"tag":185,"props":203,"children":204},{},[205],{"type":80,"value":206},"Панель честности игры",{"type":74,"tag":67,"props":208,"children":209},{},[210,215,220],{"type":74,"tag":185,"props":211,"children":212},{},[213],{"type":80,"value":214},"2",{"type":74,"tag":185,"props":216,"children":217},{},[218],{"type":80,"value":219},"Сыграй раунд, запомни исход",{"type":74,"tag":185,"props":221,"children":222},{},[223],{"type":80,"value":224},"Экран игры",{"type":74,"tag":67,"props":226,"children":227},{},[228,233,257],{"type":74,"tag":185,"props":229,"children":230},{},[231],{"type":80,"value":232},"3",{"type":74,"tag":185,"props":234,"children":235},{},[236,238,243,245,250,252],{"type":80,"value":237},"Нажми \"Rotate Seed\" → скопируй открытый ",{"type":74,"tag":89,"props":239,"children":240},{},[241],{"type":80,"value":242},"серверный сид",{"type":80,"value":244}," + твой ",{"type":74,"tag":89,"props":246,"children":247},{},[248],{"type":80,"value":249},"клиентский сид",{"type":80,"value":251}," + ",{"type":74,"tag":89,"props":253,"children":254},{},[255],{"type":80,"value":256},"nonce",{"type":74,"tag":185,"props":258,"children":259},{},[260],{"type":80,"value":261},"Панель честности",{"type":74,"tag":67,"props":263,"children":264},{},[265,270,275],{"type":74,"tag":185,"props":266,"children":267},{},[268],{"type":80,"value":269},"4",{"type":74,"tag":185,"props":271,"children":272},{},[273],{"type":80,"value":274},"Вставь в любой инструмент SHA-256",{"type":74,"tag":185,"props":276,"children":277},{},[278,280,286],{"type":80,"value":279},"Верификатор казино, наш ",{"type":74,"tag":110,"props":281,"children":283},{"href":282},"\u002Fcasino\u002Fprovably-fair",[284],{"type":80,"value":285},"верификатор provably fair",{"type":80,"value":287},", или локальный скрипт",{"type":74,"tag":83,"props":289,"children":290},{},[291,293,300,302,308],{"type":80,"value":292},"Если ",{"type":74,"tag":294,"props":295,"children":297},"code",{"className":296},[],[298],{"type":80,"value":299},"SHA-256(открытый_сид) == хэш_до_игры",{"type":80,"value":301}," → сид не переключали. Потом запусти HMAC на ",{"type":74,"tag":294,"props":303,"children":305},{"className":304},[],[306],{"type":80,"value":307},"серверный_сид + клиентский_сид + nonce",{"type":80,"value":309},", чтобы подтвердить число исхода. Всё, это весь процесс.",{"type":74,"tag":311,"props":312,"children":314},"h3",{"id":313},"что-тебе-нужно-перед-началом",[315],{"type":80,"value":316},"Что тебе нужно перед началом",{"type":74,"tag":318,"props":319,"children":320},"ul",{},[321,335,340],{"type":74,"tag":322,"props":323,"children":324},"li",{},[325,327,333],{"type":80,"value":326},"Аккаунт на крипто-казино с Provably Fair (Stake, BC.Game, Roobet, Primedice, Rollbit, или на каком-то из ",{"type":74,"tag":110,"props":328,"children":330},{"href":329},"\u002Fblog\u002Fprovably-fair-bitcoin-games",[331],{"type":80,"value":332},"крипто-казино с поддержкой честности",{"type":80,"value":334},")",{"type":74,"tag":322,"props":336,"children":337},{},[338],{"type":80,"value":339},"Доступ к панели честности (обычно иконка щита рядом с суммой ставки)",{"type":74,"tag":322,"props":341,"children":342},{},[343],{"type":80,"value":344},"Умение копировать-вставлять четыре строки — и всё",{"type":74,"tag":311,"props":346,"children":348},{"id":347},"_4-вещи-которые-выводит-верификатор",[349],{"type":80,"value":350},"4 вещи, которые выводит верификатор",{"type":74,"tag":83,"props":352,"children":353},{},[354,356,361,363,368,370,375,377,382],{"type":80,"value":355},"После проверки ты получишь: ",{"type":74,"tag":89,"props":357,"children":358},{},[359],{"type":80,"value":360},"совпадение хэша",{"type":80,"value":362}," (прошло\u002Fне прошло), ",{"type":74,"tag":89,"props":364,"children":365},{},[366],{"type":80,"value":367},"вычисленный SHA-256 результат",{"type":80,"value":369}," (должен совпадать с хэшем до игры), ",{"type":74,"tag":89,"props":371,"children":372},{},[373],{"type":80,"value":374},"восстановленный исход игры",{"type":80,"value":376}," (должен совпадать с тем, что видел), и ",{"type":74,"tag":89,"props":378,"children":379},{},[380],{"type":80,"value":381},"вердикт",{"type":80,"value":383}," (ВЕРИФИЦИРОВАНО ЧЕСТНО или ХЭШИ НЕ СОВПАДАЮТ). Любое несовпадение = попытка обмана.",{"type":74,"tag":75,"props":385,"children":387},{"id":386},"как-работает-процесс-проверки-в-2026",[388],{"type":80,"value":389},"Как работает процесс проверки в 2026",{"type":74,"tag":83,"props":391,"children":392},{},[393,395,400,402,407],{"type":80,"value":394},"Provably Fair — это двухфазная система. Казино ",{"type":74,"tag":89,"props":396,"children":397},{},[398],{"type":80,"value":399},"берёт обязательство",{"type":80,"value":401}," на секретное число перед ставкой (фаза 1), потом ",{"type":74,"tag":89,"props":403,"children":404},{},[405],{"type":80,"value":406},"раскрывает",{"type":80,"value":408}," его после (фаза 2). Твоя работа — проверить, что обе фазы совпадают.",{"type":74,"tag":311,"props":410,"children":412},{"id":411},"фаза-обязательства-перед-ставкой",[413],{"type":80,"value":414},"Фаза обязательства (перед ставкой)",{"type":74,"tag":83,"props":416,"children":417},{},[418,420,426],{"type":80,"value":419},"Казино генерирует случайный ",{"type":74,"tag":294,"props":421,"children":423},{"className":422},[],[424],{"type":80,"value":425},"серверный_сид",{"type":80,"value":427}," — строку из 32–64 символов в шестнадцатеричной системе. Пропускает этот сид через SHA-256 и даёт тебе результат (хэш). Сам сид остаётся скрыт.",{"type":74,"tag":83,"props":429,"children":430},{},[431],{"type":80,"value":432},"Представь как лотерея: официальный представитель запечатывает выигрышное число в конверт до розыгрыша. Ты не видишь число, но раз оно запечатано, они не смогут его поменять, не вызвав подозрения.",{"type":74,"tag":83,"props":434,"children":435},{},[436],{"type":80,"value":437},"Хэш выглядит так:",{"type":74,"tag":439,"props":440,"children":444},"pre",{"className":441,"code":443,"language":80},[442],"language-text","9f8e7d6c5b4a3c2d1e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d\n",[445],{"type":74,"tag":294,"props":446,"children":448},{"__ignoreMap":447},"",[449],{"type":80,"value":443},{"type":74,"tag":83,"props":451,"children":452},{},[453],{"type":80,"value":454},"Эта 64-символьная строка — твой чек. Сохрани его.",{"type":74,"tag":311,"props":456,"children":458},{"id":457},"фаза-раскрытия-после-раунда",[459],{"type":80,"value":460},"Фаза раскрытия (после раунда)",{"type":74,"tag":83,"props":462,"children":463},{},[464,466,471],{"type":80,"value":465},"После того, как раунд закончится (или ты нажмёшь \"Rotate Seed\"), казино раскрывает оригинальный ",{"type":74,"tag":294,"props":467,"children":469},{"className":468},[],[470],{"type":80,"value":425},{"type":80,"value":472},". Теперь ты можешь проверить две вещи:",{"type":74,"tag":474,"props":475,"children":476},"ol",{},[477,487],{"type":74,"tag":322,"props":478,"children":479},{},[480,485],{"type":74,"tag":89,"props":481,"children":482},{},[483],{"type":80,"value":484},"Совпадение хэша.",{"type":80,"value":486}," Запусти SHA-256 на открытый сид. Результат должен совпадать с хэшем из фазы 1. Если совпадают — казино не переключало сид.",{"type":74,"tag":322,"props":488,"children":489},{},[490,495,497,502],{"type":74,"tag":89,"props":491,"children":492},{},[493],{"type":80,"value":494},"Совпадение исхода.",{"type":80,"value":496}," Объедини ",{"type":74,"tag":294,"props":498,"children":500},{"className":499},[],[501],{"type":80,"value":307},{"type":80,"value":503},", захэшируй с HMAC-SHA256 или HMAC-SHA512, преобразуй результат в исход игры. Исход должен совпадать с тем, что ты видел на экране.",{"type":74,"tag":83,"props":505,"children":506},{},[507],{"type":80,"value":508},"Обе проверки пройдены = честный раунд. Одна проверка не прошла = красный флаг.",{"type":74,"tag":311,"props":510,"children":512},{"id":511},"почему-sha-256-невозможно-подделать",[513],{"type":80,"value":514},"Почему SHA-256 невозможно подделать",{"type":74,"tag":83,"props":516,"children":517},{},[518],{"type":80,"value":519},"SHA-256 — это односторонняя функция. Одинаковый вход всегда даёт одинаковый выход. Но никто не может обратить выход, чтобы найти вход — ни казино, ни ты, ни суперкомпьютер. Чтобы найти другой сид, дающий тот же хэш (\"коллизия\"), потребуется больше энергии, чем Солнце излучит за всю оставшуюся жизнь.",{"type":74,"tag":83,"props":521,"children":522},{},[523],{"type":80,"value":524},"Это значит, раз казино взяло обязательство на хэш, они привязаны к одному конкретному сиду. Не смогут придумать новый сид после раунда, чтобы создать другой исход. Математика это физически исключает.",{"type":74,"tag":83,"props":526,"children":527},{},[528,530,536],{"type":80,"value":529},"Для полного теоретического обоснования, почему SHA-256 невозможно взломать, смотри наш ",{"type":74,"tag":110,"props":531,"children":533},{"href":532},"\u002Fblog\u002Fprovably-fair-rng-explained",[534],{"type":80,"value":535},"глубокий разбор provably fair RNG",{"type":80,"value":537},".",{"type":74,"tag":75,"props":539,"children":541},{"id":540},"метод-1-проверка-с-помощью-встроенного-инструмента-казино",[542],{"type":80,"value":543},"Метод 1 — Проверка с помощью встроенного инструмента казино",{"type":74,"tag":83,"props":545,"children":546},{},[547],{"type":80,"value":548},"В каждом честном казино в 2026 году есть кнопка проверки. Это самый быстрый способ.",{"type":74,"tag":311,"props":550,"children":552},{"id":551},"где-найти-панель-справедливости",[553],{"type":80,"value":554},"Где найти панель справедливости",{"type":74,"tag":83,"props":556,"children":557},{},[558],{"type":80,"value":559},"Панель обычно спрятана за иконкой щита или замка рядом с квитанцией ставки. На Stake она находится в меню настроек игры (шестерёнка). На BC.Game есть вкладка \"Fairness\". На Roobet нажмите на маленький значок \"PF\". На Primedice это постоянная панель справедливости внизу экрана.",{"type":74,"tag":83,"props":561,"children":562},{},[563],{"type":80,"value":564},"Внутри вы увидите шесть полей:",{"type":74,"tag":151,"props":566,"children":567},{},[568,584],{"type":74,"tag":155,"props":569,"children":570},{},[571],{"type":74,"tag":67,"props":572,"children":573},{},[574,579],{"type":74,"tag":162,"props":575,"children":576},{},[577],{"type":80,"value":578},"Поле",{"type":74,"tag":162,"props":580,"children":581},{},[582],{"type":80,"value":583},"Пример значения",{"type":74,"tag":178,"props":585,"children":586},{},[587,604,628,645,662,679],{"type":74,"tag":67,"props":588,"children":589},{},[590,595],{"type":74,"tag":185,"props":591,"children":592},{},[593],{"type":80,"value":594},"Server Seed (Hashed)",{"type":74,"tag":185,"props":596,"children":597},{},[598],{"type":74,"tag":294,"props":599,"children":601},{"className":600},[],[602],{"type":80,"value":603},"9f8e7d6c...5e6f",{"type":74,"tag":67,"props":605,"children":606},{},[607,612],{"type":74,"tag":185,"props":608,"children":609},{},[610],{"type":80,"value":611},"Server Seed (Revealed)",{"type":74,"tag":185,"props":613,"children":614},{},[615,621,623],{"type":74,"tag":294,"props":616,"children":618},{"className":617},[],[619],{"type":80,"value":620},"—",{"type":80,"value":622}," ",{"type":74,"tag":97,"props":624,"children":625},{},[626],{"type":80,"value":627},"(пусто до ротации)",{"type":74,"tag":67,"props":629,"children":630},{},[631,636],{"type":74,"tag":185,"props":632,"children":633},{},[634],{"type":80,"value":635},"Client Seed",{"type":74,"tag":185,"props":637,"children":638},{},[639],{"type":74,"tag":294,"props":640,"children":642},{"className":641},[],[643],{"type":80,"value":644},"yourname2026",{"type":74,"tag":67,"props":646,"children":647},{},[648,653],{"type":74,"tag":185,"props":649,"children":650},{},[651],{"type":80,"value":652},"Next Client Seed",{"type":74,"tag":185,"props":654,"children":655},{},[656],{"type":74,"tag":294,"props":657,"children":659},{"className":658},[],[660],{"type":80,"value":661},"mynewseed",{"type":74,"tag":67,"props":663,"children":664},{},[665,670],{"type":74,"tag":185,"props":666,"children":667},{},[668],{"type":80,"value":669},"Nonce",{"type":74,"tag":185,"props":671,"children":672},{},[673],{"type":74,"tag":294,"props":674,"children":676},{"className":675},[],[677],{"type":80,"value":678},"47",{"type":74,"tag":67,"props":680,"children":681},{},[682,687],{"type":74,"tag":185,"props":683,"children":684},{},[685],{"type":80,"value":686},"Verify Round",{"type":74,"tag":185,"props":688,"children":689},{},[690],{"type":74,"tag":97,"props":691,"children":692},{},[693],{"type":80,"value":694},"(кнопка)",{"type":74,"tag":311,"props":696,"children":698},{"id":697},"за-60-секунд-пример-на-stake",[699],{"type":80,"value":700},"За 60 секунд (пример на Stake)",{"type":74,"tag":83,"props":702,"children":703},{},[704],{"type":80,"value":705},"Вот как это работает на Stake Crash. Те же шаги подходят для 95% честных казино.",{"type":74,"tag":474,"props":707,"children":708},{},[709,733,750,774],{"type":74,"tag":322,"props":710,"children":711},{},[712,717,719,724,726,732],{"type":74,"tag":89,"props":713,"children":714},{},[715],{"type":80,"value":716},"Перед раундом:",{"type":80,"value":718}," откройте панель справедливости, скопируйте ",{"type":74,"tag":294,"props":720,"children":722},{"className":721},[],[723],{"type":80,"value":594},{"type":80,"value":725}," в блокнот. Пример: ",{"type":74,"tag":294,"props":727,"children":729},{"className":728},[],[730],{"type":80,"value":731},"c2d8e5f1a4b7...9b6a9",{"type":80,"value":537},{"type":74,"tag":322,"props":734,"children":735},{},[736,741,743,749],{"type":74,"tag":89,"props":737,"children":738},{},[739],{"type":80,"value":740},"Сделайте ставку.",{"type":80,"value":742}," Сыграйте раунд. Запомните точку краша — допустим, краш произошёл на ",{"type":74,"tag":294,"props":744,"children":746},{"className":745},[],[747],{"type":80,"value":748},"1.83x",{"type":80,"value":537},{"type":74,"tag":322,"props":751,"children":752},{},[753,758,760,765,767,773],{"type":74,"tag":89,"props":754,"children":755},{},[756],{"type":80,"value":757},"Нажмите \"Rotate Seed\"",{"type":80,"value":759}," на панели. Это принуждает казино раскрыть исходный серверный сид. Скопируйте значение ",{"type":74,"tag":294,"props":761,"children":763},{"className":762},[],[764],{"type":80,"value":611},{"type":80,"value":766},". Пример: ",{"type":74,"tag":294,"props":768,"children":770},{"className":769},[],[771],{"type":80,"value":772},"a7f3e2d8c4b1...0921",{"type":80,"value":537},{"type":74,"tag":322,"props":775,"children":776},{},[777,782],{"type":74,"tag":89,"props":778,"children":779},{},[780],{"type":80,"value":781},"Нажмите \"Verify Round\".",{"type":80,"value":783}," Инструмент казино вычислит SHA-256 раскрытого сида, сравнит его с исходным хешем и запустит HMAC, чтобы воспроизвести точку краша. Оба должны совпадать.",{"type":74,"tag":311,"props":785,"children":787},{"id":786},"как-выглядит-успешная-и-неудачная-проверка",[788],{"type":80,"value":789},"Как выглядит успешная и неудачная проверка",{"type":74,"tag":83,"props":791,"children":792},{},[793],{"type":80,"value":794},"Успешная проверка показывает оба хеша рядом с зелёным индикатором \"совпадение\", выводом HMAC и воспроизведённым результатом (1.83x в нашем примере):",{"type":74,"tag":439,"props":796,"children":799},{"className":797,"code":798,"language":80},[442],"Server Seed Hash (Pre-game):  c2d8e5f1a4b7...9b6a9\nSHA-256(Revealed Seed):        c2d8e5f1a4b7...9b6a9  ✓ СОВПАДЕНИЕ\nCombined HMAC-SHA256:          3a7b2f...c9 → 1.83x  ✓ СОВПАДЕНИЕ\nВывод: ПРОВЕРЕНО — ЧЕСТНО\n",[800],{"type":74,"tag":294,"props":801,"children":802},{"__ignoreMap":447},[803],{"type":80,"value":798},{"type":74,"tag":83,"props":805,"children":806},{},[807,809,815],{"type":80,"value":808},"Неудачная проверка показывает хеши красным цветом со словом \"НЕСОВПАДЕНИЕ\". Если вы когда-нибудь видите это на известном честном казино, сначала проверьте, нет ли ошибок копирования. Если несовпадение остаётся, рассматривайте это как свидетельство — сделайте скриншот и подайте жалобу. Детали в разделе ",{"type":74,"tag":110,"props":810,"children":812},{"href":811},"#what-to-do-if-your-verification-fails",[813],{"type":80,"value":814},"красные флаги",{"type":80,"value":816}," ниже.",{"type":74,"tag":75,"props":818,"children":820},{"id":819},"метод-2-ручная-проверка-в-браузере-наш-верификатор-ниже",[821],{"type":80,"value":822},"Метод 2 — Ручная проверка в браузере (наш верификатор ниже)",{"type":74,"tag":83,"props":824,"children":825},{},[826,828,833],{"type":80,"value":827},"Встроенный инструмент казино удобен, но он запускает ",{"type":74,"tag":97,"props":829,"children":830},{},[831],{"type":80,"value":832},"код казино",{"type":80,"value":834},". Для истинной независимости проверяйте, используя инструмент, который вы контролируете.",{"type":74,"tag":311,"props":836,"children":838},{"id":837},"использование-онлайн-проверки-sha-256",[839],{"type":80,"value":840},"Использование онлайн-проверки SHA-256",{"type":74,"tag":83,"props":842,"children":843},{},[844],{"type":80,"value":845},"Самый простой вариант вручную: любой генератор хеша SHA-256. Вставьте раскрытый серверный сид, инструмент выведет хеш, и вы визуально сравните его с хешем до игры.",{"type":74,"tag":83,"props":847,"children":848},{},[849],{"type":80,"value":850},"Это только завершает шаг 1 (проверка обязательства). Для шага 2 (проверка результата) вам нужен инструмент, который также вычисляет HMAC-SHA256 или HMAC-SHA512 и преобразует результат в формат результата конкретной игры.",{"type":74,"tag":311,"props":852,"children":854},{"id":853},"наш-универсальный-верификатор-вставьте-свои-сиды",[855],{"type":80,"value":856},"Наш универсальный верификатор — вставьте свои сиды",{"type":74,"tag":83,"props":858,"children":859},{},[860],{"type":80,"value":861},"Мы создали встроенный в браузер верификатор, который справляется с обоими этапами. Всё работает в вашем браузере через Web Crypto API — ваши данные не покидают вашу машину, нет серверных вызовов, нет логирования:",{"type":74,"tag":863,"props":864,"children":865},"inline-provably-fair-verifier",{},[],{"type":74,"tag":83,"props":867,"children":868},{},[869,871,877,879,885],{"type":80,"value":870},"Выберите алгоритм, который использует ваше казино (Stake\u002FPrimedice: HMAC-SHA256; BC.Game\u002FRoobet: HMAC-SHA512). Вставьте четыре значения. Нажмите проверить. Если вам нужен верификатор для Aviator или Blackjack, который также воспроизводит результат в родном формате игры, используйте наш отдельный ",{"type":74,"tag":110,"props":872,"children":874},{"href":873},"\u002Fblog\u002Fprovably-fair-aviator-calculator",[875],{"type":80,"value":876},"калькулятор Provably Fair для Aviator",{"type":80,"value":878}," или ",{"type":74,"tag":110,"props":880,"children":882},{"href":881},"\u002Fblog\u002Fprovably-fair-blackjack",[883],{"type":80,"value":884},"проверку Blackjack",{"type":80,"value":537},{"type":74,"tag":75,"props":887,"children":889},{"id":888},"шаги-проверки-для-конкретных-игр",[890],{"type":80,"value":891},"Шаги проверки для конкретных игр",{"type":74,"tag":83,"props":893,"children":894},{},[895],{"type":80,"value":896},"Проверка обязательства (SHA-256 раскрытого сида) одинакова для каждой игры. Проверка результата зависит от игры — одни и те же выходные данные HMAC преобразуются в разные вещи в зависимости от того, играете ли вы в кости, краш или карты.",{"type":74,"tag":898,"props":899,"children":900},"chart-verification-complexity",{},[],{"type":74,"tag":311,"props":902,"children":904},{"id":903},"кости-самое-простое-одно-число-от-0-до-99",[905],{"type":80,"value":906},"Кости (самое простое — одно число от 0 до 99)",{"type":74,"tag":83,"props":908,"children":909},{},[910],{"type":80,"value":911},"Кости — это самая прозрачная честная игра. Одно случайное число между 0.00 и 99.99, одна цель, один результат.",{"type":74,"tag":83,"props":913,"children":914},{},[915],{"type":74,"tag":89,"props":916,"children":917},{},[918],{"type":80,"value":919},"Алгоритм:",{"type":74,"tag":474,"props":921,"children":922},{},[923,934,939],{"type":74,"tag":322,"props":924,"children":925},{},[926,932],{"type":74,"tag":294,"props":927,"children":929},{"className":928},[],[930],{"type":80,"value":931},"HMAC-SHA256(server_seed, client_seed:nonce)",{"type":80,"value":933}," → 64-символьный шестнадцатеричный.",{"type":74,"tag":322,"props":935,"children":936},{},[937],{"type":80,"value":938},"Возьмите первые 10 шестнадцатеричных символов, преобразуйте в десятичное число.",{"type":74,"tag":322,"props":940,"children":941},{},[942],{"type":80,"value":943},"Модуль 10^6, разделите на 10^4. Результат — ваш бросок костей 0.00-99.99.",{"type":74,"tag":83,"props":945,"children":946},{},[947,952,954,960,962,968,970,976,978,984,986,992,994,1000,1002,1008],{"type":74,"tag":89,"props":948,"children":949},{},[950],{"type":80,"value":951},"Пример:",{"type":80,"value":953}," server_seed ",{"type":74,"tag":294,"props":955,"children":957},{"className":956},[],[958],{"type":80,"value":959},"a7f3...",{"type":80,"value":961},", client_seed ",{"type":74,"tag":294,"props":963,"children":965},{"className":964},[],[966],{"type":80,"value":967},"me2026",{"type":80,"value":969},", nonce ",{"type":74,"tag":294,"props":971,"children":973},{"className":972},[],[974],{"type":80,"value":975},"12",{"type":80,"value":977},". Выход HMAC ",{"type":74,"tag":294,"props":979,"children":981},{"className":980},[],[982],{"type":80,"value":983},"3a7b2fc9...",{"type":80,"value":985},". Первые 10 шестнадцатеричных: ",{"type":74,"tag":294,"props":987,"children":989},{"className":988},[],[990],{"type":80,"value":991},"3a7b2fc9a1",{"type":80,"value":993},". Десятичное число: 251073327521. Модуль 1 000 000: ",{"type":74,"tag":294,"props":995,"children":997},{"className":996},[],[998],{"type":80,"value":999},"327521",{"type":80,"value":1001},". ÷ 10 000 = ",{"type":74,"tag":294,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":80,"value":1007},"32.75",{"type":80,"value":1009},". Кости выпали 32.75.",{"type":74,"tag":83,"props":1011,"children":1012},{},[1013],{"type":80,"value":1014},"Если вы ставили \"больше 50\", вы проиграли. Если вы ставили \"меньше 50\", вы выиграли. Математика прозрачна и на 100% воспроизводима.",{"type":74,"tag":311,"props":1016,"children":1018},{"id":1017},"краш-и-aviator-минимум-множителя",[1019],{"type":80,"value":1020},"Краш и Aviator (минимум множителя)",{"type":74,"tag":83,"props":1022,"children":1023},{},[1024],{"type":80,"value":1025},"Краш генерирует множитель между 1.00x и теоретической бесконечностью, с вероятностью краша 1-3% на 1.00x (преимущество казино). Aviator использует тот же алгоритм с графикой самолёта.",{"type":74,"tag":83,"props":1027,"children":1028},{},[1029],{"type":74,"tag":89,"props":1030,"children":1031},{},[1032],{"type":80,"value":1033},"Алгоритм (стандарт Stake\u002FSpribe):",{"type":74,"tag":474,"props":1035,"children":1036},{},[1037,1047,1059,1079],{"type":74,"tag":322,"props":1038,"children":1039},{},[1040,1045],{"type":74,"tag":294,"props":1041,"children":1043},{"className":1042},[],[1044],{"type":80,"value":931},{"type":80,"value":1046}," → 64 шестнадцатеричных.",{"type":74,"tag":322,"props":1048,"children":1049},{},[1050,1052,1058],{"type":80,"value":1051},"Возьмите первые 8 шестнадцатеричных символов, преобразуйте в целое число. Назовите это ",{"type":74,"tag":294,"props":1053,"children":1055},{"className":1054},[],[1056],{"type":80,"value":1057},"h",{"type":80,"value":537},{"type":74,"tag":322,"props":1060,"children":1061},{},[1062,1063,1069,1071,1077],{"type":80,"value":292},{"type":74,"tag":294,"props":1064,"children":1066},{"className":1065},[],[1067],{"type":80,"value":1068},"h % 33 == 0",{"type":80,"value":1070}," (примерно 3% рулетов) → краш на ",{"type":74,"tag":294,"props":1072,"children":1074},{"className":1073},[],[1075],{"type":80,"value":1076},"1.00x",{"type":80,"value":1078}," (мгновенное поражение, зона преимущества казино).",{"type":74,"tag":322,"props":1080,"children":1081},{},[1082,1084,1090],{"type":80,"value":1083},"Иначе → точка краша = ",{"type":74,"tag":294,"props":1085,"children":1087},{"className":1086},[],[1088],{"type":80,"value":1089},"floor((100 * (2^52) - h) \u002F (2^52 - h)) \u002F 100",{"type":80,"value":537},{"type":74,"tag":83,"props":1092,"children":1093},{},[1094,1096,1101],{"type":80,"value":1095},"Полное разложение для Aviator с примерами находится в нашем ",{"type":74,"tag":110,"props":1097,"children":1098},{"href":873},[1099],{"type":80,"value":1100},"руководстве калькулятора Aviator",{"type":80,"value":537},{"type":74,"tag":311,"props":1103,"children":1105},{"id":1104},"блэкджек-перестановка-колоды-fisher-yates",[1106],{"type":80,"value":1107},"Блэкджек (перестановка колоды Fisher-Yates)",{"type":74,"tag":83,"props":1109,"children":1110},{},[1111],{"type":80,"value":1112},"Блэкджек сложнее, потому что вы тасуете полную колоду (52 или 312 карт для 6-колодочных шузов). Выход HMAC инициализирует тасование Fisher-Yates, и вы воспроизводите позиции карт из тасованной колоды.",{"type":74,"tag":83,"props":1114,"children":1115},{},[1116],{"type":74,"tag":89,"props":1117,"children":1118},{},[1119],{"type":80,"value":919},{"type":74,"tag":474,"props":1121,"children":1122},{},[1123,1134,1139,1144],{"type":74,"tag":322,"props":1124,"children":1125},{},[1126,1132],{"type":74,"tag":294,"props":1127,"children":1129},{"className":1128},[],[1130],{"type":80,"value":1131},"HMAC-SHA512(server_seed, client_seed:nonce)",{"type":80,"value":1133}," → 128 шестнадцатеричных.",{"type":74,"tag":322,"props":1135,"children":1136},{},[1137],{"type":80,"value":1138},"Преобразуйте шестнадцатеричное в последовательность 4-байтовых целых чисел.",{"type":74,"tag":322,"props":1140,"children":1141},{},[1142],{"type":80,"value":1143},"Используйте Fisher-Yates с этими целыми числами для тасования колоды из 52 карт (индексы 0-51).",{"type":74,"tag":322,"props":1145,"children":1146},{},[1147],{"type":80,"value":1148},"Раздавайте карты по порядку: карта игрока 1, карта дилера 1, карта игрока 2, карта дилера 2 и т. д.",{"type":74,"tag":83,"props":1150,"children":1151},{},[1152,1154,1159],{"type":80,"value":1153},"Наше ",{"type":74,"tag":110,"props":1155,"children":1156},{"href":881},[1157],{"type":80,"value":1158},"руководство по Provably Fair блэкджеку",{"type":80,"value":1160}," содержит полный код и живой чекер, который воспроизводит любую раздачу из четырёх входных значений. Вы можете встроить его здесь для раундов блэкджека:",{"type":74,"tag":1162,"props":1163,"children":1164},"inline-provably-fair-blackjack-checker",{},[],{"type":74,"tag":311,"props":1166,"children":1168},{"id":1167},"mines-plinko-limbo-массивы-позиций",[1169],{"type":80,"value":1170},"Mines, Plinko, Limbo (массивы позиций)",{"type":74,"tag":83,"props":1172,"children":1173},{},[1174],{"type":80,"value":1175},"Mines размещает N бомб на сетке 5x5 (25 позиций). Plinko бросает шар через 8-16 рядов колышков. Limbo генерирует один множитель, как краш.",{"type":74,"tag":83,"props":1177,"children":1178},{},[1179],{"type":80,"value":1180},"Все три работают так же, как кости: выход HMAC → шестнадцатеричные фрагменты → преобразование в индексы позиций или один множитель. Mines использует первые 24 шестнадцатеричных пары для размещения бомб; Plinko использует каждый шестнадцатеричный символ как решение влево\u002Fвправо на каждом ряду; Limbo использует полный шестнадцатеричный как множитель в стиле краша.",{"type":74,"tag":83,"props":1182,"children":1183},{},[1184,1186,1192],{"type":80,"value":1185},"Код преобразования задокументирован на странице справедливости каждого казино. Если вы хотите проверить код самостоятельно, ",{"type":74,"tag":110,"props":1187,"children":1189},{"href":1188},"\u002Fblog\u002Fclient-seed-vs-server-seed",[1190],{"type":80,"value":1191},"клиентский сид против серверного сида",{"type":80,"value":1193}," рассказывает о дизайне сидирования, используемом для всех трёх игр.",{"type":74,"tag":75,"props":1195,"children":1197},{"id":1196},"математика-hmac-sha256-в-одной-формуле",[1198],{"type":80,"value":1199},"Математика: HMAC-SHA256 в одной формуле",{"type":74,"tag":83,"props":1201,"children":1202},{},[1203],{"type":80,"value":1204},"Ты можешь использовать Provably Fair без этого раздела. Пропусти, если формулы вызывают у тебя аллергию.",{"type":74,"tag":311,"props":1206,"children":1208},{"id":1207},"формула-которая-определяет-каждый-исход",[1209],{"type":80,"value":1210},"Формула, которая определяет каждый исход",{"type":74,"tag":83,"props":1212,"children":1213},{},[1214],{"type":80,"value":1215},"Все исходы в Provably Fair основаны на одном вызове HMAC:",{"type":74,"tag":83,"props":1217,"children":1218},{},[1219],{"type":74,"tag":1220,"props":1221,"children":1224},"span",{"className":1222},[1223],"katex",[1225,1488],{"type":74,"tag":1220,"props":1226,"children":1229},{"className":1227},[1228],"katex-mathml",[1230],{"type":74,"tag":1231,"props":1232,"children":1234},"math",{"xmlns":1233},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[1235],{"type":74,"tag":1236,"props":1237,"children":1238},"semantics",{},[1239,1481],{"type":74,"tag":1240,"props":1241,"children":1242},"mrow",{},[1243,1249,1254,1259,1264,1268,1273,1278,1284,1289,1295,1329,1333,1338,1342,1347,1352,1356,1360,1366,1370,1374,1378,1383,1389,1394,1398,1402,1407,1412,1416,1421,1425,1429,1433,1437,1441,1445,1449,1453,1457,1461,1465,1469,1473,1477],{"type":74,"tag":1244,"props":1245,"children":1246},"mi",{},[1247],{"type":80,"value":1248},"o",{"type":74,"tag":1244,"props":1250,"children":1251},{},[1252],{"type":80,"value":1253},"u",{"type":74,"tag":1244,"props":1255,"children":1256},{},[1257],{"type":80,"value":1258},"t",{"type":74,"tag":1244,"props":1260,"children":1261},{},[1262],{"type":80,"value":1263},"c",{"type":74,"tag":1244,"props":1265,"children":1266},{},[1267],{"type":80,"value":1248},{"type":74,"tag":1244,"props":1269,"children":1270},{},[1271],{"type":80,"value":1272},"m",{"type":74,"tag":1244,"props":1274,"children":1275},{},[1276],{"type":80,"value":1277},"e",{"type":74,"tag":1279,"props":1280,"children":1281},"mo",{},[1282],{"type":80,"value":1283},"=",{"type":74,"tag":1244,"props":1285,"children":1286},{},[1287],{"type":80,"value":1288},"f",{"type":74,"tag":1279,"props":1290,"children":1292},{"stretchy":1291},"false",[1293],{"type":80,"value":1294},"(",{"type":74,"tag":1296,"props":1297,"children":1298},"msub",{},[1299,1305],{"type":74,"tag":1300,"props":1301,"children":1302},"mtext",{},[1303],{"type":80,"value":1304},"HMAC",{"type":74,"tag":1240,"props":1306,"children":1307},{},[1308,1313,1318,1323],{"type":74,"tag":1244,"props":1309,"children":1310},{},[1311],{"type":80,"value":1312},"S",{"type":74,"tag":1244,"props":1314,"children":1315},{},[1316],{"type":80,"value":1317},"H",{"type":74,"tag":1244,"props":1319,"children":1320},{},[1321],{"type":80,"value":1322},"A",{"type":74,"tag":1324,"props":1325,"children":1326},"mn",{},[1327],{"type":80,"value":1328},"256",{"type":74,"tag":1279,"props":1330,"children":1331},{"stretchy":1291},[1332],{"type":80,"value":1294},{"type":74,"tag":1244,"props":1334,"children":1335},{},[1336],{"type":80,"value":1337},"s",{"type":74,"tag":1244,"props":1339,"children":1340},{},[1341],{"type":80,"value":1277},{"type":74,"tag":1244,"props":1343,"children":1344},{},[1345],{"type":80,"value":1346},"r",{"type":74,"tag":1244,"props":1348,"children":1349},{},[1350],{"type":80,"value":1351},"v",{"type":74,"tag":1244,"props":1353,"children":1354},{},[1355],{"type":80,"value":1277},{"type":74,"tag":1244,"props":1357,"children":1358},{},[1359],{"type":80,"value":1346},{"type":74,"tag":1244,"props":1361,"children":1363},{"mathvariant":1362},"normal",[1364],{"type":80,"value":1365},"_",{"type":74,"tag":1244,"props":1367,"children":1368},{},[1369],{"type":80,"value":1337},{"type":74,"tag":1244,"props":1371,"children":1372},{},[1373],{"type":80,"value":1277},{"type":74,"tag":1244,"props":1375,"children":1376},{},[1377],{"type":80,"value":1277},{"type":74,"tag":1244,"props":1379,"children":1380},{},[1381],{"type":80,"value":1382},"d",{"type":74,"tag":1279,"props":1384,"children":1386},{"separator":1385},"true",[1387],{"type":80,"value":1388},",",{"type":74,"tag":1300,"props":1390,"children":1391},{},[1392],{"type":80,"value":1393},"concat",{"type":74,"tag":1279,"props":1395,"children":1396},{"stretchy":1291},[1397],{"type":80,"value":1294},{"type":74,"tag":1244,"props":1399,"children":1400},{},[1401],{"type":80,"value":1263},{"type":74,"tag":1244,"props":1403,"children":1404},{},[1405],{"type":80,"value":1406},"l",{"type":74,"tag":1244,"props":1408,"children":1409},{},[1410],{"type":80,"value":1411},"i",{"type":74,"tag":1244,"props":1413,"children":1414},{},[1415],{"type":80,"value":1277},{"type":74,"tag":1244,"props":1417,"children":1418},{},[1419],{"type":80,"value":1420},"n",{"type":74,"tag":1244,"props":1422,"children":1423},{},[1424],{"type":80,"value":1258},{"type":74,"tag":1244,"props":1426,"children":1427},{"mathvariant":1362},[1428],{"type":80,"value":1365},{"type":74,"tag":1244,"props":1430,"children":1431},{},[1432],{"type":80,"value":1337},{"type":74,"tag":1244,"props":1434,"children":1435},{},[1436],{"type":80,"value":1277},{"type":74,"tag":1244,"props":1438,"children":1439},{},[1440],{"type":80,"value":1277},{"type":74,"tag":1244,"props":1442,"children":1443},{},[1444],{"type":80,"value":1382},{"type":74,"tag":1279,"props":1446,"children":1447},{"separator":1385},[1448],{"type":80,"value":1388},{"type":74,"tag":1244,"props":1450,"children":1451},{},[1452],{"type":80,"value":1420},{"type":74,"tag":1244,"props":1454,"children":1455},{},[1456],{"type":80,"value":1248},{"type":74,"tag":1244,"props":1458,"children":1459},{},[1460],{"type":80,"value":1420},{"type":74,"tag":1244,"props":1462,"children":1463},{},[1464],{"type":80,"value":1263},{"type":74,"tag":1244,"props":1466,"children":1467},{},[1468],{"type":80,"value":1277},{"type":74,"tag":1279,"props":1470,"children":1471},{"stretchy":1291},[1472],{"type":80,"value":334},{"type":74,"tag":1279,"props":1474,"children":1475},{"stretchy":1291},[1476],{"type":80,"value":334},{"type":74,"tag":1279,"props":1478,"children":1479},{"stretchy":1291},[1480],{"type":80,"value":334},{"type":74,"tag":1482,"props":1483,"children":1485},"annotation",{"encoding":1484},"application\u002Fx-tex",[1486],{"type":80,"value":1487},"outcome = f(\\text{HMAC}_{SHA256}(server\\_seed, \\text{concat}(client\\_seed, nonce)))",{"type":74,"tag":1220,"props":1489,"children":1492},{"className":1490,"ariaHidden":1385},[1491],"katex-html",[1493,1553],{"type":74,"tag":1220,"props":1494,"children":1497},{"className":1495},[1496],"base",[1498,1504,1511,1516,1521,1527,1532,1537,1543,1549],{"type":74,"tag":1220,"props":1499,"children":1503},{"className":1500,"style":1502},[1501],"strut","height:0.6151em;",[],{"type":74,"tag":1220,"props":1505,"children":1509},{"className":1506},[1507,1508],"mord","mathnormal",[1510],{"type":80,"value":1248},{"type":74,"tag":1220,"props":1512,"children":1514},{"className":1513},[1507,1508],[1515],{"type":80,"value":1253},{"type":74,"tag":1220,"props":1517,"children":1519},{"className":1518},[1507,1508],[1520],{"type":80,"value":1258},{"type":74,"tag":1220,"props":1522,"children":1524},{"className":1523},[1507,1508],[1525],{"type":80,"value":1526},"co",{"type":74,"tag":1220,"props":1528,"children":1530},{"className":1529},[1507,1508],[1531],{"type":80,"value":1272},{"type":74,"tag":1220,"props":1533,"children":1535},{"className":1534},[1507,1508],[1536],{"type":80,"value":1277},{"type":74,"tag":1220,"props":1538,"children":1542},{"className":1539,"style":1541},[1540],"mspace","margin-right:0.2778em;",[],{"type":74,"tag":1220,"props":1544,"children":1547},{"className":1545},[1546],"mrel",[1548],{"type":80,"value":1283},{"type":74,"tag":1220,"props":1550,"children":1552},{"className":1551,"style":1541},[1540],[],{"type":74,"tag":1220,"props":1554,"children":1556},{"className":1555},[1496],[1557,1562,1568,1574,1672,1677,1684,1690,1696,1701,1707,1712,1718,1723,1732,1737,1742,1748,1753,1758,1763,1768,1773,1778,1783,1788,1792,1797,1802,1807,1813],{"type":74,"tag":1220,"props":1558,"children":1561},{"className":1559,"style":1560},[1501],"height:1.06em;vertical-align:-0.31em;",[],{"type":74,"tag":1220,"props":1563,"children":1566},{"className":1564,"style":1565},[1507,1508],"margin-right:0.1076em;",[1567],{"type":80,"value":1288},{"type":74,"tag":1220,"props":1569,"children":1572},{"className":1570},[1571],"mopen",[1573],{"type":80,"value":1294},{"type":74,"tag":1220,"props":1575,"children":1577},{"className":1576},[1507],[1578,1587],{"type":74,"tag":1220,"props":1579,"children":1581},{"className":1580},[1507,80],[1582],{"type":74,"tag":1220,"props":1583,"children":1585},{"className":1584},[1507],[1586],{"type":80,"value":1304},{"type":74,"tag":1220,"props":1588,"children":1591},{"className":1589},[1590],"msupsub",[1592],{"type":74,"tag":1220,"props":1593,"children":1597},{"className":1594},[1595,1596],"vlist-t","vlist-t2",[1598,1660],{"type":74,"tag":1220,"props":1599,"children":1602},{"className":1600},[1601],"vlist-r",[1603,1653],{"type":74,"tag":1220,"props":1604,"children":1608},{"className":1605,"style":1607},[1606],"vlist","height:0.3283em;",[1609],{"type":74,"tag":1220,"props":1610,"children":1612},{"style":1611},"top:-2.55em;margin-right:0.05em;",[1613,1619],{"type":74,"tag":1220,"props":1614,"children":1618},{"className":1615,"style":1617},[1616],"pstrut","height:2.7em;",[],{"type":74,"tag":1220,"props":1620,"children":1626},{"className":1621},[1622,1623,1624,1625],"sizing","reset-size6","size3","mtight",[1627],{"type":74,"tag":1220,"props":1628,"children":1630},{"className":1629},[1507,1625],[1631,1637,1643,1648],{"type":74,"tag":1220,"props":1632,"children":1635},{"className":1633,"style":1634},[1507,1508,1625],"margin-right:0.0576em;",[1636],{"type":80,"value":1312},{"type":74,"tag":1220,"props":1638,"children":1641},{"className":1639,"style":1640},[1507,1508,1625],"margin-right:0.0813em;",[1642],{"type":80,"value":1317},{"type":74,"tag":1220,"props":1644,"children":1646},{"className":1645},[1507,1508,1625],[1647],{"type":80,"value":1322},{"type":74,"tag":1220,"props":1649,"children":1651},{"className":1650},[1507,1625],[1652],{"type":80,"value":1328},{"type":74,"tag":1220,"props":1654,"children":1657},{"className":1655},[1656],"vlist-s",[1658],{"type":80,"value":1659},"​",{"type":74,"tag":1220,"props":1661,"children":1663},{"className":1662},[1601],[1664],{"type":74,"tag":1220,"props":1665,"children":1668},{"className":1666,"style":1667},[1606],"height:0.15em;",[1669],{"type":74,"tag":1220,"props":1670,"children":1671},{},[],{"type":74,"tag":1220,"props":1673,"children":1675},{"className":1674},[1571],[1676],{"type":80,"value":1294},{"type":74,"tag":1220,"props":1678,"children":1681},{"className":1679,"style":1680},[1507,1508],"margin-right:0.0278em;",[1682],{"type":80,"value":1683},"ser",{"type":74,"tag":1220,"props":1685,"children":1688},{"className":1686,"style":1687},[1507,1508],"margin-right:0.0359em;",[1689],{"type":80,"value":1351},{"type":74,"tag":1220,"props":1691,"children":1693},{"className":1692,"style":1680},[1507,1508],[1694],{"type":80,"value":1695},"er",{"type":74,"tag":1220,"props":1697,"children":1699},{"className":1698,"style":1680},[1507],[1700],{"type":80,"value":1365},{"type":74,"tag":1220,"props":1702,"children":1704},{"className":1703},[1507,1508],[1705],{"type":80,"value":1706},"see",{"type":74,"tag":1220,"props":1708,"children":1710},{"className":1709},[1507,1508],[1711],{"type":80,"value":1382},{"type":74,"tag":1220,"props":1713,"children":1716},{"className":1714},[1715],"mpunct",[1717],{"type":80,"value":1388},{"type":74,"tag":1220,"props":1719,"children":1722},{"className":1720,"style":1721},[1540],"margin-right:0.1667em;",[],{"type":74,"tag":1220,"props":1724,"children":1726},{"className":1725},[1507,80],[1727],{"type":74,"tag":1220,"props":1728,"children":1730},{"className":1729},[1507],[1731],{"type":80,"value":1393},{"type":74,"tag":1220,"props":1733,"children":1735},{"className":1734},[1571],[1736],{"type":80,"value":1294},{"type":74,"tag":1220,"props":1738,"children":1740},{"className":1739},[1507,1508],[1741],{"type":80,"value":1263},{"type":74,"tag":1220,"props":1743,"children":1746},{"className":1744,"style":1745},[1507,1508],"margin-right:0.0197em;",[1747],{"type":80,"value":1406},{"type":74,"tag":1220,"props":1749,"children":1751},{"className":1750},[1507,1508],[1752],{"type":80,"value":1411},{"type":74,"tag":1220,"props":1754,"children":1756},{"className":1755},[1507,1508],[1757],{"type":80,"value":1277},{"type":74,"tag":1220,"props":1759,"children":1761},{"className":1760},[1507,1508],[1762],{"type":80,"value":1420},{"type":74,"tag":1220,"props":1764,"children":1766},{"className":1765},[1507,1508],[1767],{"type":80,"value":1258},{"type":74,"tag":1220,"props":1769,"children":1771},{"className":1770,"style":1680},[1507],[1772],{"type":80,"value":1365},{"type":74,"tag":1220,"props":1774,"children":1776},{"className":1775},[1507,1508],[1777],{"type":80,"value":1706},{"type":74,"tag":1220,"props":1779,"children":1781},{"className":1780},[1507,1508],[1782],{"type":80,"value":1382},{"type":74,"tag":1220,"props":1784,"children":1786},{"className":1785},[1715],[1787],{"type":80,"value":1388},{"type":74,"tag":1220,"props":1789,"children":1791},{"className":1790,"style":1721},[1540],[],{"type":74,"tag":1220,"props":1793,"children":1795},{"className":1794},[1507,1508],[1796],{"type":80,"value":1420},{"type":74,"tag":1220,"props":1798,"children":1800},{"className":1799},[1507,1508],[1801],{"type":80,"value":1248},{"type":74,"tag":1220,"props":1803,"children":1805},{"className":1804},[1507,1508],[1806],{"type":80,"value":1420},{"type":74,"tag":1220,"props":1808,"children":1810},{"className":1809},[1507,1508],[1811],{"type":80,"value":1812},"ce",{"type":74,"tag":1220,"props":1814,"children":1817},{"className":1815},[1816],"mclose",[1818],{"type":80,"value":1819},")))",{"type":74,"tag":83,"props":1821,"children":1822},{},[1823,1825,1831],{"type":80,"value":1824},"Простыми словами: возьми серверный сид в качестве ключа для HMAC. Возьми клиентский сид плюс nonce в качестве сообщения. На выходе HMAC получится 64 шестнадцатеричных символа (256 бит случайности). Функция ",{"type":74,"tag":294,"props":1826,"children":1828},{"className":1827},[],[1829],{"type":80,"value":1830},"f()",{"type":80,"value":1832}," зависит от конкретной игры — для дайса это модуль и деление, для краша это формула множителя, для блэкджека это тасование Fisher-Yates.",{"type":74,"tag":83,"props":1834,"children":1835},{},[1836,1838,1843,1845,1850],{"type":80,"value":1837},"HMAC гарантирует два свойства: ",{"type":74,"tag":89,"props":1839,"children":1840},{},[1841],{"type":80,"value":1842},"сервер не может знать сообщение",{"type":80,"value":1844}," (потому что ты, игрок, контролируешь клиентский сид), и ",{"type":74,"tag":89,"props":1846,"children":1847},{},[1848],{"type":80,"value":1849},"игрок не может знать ключ",{"type":80,"value":1851}," (потому что серверный сид скрыт до раскрытия). Ни одна сторона не может предсказать исход до взятия на себя обязательства.",{"type":74,"tag":311,"props":1853,"children":1855},{"id":1854},"практический-пример-раунд-stake-crash-апрель-2026",[1856],{"type":80,"value":1857},"Практический пример: раунд Stake Crash, апрель 2026",{"type":74,"tag":83,"props":1859,"children":1860},{},[1861],{"type":80,"value":1862},"Давай проверим один реальный раунд краша от начала до конца. Это реальные значения из раунда Stake Crash, сыгранного во время исследования этой статьи.",{"type":74,"tag":151,"props":1864,"children":1865},{},[1866,1881],{"type":74,"tag":155,"props":1867,"children":1868},{},[1869],{"type":74,"tag":67,"props":1870,"children":1871},{},[1872,1876],{"type":74,"tag":162,"props":1873,"children":1874},{},[1875],{"type":80,"value":578},{"type":74,"tag":162,"props":1877,"children":1878},{},[1879],{"type":80,"value":1880},"Значение",{"type":74,"tag":178,"props":1882,"children":1883},{},[1884,1901,1918,1934,1951],{"type":74,"tag":67,"props":1885,"children":1886},{},[1887,1892],{"type":74,"tag":185,"props":1888,"children":1889},{},[1890],{"type":80,"value":1891},"Серверный сид (в хэше)",{"type":74,"tag":185,"props":1893,"children":1894},{},[1895],{"type":74,"tag":294,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":80,"value":1900},"c2d8e5f1a4b732...9b6a9",{"type":74,"tag":67,"props":1902,"children":1903},{},[1904,1909],{"type":74,"tag":185,"props":1905,"children":1906},{},[1907],{"type":80,"value":1908},"Клиентский сид",{"type":74,"tag":185,"props":1910,"children":1911},{},[1912],{"type":74,"tag":294,"props":1913,"children":1915},{"className":1914},[],[1916],{"type":80,"value":1917},"research2026april",{"type":74,"tag":67,"props":1919,"children":1920},{},[1921,1925],{"type":74,"tag":185,"props":1922,"children":1923},{},[1924],{"type":80,"value":669},{"type":74,"tag":185,"props":1926,"children":1927},{},[1928],{"type":74,"tag":294,"props":1929,"children":1931},{"className":1930},[],[1932],{"type":80,"value":1933},"1847",{"type":74,"tag":67,"props":1935,"children":1936},{},[1937,1942],{"type":74,"tag":185,"props":1938,"children":1939},{},[1940],{"type":80,"value":1941},"Серверный сид (раскрыт)",{"type":74,"tag":185,"props":1943,"children":1944},{},[1945],{"type":74,"tag":294,"props":1946,"children":1948},{"className":1947},[],[1949],{"type":80,"value":1950},"a7f3e2d8c4b1f9a5e7...0921",{"type":74,"tag":67,"props":1952,"children":1953},{},[1954,1959],{"type":74,"tag":185,"props":1955,"children":1956},{},[1957],{"type":80,"value":1958},"Наблюдаемая точка краша",{"type":74,"tag":185,"props":1960,"children":1961},{},[1962],{"type":74,"tag":294,"props":1963,"children":1965},{"className":1964},[],[1966],{"type":80,"value":748},{"type":74,"tag":83,"props":1968,"children":1969},{},[1970],{"type":74,"tag":89,"props":1971,"children":1972},{},[1973],{"type":80,"value":1974},"Шаг 1 — проверка обязательства:",{"type":74,"tag":439,"props":1976,"children":1979},{"className":1977,"code":1978,"language":80},[442],"SHA-256(\"a7f3e2d8c4b1f9a5e7...0921\") \n  = c2d8e5f1a4b732...9b6a9  ✓\n",[1980],{"type":74,"tag":294,"props":1981,"children":1982},{"__ignoreMap":447},[1983],{"type":80,"value":1978},{"type":74,"tag":83,"props":1985,"children":1986},{},[1987],{"type":80,"value":1988},"Совпадает с хэшем до игры. Обязательство подтверждено.",{"type":74,"tag":83,"props":1990,"children":1991},{},[1992],{"type":74,"tag":89,"props":1993,"children":1994},{},[1995],{"type":80,"value":1996},"Шаг 2 — проверка исхода:",{"type":74,"tag":439,"props":1998,"children":2001},{"className":1999,"code":2000,"language":80},[442],"HMAC-SHA256(\n  key = \"a7f3e2d8c4b1f9a5e7...0921\",\n  message = \"research2026april:1847\"\n) = 3a7b2fc9a1e5...c09d\n",[2002],{"type":74,"tag":294,"props":2003,"children":2004},{"__ignoreMap":447},[2005],{"type":80,"value":2000},{"type":74,"tag":83,"props":2007,"children":2008},{},[2009,2011,2017,2019,2025],{"type":80,"value":2010},"Возьми первые 8 шестнадцатеричных символов ",{"type":74,"tag":294,"props":2012,"children":2014},{"className":2013},[],[2015],{"type":80,"value":2016},"3a7b2fc9",{"type":80,"value":2018},", преобразуй в число ",{"type":74,"tag":294,"props":2020,"children":2022},{"className":2021},[],[2023],{"type":80,"value":2024},"983203785",{"type":80,"value":2026},". Не делится на 33, поэтому точка краша равна:",{"type":74,"tag":439,"props":2028,"children":2031},{"className":2029,"code":2030,"language":80},[442],"floor((100 * 2^52 - 983203785) \u002F (2^52 - 983203785)) \u002F 100 = 1.83x\n",[2032],{"type":74,"tag":294,"props":2033,"children":2034},{"__ignoreMap":447},[2035],{"type":80,"value":2030},{"type":74,"tag":83,"props":2037,"children":2038},{},[2039,2041],{"type":80,"value":2040},"Совпадает с наблюдаемой точкой краша. ",{"type":74,"tag":89,"props":2042,"children":2043},{},[2044],{"type":80,"value":2045},"Честность подтверждена.",{"type":74,"tag":83,"props":2047,"children":2048},{},[2049],{"type":80,"value":2050},"Весь процесс занимает менее 60 секунд с нашей проверкой или около 2 минут вручную, если ты хочешь почувствовать математику.",{"type":74,"tag":83,"props":2052,"children":2053},{},[2054,2056,2061],{"type":80,"value":2055},"Если ещё выбираешь казино для тренировки, наш кураторский ",{"type":74,"tag":110,"props":2057,"children":2058},{"href":282},[2059],{"type":80,"value":2060},"список provably fair площадок",{"type":80,"value":2062}," группирует их по методу верификации — где-то классический HMAC-SHA256, где-то EdDSA или on-chain VRF, так что сможешь выбрать под только что разобранный метод.",{"type":74,"tag":75,"props":2064,"children":2066},{"id":2065},"что-делать-если-проверка-не-прошла",[2067],{"type":80,"value":2068},"Что делать, если проверка не прошла",{"type":74,"tag":83,"props":2070,"children":2071},{},[2072],{"type":80,"value":2073},"Если проверка не прошла на заведомо честном казино, в 95% случаев это ошибка копирования. Проверь это перед паникой. Если проверка действительно не прошла, вот план действий.",{"type":74,"tag":311,"props":2075,"children":2077},{"id":2076},"тревога-1-несовпадение-хэша",[2078],{"type":80,"value":2079},"Тревога 1 — несовпадение хэша",{"type":74,"tag":83,"props":2081,"children":2082},{},[2083,2085,2091],{"type":80,"value":2084},"Хэш до игры и ",{"type":74,"tag":294,"props":2086,"children":2088},{"className":2087},[],[2089],{"type":80,"value":2090},"SHA-256(revealed_seed)",{"type":80,"value":2092}," не совпадают. Это значит, что либо сид был изменён между твоей ставкой и раскрытием, либо казино подало другой хэш, чем тот, который ты скопировал.",{"type":74,"tag":2094,"props":2095,"children":2097},"h4",{"id":2096},"какие-действия-предпринять",[2098],{"type":80,"value":2099},"Какие действия предпринять",{"type":74,"tag":318,"props":2101,"children":2102},{},[2103,2108,2121,2126,2131,2136],{"type":74,"tag":322,"props":2104,"children":2105},{},[2106],{"type":80,"value":2107},"Сделай скриншот хэша до игры, раскрытого сида и вывода SHA-256",{"type":74,"tag":322,"props":2109,"children":2110},{},[2111,2113,2119],{"type":80,"value":2112},"Перепроверь, используя независимый инструмент (не казино) — наша ",{"type":74,"tag":110,"props":2114,"children":2116},{"href":2115},"#method-2-manual-browser-verification-our-verifier-below",[2117],{"type":80,"value":2118},"проверка выше",{"type":80,"value":2120}," работает",{"type":74,"tag":322,"props":2122,"children":2123},{},[2124],{"type":80,"value":2125},"Если всё ещё не совпадает, немедленно прекрати игру и выведи оставшийся баланс",{"type":74,"tag":322,"props":2127,"children":2128},{},[2129],{"type":80,"value":2130},"Подай заявку в поддержку казино со ссылкой на конкретный nonce",{"type":74,"tag":322,"props":2132,"children":2133},{},[2134],{"type":80,"value":2135},"Если ответа нет в течение 48 часов, подай жалобу в лицензирующий орган (Curacao eGaming, MGA и т. д.)",{"type":74,"tag":322,"props":2137,"children":2138},{},[2139],{"type":80,"value":2140},"Опубликуй доказательства на r\u002Fonlinegambling — давление общества работает удивительно быстро",{"type":74,"tag":311,"props":2142,"children":2144},{"id":2143},"тревога-2-казино-отказывается-менять-сид",[2145],{"type":80,"value":2146},"Тревога 2 — казино отказывается менять сид",{"type":74,"tag":83,"props":2148,"children":2149},{},[2150],{"type":80,"value":2151},"Ты нажимаешь \"Rotate Seed\", но казино говорит \"требуется одобрение поддержки\" или кнопка отключена. Легитимные казино с Provably Fair позволяют менять серверный сид в любой момент без вопросов.",{"type":74,"tag":83,"props":2153,"children":2154},{},[2155,2157,2163],{"type":80,"value":2156},"Блокировка смены сида означает, что казино хочет продолжать использовать известный сид — что уничтожает весь смысл Provably Fair. Это подобранная поддельная честность. Прекрати игру и считай доверие платформе потерянным. Чтобы понять, почему доверие к платформе казино так же важно, как справедливость игры, см. наш гайд ",{"type":74,"tag":110,"props":2158,"children":2160},{"href":2159},"\u002Fblog\u002Fprovably-fair-vs-rng-certified",[2161],{"type":80,"value":2162},"Provably Fair vs RNG сертификация",{"type":80,"value":537},{"type":74,"tag":311,"props":2165,"children":2167},{"id":2166},"тревога-3-нестандартный-алгоритм-хэша",[2168],{"type":80,"value":2169},"Тревога 3 — нестандартный алгоритм хэша",{"type":74,"tag":83,"props":2171,"children":2172},{},[2173],{"type":80,"value":2174},"Казино утверждает, что использует \"проприетарный хэш\" или \"вариант SHA-256\" вместо стандартного SHA-256. Нет никакой законной причины для этого. Каждое честное казино с Provably Fair использует SHA-256 или SHA-512 стандарта NIST. Пользовательские алгоритмы либо (a) уязвимы для неизвестных атак, либо (b) это намеренное оправдание, чтобы предотвратить независимую проверку.",{"type":74,"tag":2094,"props":2176,"children":2178},{"id":2177},"чек-лист-безопасного-выхода",[2179],{"type":80,"value":2180},"Чек-лист безопасного выхода",{"type":74,"tag":318,"props":2182,"children":2183},{},[2184,2189,2194,2199,2204,2215],{"type":74,"tag":322,"props":2185,"children":2186},{},[2187],{"type":80,"value":2188},"Не пополняй баланс новыми средствами",{"type":74,"tag":322,"props":2190,"children":2191},{},[2192],{"type":80,"value":2193},"Выведи доступный баланс на собственный кошелёк",{"type":74,"tag":322,"props":2195,"children":2196},{},[2197],{"type":80,"value":2198},"Сделай скриншоты панели честности и документации алгоритма",{"type":74,"tag":322,"props":2200,"children":2201},{},[2202],{"type":80,"value":2203},"Проверь статус лицензии казино — если Curacao, подай жалобу в портал разрешения споров лицензирующего органа",{"type":74,"tag":322,"props":2205,"children":2206},{},[2207,2209],{"type":80,"value":2208},"Перед принятием бонусов от похожих операторов изучи наш ",{"type":74,"tag":110,"props":2210,"children":2212},{"href":2211},"\u002Fcasino\u002Fbonus-abuse-detector",[2213],{"type":80,"value":2214},"детектор бонус-абьюза",{"type":74,"tag":322,"props":2216,"children":2217},{},[2218,2220],{"type":80,"value":2219},"Перейди на казино с проверенным алгоритмом из нашего ",{"type":74,"tag":110,"props":2221,"children":2222},{"href":282},[2223],{"type":80,"value":2224},"справочника Provably Fair",{"type":74,"tag":83,"props":2226,"children":2227},{},[2228],{"type":80,"value":2229},"Вывод: Provably Fair — это инструмент, который ты можешь использовать, чтобы поймать обман. Но казино, которые обманывают, часто специально реализуют его неправильно — это сигнал. Отказ сотрудничать с проверкой сам по себе является проверкой, которая была нужна.",{"type":74,"tag":75,"props":2231,"children":2233},{"id":2232},"часто-задаваемые-вопросы",[2234],{"type":80,"value":2235},"Часто задаваемые вопросы"]