Получи случайную криптовалюту за регистрацию!

Алгоритм рандомайзера в лотереях Chainik Недавно chainik.io з | Monster News

Алгоритм рандомайзера в лотереях Chainik

Недавно chainik.io запустил функционал лотерей, которые работают на блокчейне Minter, являются абсолютно не прогнозируемыми (заранее узнать результат невозможно), но проверяемыми постфактум и полностью прозрачными.

Как это работает:
— Выбор адреса-победителя происходит среди провайдеров ликвидности конкретного пула. Для этого необходимы все блоки полных суток (время по UTC)
— Для начала нобходимо выбрать блок, который будет являться снэпшотом. В этом блоке будут зафиксированы адреса провайдеров (с заранее настроеным Топ'ом и исключениями, которые видны в параметрах лотереи) и их балансы LP-токенов (ликвидность). Для этого берем первый и последний блок суток (время по UTC), между ними производим расчеты на основе хэшей и выбираем рандомный блок. В формуле участвуют также:
адрес лотереи (для уникализации, ведь в одном пуле может быть несколько лотерей, нужно чтобы у них были разные результаты)
ID LP-токена пула
разделитель (любое число, в данном случае 1234567890)
— Далее нужно определиться с тем, как выбрать победителя. Для этого просуммируем LP-токены всех провайдеров пула на выбранный ранее блок (например, сумма = 100) и случайно выберем порог в пределах этой суммы LP-токенов (например, 57), который будет являться маркером победителя
— Миксуем адреса провайдеров по формуле и от 0 начинаем прибавлять их количество LP-токенов. Например: 0 + 1.2 + 0.7 + 0.004 + 13.27 ... Таким образом добираемся до полученного ранее порога 57. Тот адрес, чьи LP-токены приведут к превышению этого порога (57) – будет являться победителем лотереи текущего дня
— Последним этапом расчитывается приз победителя на основе настроек лотереи:
• процент от пула
• фиксированный
• процент от ликвидности адреса-победителя, но не более выбранного процента пула

Проверить победителя любой лотереи:
Страница лотереи -> Блок History -> Ссылка в дате

На проверочной странице находятся все необходимые данные и формулы (пример). Воспроизвести расчеты и убедиться в их правильности можно самостоятельно, для этого просто возьмите данные из ноды Minter.

Сам алгоритм был разработан @ALEXEYXL (владелец Monster Node), за что ему большое спасибо, это отличный способ получить случайное значение в полностью проверяемой системе (блокчейн).

Свою лотерею в Chainik может запустить любой желаюший, подробности читайте в этом посте.