DecentraLotto — Доказуемо честная крипто лотерея на Arbitrum. Ставки в USDT, выбор победителя через Chainlink VRF v2.5, вывод прямо на кошелек. Без регистрации и без кастодиального риска. decentralotto
EN RU
Arbitrum One Block Confirmed · 100% On-Chain Chainlink VRF Verifiable Quantum Randomness Zero Custody Direct Smart Contract Pull Payments Jackpot 1,000 USDT Accumulator Stack 50 3 Winners Split Pot (55% / 28% / 17%) Fairness 1 Ticket = 1 USDT · Pure Linear Odds Arbitrum One Block Confirmed · 100% On-Chain Chainlink VRF Verifiable Quantum Randomness Zero Custody Direct Smart Contract Pull Payments Jackpot 1,000 USDT Accumulator Stack 50 3 Winners Split Pot (55% / 28% / 17%) Fairness 1 Ticket = 1 USDT · Pure Linear Odds

← Гайды и статьи о крипто лотереях

Как Chainlink VRF выбирает победителя лотереи

Обновлено · 1 мин чтения

Chainlink VRF предоставляет случайные числа вместе с доказательством. Контракт координатора проверяет доказательство, прежде чем передать результат контракту лотереи. Это позволяет проверить источник результата и повторить выбор победителя.

Почему недостаточно времени блока

Действия смарт-контракта должны воспроизводиться одинаково на всех узлах. Время и хеш блока не дают контракту независимого секретного источника случайности; некоторые участники сети могут влиять на их выбор. VRF использует внешнее вычисление, которое контракт может проверить.

Свойства VRF

Последовательность розыгрыша

  1. Контракт закрывает раунд и фиксирует список билетов при запросе случайности.
  2. Событие DrawRequested записывает идентификатор запроса.
  3. Оракул отправляет результат с доказательством координатору VRF.
  4. Координатор проверяет доказательство и вызывает контракт лотереи; событие RandomWordsFulfilled содержит исходное значение.
  5. Контракт вычисляет выигрышные билеты, начисляет выплаты и открывает следующий раунд.

Время ожидания зависит от сети, работы оракула и настроек запроса. Таймер на карточке показывает окончание приёма ставок, а не гарантированную секунду начисления выигрыша.

От числа к билету

Слова выводятся по формуле word[i] = keccak256(abi.encode(seed, i)). Speed Round и Jackpot берут word[0] mod tickets. В Stack место i выбирает позицию i + word[i] mod (tickets − i); перемешивание исключает повторный выбор того же билета.

Что можно проверить самостоятельно

В транзакции завершения найдите ответ координатора с идентификатором, совпадающим с запросом раунда. Вычислите слова, номера билетов и их владельцев. Сравните с PrizeAwarded. Проверка тиража выполняет эти действия в браузере. Начисление выигрыша и его последующий вывод — разные операции.

Ограничения

VRF не гарантирует, что оракул ответит вовремя, и не устраняет ошибки кода лотереи. Через 24 часа без ответа можно отменить зависший розыгрыш и запросить возврат. Действия требуют транзакций и ETH. Проверьте права владельца и статус аудита перед участием.

Часто задаваемые вопросы (FAQ)

Как именно Chainlink VRF определяет победителя тиража?

После закрытия приема ставок смарт-контракт запрашивает случайное число у координатора Chainlink VRF v2.5. Оракул возвращает число с криптографическим доказательством, а выигрышный билет вычисляется как остаток от деления случайного числа на общее количество билетов.

Что произойдет, если оракул Chainlink VRF не ответит?

Если ответ от Chainlink VRF не поступит в течение 24 часов, смарт-контракт DecentraLotto позволяет любому участнику отменить розыгрыш и разблокировать 100% возврат ставок в USDT.

Попробуйте сами

Каждый тираж на DecentraLotto записывается в блокчейн и проверяется за считанные секунды. Начните от 5 USDT или просто понаблюдайте за тиражом онлайн.

Участвовать в активном тираже →

Другие статьи