Генератор случайных чисел основан на истинно случайной энтропии SmartHoldem. В качестве источника энтропии используется блокчейн SmartHoldem.
Если вы узнаете выигравший номер по завершении игры, вернётесь в прошлое и выберите этот номер, то результат игры изменится и выигрышный номер станет другим.
Каждые 8 секунд в BlockChain SmartHoldem происходит генерация случайно ранжированными делегатами уникального Hash ID блока содержащего числовой ряд шестнадцатеричных значений, пример: d291a92dce4d774285d9d0c4e6e1cc1f765c6e30ca2733f337c80c8af932dfa0.
Полученный шестнадцатеричный Hash блока преобразуется в числовую десятичную последовательность.
Для расчёта текущего случайного номера из числового ряда выбираются значения с необходимым количеством знаков, например 2 (от 00 до 99).
Все блоки легко проверить в обозревателе блоков и в Hex to Decimal Bytes Array Converter. Просто скопируйте хэш блока в Hex to Decimal Bytes Array Converter.
Пример выборки случайного значения от 0 до 99:
id - хэш текущего блока (вычисляется из всех включённых в блоки данных)
Доказуемо случайный, защищенный от несанкционированного доступа и недорогой (TRNG)
Данные блока используются в качестве входных данных для генерации каждого случайного числа, доказывая, что результат был сгенерирован честно и независимо от запрашивающей стороны.
Каждый случайный результат можно проверить с помощью криптографических доказательств.
Вы и ваши пользователи получаете беспристрастную случайность, и защищены от любых скомпрометированных третьих лиц.
Один из способов изучить генератор случайных чисел — создать визуализацию выдаваемых им чисел. Визуализация - это один из способов получить приблизительное представление о производительности генератора. Представленные ниже изображения являются частями более крупных изображений, созданных для проверки качества двух генераторов случайных чисел. Изображение слева создано с помощью Blockchain TRNG SmartHoldem, который является генератором истинных случайных чисел (TRNG), а изображение справа — с помощью функции rand() из PHP в Microsoft Windows, которая является генератором псевдослучайных чисел (PRNG).
Это визуальное сравнение ясно показывает, насколько важны случайные числа, особенно если ваш сайт представляет собой игру или сайт азартных игр. Как вы можете видеть, изображение сгенерированное генератором псевдослучайных чисел PHP/Windows, демонстрирует четкие закономерности по сравнению с изображением, сгенерированным генератором истинных случайных чисел Blockchain TRNG SmartHoldem. Генерация истинно случайных чисел - Всегда Случайна!
Придумаем простые правила лотереи: номера билетов от 0 до 99, розыгрыш происходит каждые 2880 блоков, победителем является игрок угадавший случайный номер билета.
До начала розыгрыша лотереи, Дарья приобрела билет за STH с номером 14, Василий приобрёл билет с номером 21
Каждый участник лотереи покупая билет, совершает транзакцию в блокчейне SmartHoldem. Транзакция подписывается уникальной крипто подписью, а в примечании указывается номер билета.
Транзакции добавлены в блок, блок получил уникальный хэш состоящий из транзакций, хэша предыдущего блока и других данных.
Каждый 8 секунд делегатами создаётся новый блок. Пример хэша блока: bd082c73...960fbda8
Розыгрыш назначен через 2880 блоков.
К примеру достигнут блок на котором должен состояться розыгрыш лотереи d2c6f1ab...cae17f0e
Нам необходимо вычислить выигрышный номер в десятичной системе исчисления (DEC) на основе 16-ричного (HEX) хэша блока
Т.к. для нас достаточны от 00 до 99, возьмём из хэша блока крайние значения:
В этом случает победитель лотереи Дарья.
Предположим у Василия машина времени и он знает выигрышное число 14, возвращается в прошлое и приобретает билет с номером 14.
“Результатом будет совершенно иной хэш разыгрываемого блока, т.к. все хэши транзакций и блоков изменятся, числоврой ряд будет иметь новые значения”
Таким образом мы получаем:
В процессе ожидания разыгрываемого блока другие пользователи совершают свои случайные транзакции не связанные с лотереей, но влияя на конечный хэш дерева Меркла.
Используйте блокчейн-энтропию SmartHoldem в качестве истинно-случайного стартового сида для генерации числового ряда.
Доступны десятичные значения по умолчанию: 0..9, 0..99, 0..999 и т.д. до 1.15*10^77 или
115 792 089 237 316 200 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000.
- Получите новый хеш. Если вы решите использовать конкатенацию имени делегата подписавшего блок (каждый раунд делегаты назначаются crypto random) + хэш блока, из них вы получите новый хэш.
- Добавьте крипто функции: crypto.randomInt, crypto.randomUUID, HMAC, Lamport signatures, функции хэширования, ECDH, Scrypt.
- Создайте свои правила генерации чисел, используя истинно-случайную энтропию блокчейна SmartHoldem.