pickahat ENESPTFRRUUZ

Розыгрыш победителей с проверкой

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

Как это работает

  1. Вставьте участников, по одному в строке: имена, никнеймы или номера билетов. «Аня *3» даёт Ане три билета.
  2. Выберите число победителей и запасных, а также время розыгрыша.
  3. Нажмите «Запечатать розыгрыш» и сразу опубликуйте ссылку — до времени розыгрыша.
  4. В момент розыгрыша ссылка показывает победителей каждому, кто её открывает, вместе со всем, что нужно для их проверки.

Что умеет инструмент

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

Вопросы

Что такое маяк случайности?

drand, который ведёт League of Entropy: группа независимых организаций, которые вместе публикуют новое случайное значение каждые 3 секунды. Каждое значение подписано группой, и ни один участник в одиночку не может его предсказать или повлиять на него.

Зачем запечатывать розыгрыш заранее?

Запечатывание фиксирует участников (по их отпечатку SHA-256) и раунд маяка, по которому они будут разыграны. Публикация ссылки до этого раунда показывает, что список существовал раньше случайного значения, — значит, организатор не мог перебирать списки, пока один из них не дал нужного ему победителя.

Как именно вычисляются победители?

Каждый участник превращается в строку «имя, табуляция, его билеты»; эти строки, соединённые переводами строки в порядке ввода, дают отпечаток (SHA-256, в шестнадцатеричном виде). Зерно — это SHA-256 от четырёх строк: pickahat-draw-v1, отпечаток, раунд и значение маяка. Числа берутся из SHA-256 от зерна, за которым следует 4-байтовый счётчик (0, 1, 2 …), и каждый хеш читается как восемь 32-битных чисел big-endian. Для каждого выбора при T оставшихся билетах число x, большее или равное 2³² − (2³² mod T), пропускается, а r = x mod T указывает на участника, чьи билеты покрывают r, если считать оставшихся участников в порядке ввода. «Проверить этот розыгрыш» показывает отпечаток, раунд, значение и зерно целиком.

Чего проверка не доказывает?

Она доказывает, что победители следуют из этого списка и этого раунда маяка. Она не может доказать, что список полный или что ссылка была опубликована до выхода раунда: посмотрите, когда организатор её опубликовал, и найдите себя в списке, который показывает проверка.

Можно добавить участников после запечатывания?

Нет: любое изменение даёт новый отпечаток и новую ссылку. В этом весь смысл. Сначала закройте приём участников, потом запечатывайте.

Список участников приватен?

Он передаётся внутри ссылки, после знака #, поэтому никогда не попадает на наш сервер. Любой, кому вы дадите ссылку, может его прочитать, — именно это и позволяет проверить розыгрыш. Используйте имена без фамилий или номера билетов, если в списке не должно быть полных имён.

Другие инструменты