Реалізація Provably Fair верифікації в мобільному крипто-казино

Багато крипто-казино обіцяють чесну гру, але без **Provably Fair** це лише слова. Ми реалізували цю **Provably Fair** систему в мобільних додатках для iOS та Android, де кожен раунд можна перевірити локально за 2-3 мілісекунди. Верифікація використовує криптографічний протокол commit-reveal з апарат

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація Provably Fair верифікації в мобільному крипто-казино
Складний
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Багато крипто-казино обіцяють чесну гру, але без Provably Fair це лише слова. Ми реалізували цю Provably Fair систему в мобільних додатках для iOS та Android, де кожен раунд можна перевірити локально за 2-3 мілісекунди. Верифікація використовує криптографічний протокол commit-reveal з апаратною генерацією клієнтського seed. Замовте таку ж реалізацію — зв'яжіться з нами.

Особливу увагу приділяємо генерації client_seed — основі довіри між гравцем та казино. Сервер не може вплинути на результат, оскільки seed створюється безпосередньо на пристрої за допомогою захищених механізмів: на iOS — SecRandomCopyBytes з Security framework, на Android — SecureRandom CryptoProvider. Згенеровані 32 байти перетворюються на hex-рядок і відображаються користувачеві. Крім того, інтерфейс повинен дозволяти змінити client_seed вручну — це стандартна вимога для прозорих систем. Такий підхід виключає будь-яку можливість підтасовки з боку сервера, оскільки seed генерується в ізольованому середовищі додатку та недоступний для підміни.

Commitment scheme на Wikipedia описує теоретичну основу.

Як генерується client_seed на мобільному пристрої?

Для генерації використовується лише апаратний CSPRNG:

// iOS var clientSeedBytes = Data(count: 32) clientSeedBytes.withUnsafeMutableBytes { SecRandomCopyBytes(kSecRandomDefault, 32, $0.baseAddress!) } let clientSeed = clientSeedBytes.map { String(format: "%02x", $0) }.joined() 
// Android val clientSeedBytes = ByteArray(32) SecureRandom().nextBytes(clientSeedBytes) val clientSeed = clientSeedBytes.joinToString("") { "%02x".format(it) } 

Користувач повинен мати можливість змінити client_seed вручну — це стандартна практика для прозорих систем. Поле введення з кнопкою «Оновити» генерує новий випадковий seed та відображає його.

Верифікація на клієнті

Після раунду додаток повинен надати екран верифікації. Користувач бачить:

Параметр Значення
Server Seed Hash a1b2c3... (показано до раунду)
Server Seed deadbeef... (розкрито після)
Client Seed f00f...
Nonce 42
Результат HMAC 0x3f2a...
Підсумок 6 (з HMAC mod 6 + 1)

Верифікаційний розрахунок виконується локально в додатку — користувач бачить, що саме обчислюється. SHA-256 та HMAC-SHA-256 є в CryptoKit (iOS) та javax.crypto (Android) без залежностей.

Додатково: посилання на сторонній верифікатор (наприклад, provablyfair.org) — це підвищує довіру, навіть якщо клієнт не стане ним користуватися.

Чому важлива локальна генерація client_seed?

Якщо client_seed приходить з сервера, казино може теоретично підібрати seed, що дає бажаний результат. Локальна генерація на пристрої виключає цю атаку: seed відомий лише клієнту до розкриття. Наш досвід показує, що користувачі довіряють додаткам, де вони самі керують seed'ом.

Схема commit-reveal

Стандартна схема працює так:

  1. Перед раундом сервер публікує server_seed_hash = SHA256(server_seed).
  2. Клієнт генерує client_seed (випадкові 32 байти через CSPRNG на пристрої).
  3. Результат раунду: HMAC-SHA256(server_seed, client_seed + nonce), де nonce — лічильник раундів.
  4. Після раунду сервер розкриває server_seed. Клієнт перевіряє: SHA256(server_seed) == server_seed_hash.

Мобільний додаток відповідає за кроки 2 та 4. Примітно, що локальна верифікація в 10 разів швидша за серверну — вона не вимагає обміну даними з бекендом та забезпечує 100% прозорість.

Що входить в роботу

  • Розробка модуля генерації client_seed з UI для ручного оновлення.
  • Інтеграція HMAC-розрахунку з результатом (наприклад, dice roll 0-5).
  • Екран верифікації з відображенням всіх параметрів та автоматичною перевіркою.
  • Підтримка ротації server_seed: розкриття старого та публікація нового хеша.
  • Документація по API та тестування на 10 000 раундів.
  • Розгортання в App Store та Google Play з дотриманням гайдлайнів.

Процес роботи

  1. Аналітика: вивчаємо вашу серверну схему, визначаємо формат HMAC та nonce.
  2. Проектування: малюємо UX верифікації, пишемо специфікацію API.
  3. Реалізація: кодимо на Swift/Kotlin, використовуємо CryptoKit/javax.crypto. На тестовому сервері прогоняємо 1000 раундів.
  4. Тест: перевіряємо сумісність з сервером, автоматично верифікуємо 10 000 раундів.
  5. Деплой: публікуємо в сторах, надаємо доступ до вихідних кодів.

Терміни орієнтовно

Від 3 до 5 робочих днів на базову реалізацію. Якщо потрібна кастомна генерація результату (наприклад, для покеру) — до 10 днів. Вартість розраховується індивідуально після аналізу вашого бекенда.

Порівняння: локальна vs серверна верифікація

Параметр Локальна (наша) Серверна
Залежність від мережі Ні Так
Прозорість для користувача Повна Обмежена
Можливість шахрайства Виключена Теоретично є
Швидкість перевірки Миттєво Залежить від пінгу

Довіра та гарантії

Наша гарантія: вихідний код відкритий для аудиту, всі хеші публічні. Ми маємо 5-річний досвід у мобільній розробці та реалізували Provably Fair для 15+ проектів. Отримайте консультацію з інтеграції Provably Fair у ваш мобільний додаток — просто напишіть нам.

Деталі реалізації nonce Nonce — монотонно зростаючий лічильник, що починається з 1 для кожної комбінації server_seed та client_seed. Запобігає повторному використанню результатів та забезпечує унікальність кожного раунду. Додаток повинен зберігати nonce постійно (наприклад, у UserDefaults) та збільшувати його після кожної верифікації. При зміні client_seed або server_seed лічильник скидається на 1.