Разделы

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

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

Что публикуем и где это проверить

МоментЧто публикуемГде проверить
До начала приёмаУсловия розыгрыша и отпечаток секретного числа сервиса. В условиях уже записан номер раунда drand, который решит итог.Открытый журнал Rekor и канал отметок
Пока идёт приёмКаждая запись получает номер и квитанцию с подписью сервиса. Раз в 30 секунд отпечаток журнала розыгрыша уходит в канал.Квитанция у участника, страница проверки
Закрытие приёмаОтпечаток всего списка и число записей. После этой отметки список уже не поменять незаметно.Rekor и канал, в течение 10 секунд
Выход раунда drandСлучайное число сети drand с подписью сети. Его номер назначен в условиях до старта.Зеркала сети drand
ИтогСекретное число, победители и запасные, подпись сервиса.Страница проверки, утилита на Python

Список превращается в один отпечаток

Каждая запись превращается в отпечаток, а отпечатки склеиваются попарно, пока не останется один, корень. При закрытии приёма корень уходит в Rekor и в канал. Поменять одну запись задним числом значит получить другой корень, а прежний уже лежит у третьих лиц со временем отметки.

Дерево отпечатков списка из четырёх записейОтпечатки записей 0 и 1 дают общий отпечаток пары, записи 2 и 3 тоже; два отпечатка пар дают корень. Путь от записи 2 к корню выделен.запись 0запись 1запись 2запись 3пара 0 и 1пара 2 и 3корень
Чтобы доказать, что запись 2 в списке, хватает её самой, соседней записи 3 и отпечатка пары 0 и 1. Этот путь страница проверки получает у сервиса по квитанции и сводит к корню из Rekor.

Откуда случайность

Случайное число даёт сеть drand: её ведут независимые организации, новое число выходит раз в три секунды. Номер раунда записан в условиях ещё до старта, а его число до выхода не знает никто, мы тоже.

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

Чего журнал не доказывает

Журнал доказывает, что записанное не меняли. Но он не доказывает, что организатор передал все события участия: кто не нашёл своей записи, предъявляет квитанцию организатору и нам. И проверка исхода не говорит, что программа организатора работает так, как написано в условиях.

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

Протокол подробно