Перейти к содержанию

Доказательство корректности

Ориентированное на проверку руководство по доказательствам корректности, публичным входам, свидетелям, допущениям системы доказательств, переходам состояния роллапа, доступности данных, финальности и операционным сбоям.

Обновлено

Только в образовательных целях; не является инвестиционной рекомендацией или советом по безопасности. Надёжность доказательства зависит от утверждения, привязки публичных входов, системы доказательств, верификатора, доступности данных, контрактов, операторов, управления и расчётной сети.

Краткий ответ

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

Гарантия уже, чем утверждение «система корректна». Она зависит от стойкой криптографии, нужной программы или схемы, верного кодирования входов, подлинного ключа и корректных контрактов. Одна проверка не доказывает доступность данных, работу доказывающей стороны, финальность блока, безопасность обновления или работоспособность вывода. Можно использовать систему с нулевым разглашением, но корректность сама по себе не означает конфиденциальность.

1
Выполнять

Доказывающая программа выполняет пакет или вычисление и записывает результирующий переход состояния.

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

  1. Зафиксируйте точное развёртывание: ID сетей L1 и L2, версию роллапа, контракт обновления, адрес и байткод верификатора, хеш ключа, систему доказательств, версию схемы или программы, режим данных, права администратора, паузу и политику финальности. validity proof — не единая межсистемная спецификация.
  2. До интерпретации задайте доказываемое отношение. При допущениях корректности Verify(vk, x, proof) = 1 должно означать существование свидетеля w, для которого R(x, w) = 1. vk — ключ, x — полный публичный вход, R — закодированные правила. Доказательство относится только к этому отношению.
  3. Независимо восстановите публичные входы. Убедитесь, что прежний корень принят контрактом; выведите из канонических данных коммитмент пакета или данных, идентификаторы, новый корень, корни сообщений или выводов и параметры. Валидное доказательство, привязанное к неверному объекту, доказывает неверное утверждение.
  4. Проверьте доказательство и путь контрактов. Запустите независимый верификатор, затем изучите ончейн-вызов, квитанцию, событие, номер пакета и изменение хранилища. Убедитесь, что результат не обойдён, не имитирован и не заменён обновлением или привилегированной ветвью.
  5. Отдельно проверьте доступность данных. Получите требуемые транзакции, разности состояний, blob sidecar или заверенные комитетом данные; сверьте коммитменты и воспроизведите переход или свидетель вывода. Валидное доказательство может сочетаться с недоступными данными, особенно в validium.
  6. Разделяйте состояния: создано, отправлено, включено, доказательство проверено, состояние принято, расчёт безопасен, финализирован, вывод завершён. Измеряйте очередь, стоимость, работоспособность, включение L1, реорганизации, задержки моста, принудительное включение и аварийный выход.
  7. Сохраняйте воспроизводимые материалы: адреса и хеши кода, хеши ключа и программы, полные входы, байты доказательства или постоянную ссылку, данные пакета, команду и версию ПО, квитанцию, финализированный блок и успешный тест вывода. Повторяйте проверку после обновлений.

Расчётные примеры

  • Утверждение о пакете. Роллап обрабатывает 8,192 transfers, а доказательство связывает R0, R1 и B7. Успех подтверждает наличие свидетеля перехода от R0 к R1 для B7, но не доступность байтов B7, включение всех транзакций или финальность R1.
  • Рекурсивная агрегация. Агрегатор проверяет 16 child proofs в родительской схеме и отправляет одно родительское доказательство. Всё равно нужно проверить каждого потомка, порядок и сопоставление входов; количество не создаёт такую привязку.
  • Условный учёт Gas. Повторное исполнение требует 24,000,000 gas, проверка 600,000 gas, публикация данных 180,000 gas. Итого 600,000 + 180,000 = 780,000 gas, модельное снижение (24,000,000 - 780,000) / 24,000,000 = 96.75%. Не учтены оборудование, агрегация, сбои, хранение, мост и архив.

Риски

  • Проверка неверной сети, развёртывания, пакета, верификатора, ключа или схемы.
  • Стойкая система честно доказывает неполную или ошибочную схему.
  • Публичные входы пропускают или неверно кодируют ID, корень, пакет, домен или параметр.
  • Ошибка верификатора, прекомпилята, небезопасной библиотеки или несовместимой реализации.
  • Компрометация настройки или нарушение криптографических допущений.
  • Обновляемые контракты или управление меняют верификатор, ключ, программу или правило.
  • Привилегированный обход, аварийный режим, пауза или список разрешений ослабляют путь.
  • Ошибки генерации, недетерминизм или разные свидетели у клиентов.
  • Централизация, цензура, сбой, очередь или оборудование доказывающей стороны останавливают обновления.
  • Отсутствуют транзакции, разности состояния, blobs, прообразы или архив.
  • Подпись комитета или коммитмент принимаются за текущую доступность данных.
  • Доказательство принимается из небезопасного, реорганизованного или неканонического блока.
  • Принятие доказательства путают с мгновенным выводом или экономической финальностью.
  • Не удаётся независимо воспроизвести переход, баланс, сообщение или свидетель вывода.
  • Недооценены Gas, плата за данные, задержка доказательства, моста или восстановления.
  • Модель одного роллапа переносится на другое развёртывание.

Распространённые заблуждения

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

Похожие темы

Источники

Навигация

Поиск по вики...