Перевірка чесності жеребкування
Вставте код сертифіката, щоб перевірити його.
Що перевіряє цей інструмент
Хтось провів жеребкування і надіслав вам код сертифіката. Ця сторінка каже, чи цей код внутрішньо узгоджений — чи справді числа походять від зерна, яке опублікував організатор, і чи справді відбиток охоплює це зерно та ці налаштування.
Усе працює у вашому браузері. Сертифікат нікуди не надсилається.
Дві перевірки
Відбиток. Сертифікат містить хеш SHA-256 від зерна та налаштувань жеребкування. Ця сторінка перераховує цей хеш. Якщо він не збігається з тим, що зберігається в сертифікаті, зерно або налаштування були змінені після того, як зобов’язання було зафіксовано.
Відтворення. Генератор із зерном повністю детермінований, тож те саме зерно й ті самі налаштування завжди дають ті самі числа. Ця сторінка заново проводить жеребкування і порівнює результат. Якщо числа відрізняються, результат було відредаговано.
Сертифікат проходить перевірку лише тоді, коли обидві перевірки успішні.
Що доводить успішна перевірка, а що ні
Вона доводить, що організатор непомітно не змінив зерно, налаштування чи числа після того, як взяв на себе зобов’язання щодо них.
Вона не доводить, що зерно було непередбачуваним. Якщо організатор сам обрав зерно і ніколи не публікував відбиток перед жеребкуванням, він міг перепробувати багато зерен і залишити те, що йому сподобалось. Відбиток має сенс лише тоді, коли його опубліковано до жеребкування, десь із позначкою часу — у дописі, коментарі, повідомленні.
Саме в цьому й полягає сенс кроку із зобов’язанням: він перетворює «повірте мені» на те, що будь-хто може перевірити згодом.
Як провести жеребкування, яке люди зможуть перевірити
- Задайте діапазон і скільки чисел вам потрібно.
- Натисніть Створити відбиток. Опублікуйте отриманий хеш — у дописі про розіграш, у коментарі, будь-де, де учасники побачать його з позначкою часу.
- Закрийте прийом заявок, а потім проведіть жеребкування.
- Опублікуйте зерно й сертифікат. Будь-хто зможе вставити його сюди.
Пропуск кроку 2 робить сертифікат декоративним. Саме публікація відбитка першою надає йому ваги.
Чому самого зерна недостатньо
Зерно — це просто текст. Воно дає числа лише тоді, коли відомо, як його було розгорнуто в них — який алгоритм, який діапазон, скільки чисел, чи дозволялися повтори.
Ось чому відбиток охоплює і зерно, і налаштування. Без цього організатор міг би опублікувати зерно, а потім заявити, що жеребкування проходило в іншому діапазоні і що справжнім результатом була інша множина чисел. Зобов’язання закриває цю лазівку.
Чому відбиток неможливо підробити
Хеш SHA-256 — це одностороння функція: легко обчислити вперед, але не існує відомого способу обчислити її назад. Саме це робить зобов’язання незворотним.
Щоб обманути, організатору довелося б опублікувати один відбиток, а потім показати інше зерно, яке дає той самий хеш, — атака другого прообразу (second-preimage attack). Проти SHA-256 такої атаки досі не знайдено, а простір пошуку робить перебір безглуздим: 2²⁵⁶ перевищує оцінну кількість атомів у видимому Всесвіті.
Так само організатор не може підлаштувати результат. Зміна одного символу в зерні непередбачувано змінює приблизно половину бітів хешу. Немає способу підібрати зерно, яке водночас відповідає опублікованому відбитку і дає зручного переможця, — адже спершу довелося б зафіксувати хеш, а хеш залежить від усього одразу.
Тож відбиток повністю фіксує зерно і налаштування. Єдине, чого він не фіксує, — коли його опублікували, тому позначка часу під вашим дописом виконує половину роботи.
Де важливі перевірювані жеребкування
- Розіграші та конкурси — саме ті, хто не виграв, найчастіше про це питають
- Відбір у спільноті чи DAO — хто отримує місце, грант чи роль
- Дослідження — план вибірки, який рецензент може повторити й підтвердити
- Призові акції з юридичними ризиками — у деяких юрисдикціях потрібен доказовий метод, а не просто твердження
- Усе, у що має повірити стороння людина — чим далі аудиторія, тим менше важить саме твердження «ми обрали випадково»