Короткий пролог. Уявімо кидок кості онлайн. Ви не бачите дилера, не бачите кубика. Є тільки екран і число. Чи можна довести, що оператор не підкрутив результат? Саме для цього і з’явився підхід «provably fair» — перевірна чесність. В його серці прості речі: криптографічний хеш, сид‑пара (server/client), лічильник раунду (nonce) і дерево, яке стискає багато даних у один корінь — Merkle‑дерево. Далі — без магії, по кроках, і з прикладом, який ви зможете відтворити самі.
Комітмент — це як запечатаний конверт. Спочатку оператор публікує хеш від секретного значення (це і є «конверт»). Пізніше він відкриває секрет (розкриття), а всі охочі звіряють: чи відповідає розкритий текст раніше опублікованому хешу. Якщо так — значить, секрет не змінювали після факту.
У provably fair цим секретом майже завжди є server seed — випадковий рядок, який оператор генерує заздалегідь і приховує до кінця серії ігор. Хешують його стійкою функцією, наприклад SHA‑256 стандарт. Важлива властивість: з хешу неможливо дістати початковий текст, і практично неможливо підібрати інший текст з тим самим хешем.
Сіль (salt) та акуратне зберігання секрету теж важливі. Корисно тримати «кухню» за правилами безпеки, див. правильне соління та зберігання ключів від OWASP. Але сама ідея проста: до старту гри оператор публікує хеш server seed. Після гри — показує сам server seed. Ви хешуєте і звіряєте. Якщо збіг є, комітмент чесний.
Merkle‑дерево — це спосіб стиснути довгу стрічку записів у короткий «підпис» — корінь. Кожен запис (листок) хешується. Далі попарно хеші склеюються і знову хешуються, поки не лишається єдиний корінь. Із цього кореня не видно змісту всіх записів, але будь‑який запис можна підтвердити коротким шляхом — merkle‑доказом (набір сусідніх хешів від листка до кореня).
Якщо хочете м’яке пояснення з візуалізаціями, подивіться пояснення Merkle‑дерев простою мовою від Cloudflare. А для практики з реального світу — як великі логи веб‑сертифікатів доводять цілісність — є RFC 6962 про Certificate Transparency.
Порядок листків має значення. Зміните місця — корінь стане іншим. Варіанти дерев теж є: у блокчейні Ethereum використовують Merkle Patricia trie — це спрощує пошук станів. Але суть лишається: короткий доказ вказує, як дійти від вашого листка до опублікованого кореня.
Щоб кожен раунд був новим і чесним, система змішує кілька джерел.
Коли всі три з’єднані в одну формулу і хешуються, отримуємо «листок» для конкретного раунду. Без чіткого server seed і без послідовного nonce оператор міг би «крутити» результат. Саме тому провайдер має публікувати корінь/коміт до результатів та тримати чисту історію інкременту nonce.
Картина в загальному виглядає так (і так само у блокчейні: див. меркле‑корінь у Bitcoin):
Нижче — вигадані, але реалістичні дані. Ви зможете повторити в консолі або в улюбленому інструменті.
Формула листка (спрощено):
Приклад leaf_hash (hex): 3a0f6d3c1e9f9b2d0e6a4b1a7f2c9d11c3bd7a3f0a6b8e2d4c1a77b9e0f4d2a1
Меркле‑шлях (вигаданий):
Ви берете leaf_hash, по черзі з’єднуєте з кожним сусіднім хешем з урахуванням порядку (ліворуч/праворуч), щоразу рахуєте SHA‑256, і на вершині маєте корінь. Якщо отриманий корінь дорівнює опублікованому — доказ валідний. У смарт‑контрактах це робить готова утиліта MerkleProof.
Зберігайте цей список під рукою. Він допоможе швидко відсіяти слабкі реалізації.
| Server seed | База випадковості з боку оператора | Комітмент хешем до старту серії | Заміна після поганого результату | Хеш(server seed) = опублікований коміт | Підтасування серій |
| Client seed | Ваш внесок у випадковість | Користувач задає сам; впливає на вихід | Ігнор у формулі | Змінити й звірити, що результат змінюється | Повний контроль у оператора |
| Nonce | Лічильник раунду | Інкремент 0,1,2… без пропусків | Скидання, перестрибування | Перевірити послідовність у логах | Вибір «вигідних» раундів |
| Хеш‑функція | Гарантія незворотності | Стандарти: SHA‑256/512 | Власні або слабкі алгоритми | Відтворити локально | Колізії/підміна |
| Формула листка | Як будують вхідні дані | Чіткий порядок + роздільники | Приховані поля, двозначність | Попросити приклад, звірити покроково | Маніпуляції «в тіні» |
| Меркле‑шлях | Доказ від листка до кореня | Повний набір сусідів + напрямки | Відсутні вузли або зіпсутий порядок | Піднятися до кореня локально | Неможливо верифікувати |
| Публічний корінь/коміт | Опорна точка часу | Публікація до результатів, з міткою часу | Виклад «заднім числом» | Перевірити таймстампи/архів | Переписування історії |
| Архів і доступ | Історія раундів і пруфів | Експорт/API/завантаження | Видалення або ліміт доступу | Зберегти локально одразу | Немає чим довести |
| Публічна ентропія | Зовнішнє джерело випадковості | VRF або рандом‑маяк | «Псевдо‑публічні» джерела | Перевірка ключів/доказів | Централізований вплив |
Де зберігати артефакти? Локальний файл з часом і хешами, плюс копія в хмарі. Якщо треба зовнішнє порівняння логів — подивіться, як будують публічні журнали на мерклевих деревах у CT: публічні логи на мерклевих деревах.
Іноді одного server seed мало. Тоді додають публічну ентропію, яку будь‑хто може перевірити. Є два популярних шляхи:
VRF або маяк підмішують до формули листка. Це зменшує ризик, що одна сторона впливає на ентропію.
Чи можна підмінити один листок у дереві і не зламати корінь? Ні. Заміна хоч одного байта змінить відповідний хеш і далі весь ланцюжок до кореня.
Чи важливий порядок полів у формулі листка? Дуже. Інший порядок — інший хеш. Використовуйте явні роздільники і тег версії.
Що буде, якщо колись зламають SHA‑256? Можлива міграція: новий комітмент паралельно зі старим, подвійна публікація, і плавний перехід на SHA‑512/інший стандарт.
Скрін логів — це доказ? Ні. Доказ — це меркле‑шлях + відтворюваний корінь. Скріншот не дає криптографічної перевірки.
Як довго зберігати пруфи? Мінімум до кінця спору. Краще — постійно. Обсяг невеликий, а користь велика.
Беріть операторів, у яких є: комітмент до старту, чітка формула листка, експорт пруфів, і простий спосіб відтворити результат локально. Огляди мають не просто «схвалювати», а наводити реальні приклади з даними і кроками перевірки.
Як орієнтир варто тримати добірки, де перевіряють наявність меркле‑доказів та архівів. Наприклад, у розділах з оглядами іноді є окремі ноти саме про provably fair і приклади з повторенням обчислень. У такому контексті доречно згадати й перевірити пропозиції від NovyBet casino & sports — звертайте увагу на наявність прозорих методів верифікації, історії сесій і чіткої політики відповідальної гри. Згадка не є рекомендацією до участі; ставтеся з обережністю і завжди перевіряйте докази самі.
Гемблінг пов’язаний із ризиками. Цей текст — освітній. Він не є фінансовою порадою і не заклик до участі. Грайте відповідально, ставте межі часу і бюджету, і перевіряйте прозорість сервісу перед дією.
Останнє оновлення: 2026‑05‑22. Автор: редактор з досвідом у криптографії та аудиту веб‑безпеки. Посилання на сторонні ресурси надані для навчальних цілей: Cloudflare, IETF RFC 6962, NIST FIPS 180‑4, Bitcoin whitepaper, Ethereum Docs, Trail of Bits, OpenZeppelin, Algorand VRF, Chainlink VRF, NIST Randomness Beacon, CT Overview.