Главный приз разыгрывается среди проданных билетов, поэтому победитель есть в каждом тираже. Организатор не может подкрутить результат, а любой зритель может пересчитать его сам в своём браузере.
Секрет организатора фиксируется хешем до продаж, фраза зала появляется после продаж. Номер получается из обоих, поэтому ни одна сторона не управляет им в одиночку.
Организатор создаёт секретное зерно и публикует только его отпечаток SHA-256. Поменять зерно потом нельзя: отпечаток не сойдётся.
Число билетов известно. Зал или ведущий в эфире называет фразу, которую организатор не мог знать заранее.
Номер считается по формуле ниже, барабан показывает его по разрядам. Каждая цифра тянется с весом, равным числу билетов за ней.
Барабан лишь показывает номер, который уже определён зерном и фразой. Шансы всех билетов равны.
После тиража организатор раскрывает зерно. Вставьте четыре значения из протокола, и страница пересчитает номер без участия организатора. Сеть для этого не нужна.
Тиража ещё не было.
h = SHA-256(зерно|N|фраза|попытка) x = первые 64 бита h если x ≥ 2⁶⁴ − (2⁶⁴ mod N): попытка+1, повторить победитель = x mod N + 1
В формуле патента LT 6494 B для каждого разряда в барабан кладут по одному шару «от 0 до цифры N», если старшие цифры совпали с N, иначе от 0 до 9. Номер всегда в диапазоне, но шансы неравны: у номеров рядом с N на каждом разряде мало шаров, и каждый шар весит больше. Здесь оба барабана крутятся тысячи раз подряд.
Честно последний билет должен выигрывать примерно в 100 000 / N тиражах. По формуле патента его точный шанс равен произведению 1/(цифра+1) по всем цифрам N.