Честность

Что мы доказываем, как именно и где всё ещё требуется доверие.

Протокол (AERQIX-M4 v1)

  • Снимок: при закрытии принятые участия сортируются по ID; каждое становится листом дерева Меркла SHA256("AERQIX-M4:entry:" + entryId + ":" + userId + ":" + drawId + ":" + passUnitId + ":" + createdAt). Сохраняются хеш снимка и корень Меркла.
  • Обязательство: после снимка генерируется 32-байтовый серверный сид, сохраняется только SHA256("AERQIX-M4:server-seed:" + seed); сам сид раскрывается в пакете доказательства после завершения.
  • Случайность: в обязательстве закрепляются одна ссылка и один раунд случайности. Для них принимается ровно одно значение; второе, другое значение отклоняется.
  • Выбор: trigger = uniformBelow(SHA256("AERQIX-M4:trigger:" + R), 100). Победитель джекпота и недельных призов выбираются раздельными потоками SHA-256 с 256-битной выборкой с отбрасыванием — никогда не простым остатком от деления.
  • Пакет: все входы и выходы хешируются в хеш пакета. Проверка пересчитывает каждый шаг.

Что вы можете проверить сами

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

Где всё ещё требуется доверие — честно

  • Источник случайности: в демо используется публичное детерминированное значение (SHA-256 фиксированного префикса и ID розыгрыша). Его можно было вычислить заранее — оно доказывает только вычисление. Планируется проверяемый публичный источник (drand); пока он не подключён и его подписи не проверяются, реальные розыгрыши проводиться не должны.
  • Полнота: корень Меркла доказывает, что участие есть в списке, но не то, что ни одно принятое участие не пропущено. Полнота сверяется с учётом оператора, который не публичен.
  • Выплата: доказательство показывает, кто выиграл; выплаты отслеживаются в учёте оператора и видны в аккаунте победителя.

Инструменты

  • Проверка в браузере на странице «Проверка» — пакет скачивается и пересчитывается на вашем устройстве.
  • Командная строка: fortulox-verify https://fortulox.com/api/v1/public/draws/DRW-0-W4/proof
  • Пакеты доказательства — обычный JSON, их можно проверить любой реализацией SHA-256.
Проверить результат