Как здесь устроена честность
BearMark Arena держит турнир честным, делая его жеребьёвку и результаты проверяемыми кем угодно — а не прося вам довериться. Эта страница ровно говорит, что печать доказывает, и так же прямо — чего не доказывает.
Что говорит печать
- Проверено — доказуемо неподтасовываемо
- Жеребьёвка посева привязана к раунду публичного маяка drand, которого ещё не было в момент фиксации. Случайность маяка — которой никто не управляет — определила порядок, и её может воспроизвести любой. Даже организатор не мог на это повлиять.
- Проверено — воспроизводимо
- Журнал событий воспроизводится в точности в показанное финальное состояние, и все хеши сходятся. Результат воспроизводим из записи. (Показывается, когда жеребьёвка запечатана, но ещё не подтверждена публичным маяком.)
- Записано — ручной посев
- Сетку посеяли вручную (доказуемо честная жеребьёвка была выключена или застрявшую жеребьёвку восстановили вручную). Итоговая таблица всё равно пересчитывается из записанных результатов по заявленным правилам, так что её можно проверить, — но сама жеребьёвка не привязана к маяку и не несёт заявления о неподтасовываемости.
- Идёт жеребьёвка
- Верифицируемая жеребьёвка посева зафиксирована и ждёт выхода своего раунда публичного маяка. Сетка появится, как только раунд опубликуют; до тех пор подтасовывать нечего и прятать нечего.
- Проверка не пройдена
- Проверка не сошлась — запись не воспроизводится в заявленное состояние, либо транскрипт или подпись маяка не прошли валидацию. Отнеситесь к результату с подозрением и посмотрите детали.
Как работает верифицируемая жеребьёвка
- Перед жеребьёвкой турнир фиксирует свои входные данные — участников и точную процедуру — и будущий раунд публичного маяка drand.
- Этого раунда ещё не было, поэтому его случайность неизвестна никому, включая нас и организатора.
- Когда раунд опубликован, его случайность детерминированно определяет порядок посева. Никто не выбирает его вручную.
- Любой может ре-деривить порядок из того же публичного маяка и зафиксированных входных данных и убедиться, что он совпадает с опубликованным.
Что проверяет proofmark (офлайн, не доверяя никому)
proofmark — бесплатный открытый верификатор. Он работает в вашем браузере или на вашей машине поверх опубликованного досье и независимо перепроверяет:
- что журнал событий воспроизводится в заявленное финальное состояние (ничего не правили втихую);
- что хеш определения и каждый хеш состояния совпадают;
- что каждый транскрипт жеребьёвки внутренне согласован и соответствует опубликованному порядку;
- что подпись каждого привязанного раунда drand валидна — то есть случайность взята из настоящего публичного маяка, а не подменена.
Честные границы
Печать неподтасовываемости — конкретное, узкое заявление. Она НЕ означает «жульничество невозможно». Три границы стоит назвать:
- Ручной посев не является неподтасовываемым.
- Если доказуемо честная жеребьёвка выключена или застрявшую жеребьёвку восстанавливают ручным посевом, порядок задаёт человек. Печать понижается до «ручной» и не делает заявления о неподтасовываемости.
- Очень большие поля откатываются на ручной посев.
- Верифицируемая жеребьёвка поддерживает до 108 участников. Свыше этого посев откатывается на ручной, чтобы не заклинить турнир, — и печать так же честно понижается.
- Порядок «фиксация против публикации» пока не нотаризован (остаточный риск раскрытия).
- Публичный маяк означает, что случайность нельзя предсказать или контролировать. Но момент фиксации относительно маяка — пока лишь собственная запись сервера. Настойчивый организатор в принципе мог бы приватно провести церемонию несколько раз и опубликовать только выгодный исход. Отдельный нотариус времени жеребьёвки — независимая сторона, контрподписывающая единственную фиксацию до раунда, — закрывает это. Пока он не выпущен, мы называем пробел, а не замазываем его.
Проверьте сами
Не верьте нам на слово ни в чём из этого. Откройте страницу проверки турнира, чтобы перезапустить проверки в своём браузере, или запустите верификатор из командной строки поверх его dossier.json.
Попробовать страницу проверки демо →
Или запустите CLI поверх dossier.json любого турнира:
node packages/proofmark/dist/cli.js dossier.json