Песочница

Лиспекс Vouch

Vouch разделяет доверие к готовому решению на четыре независимых вопроса: подпись, точный запрос потребителя, согласие текущего выполнения и локальный gate решения.

Какое решение проверяется

Правило Лиспекса — небольшая программа, которая по одному входу детерминированно выдаёт решение, например approve. Vouch отвечает на общий вопрос «можно ли доверять этому JSON с решением?», разделяя его на четыре независимых вопроса:

  1. Аутентификация. Разрешённый ключ подписал именно эти байты?
  2. Привязка запроса. Описывают ли эти байты точный исходник и вход, которые выбрал сам потребитель?
  3. Согласие текущего выполнения. Воспроизводит ли нынешний интерпретатор Native тот же полный результат?
  4. Локальное решение. Совпадает ли живой результат с решением, которое требует именно этот вызов?

Положительный ответ на ранний вопрос никогда не засчитывается автоматически за следующий. В этом разделении и состоит основная граница Vouch.

Какие свидетельства сохраняются

Чтобы на эти вопросы можно было отвечать позже, Native при выдаче сохраняет точный контекст запуска: байты исходника правила, байты входа, выбранный профиль и полные протоколы выполнения — записи того, как именно был получен результат. Разрешённый ключ подписывает этот контекст; подписанный контейнер называется конвертом (envelope). Транспортный пакет — bundle — может переносить конверт вместе с точными байтами исходника и входа в одном файле.

Что доказывают переносимые файлы

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

Почему запрос привязывается до любых полномочий

Пакет bundle может переносить исходник и вход, но этот контекст предоставил издатель. Пока потребитель не передал собственные --source и --input, пакет остаётся объектом аутентификации — он не выбирает, что именно будет повторно выполнено или пропущено через gate. Native требует оба внешних пути и отклоняет наполовину закреплённый вызов ещё до чтения артефакта.

Полностью доказанное изображение Lispex может передать точные байты исходника через --source-image. Меняется только представление исходника; выбор входа, политика доверия, повторное выполнение и gate остаются отдельными этапами.

Как этапы потребляют артефакты

У Native два штатных пути проверки выполнения — tree (обход дерева) и Meaning Graph (граф смысла); в документации эта пара обозначается tree/Meaning. Повторное выполнение сравнивает их текущее согласие с подписанными полными протоколами. Выберите операцию по своему вопросу:

Что нужно узнатьОперацияРезультат
Файл структурно согласован?lispex vouch inspectПроверка структуры без подписи
Его подписал разрешённый ключ?lispex vouch verifyОтчёт аутентификации
Он совпадает с моими исходником и входом?Добавьте --source и --input к vouch verifyОтчёт аутентификации с привязкой запроса
Текущее выполнение tree/Meaning совпадает?Native vouch verify --reexecuteРаздельные результаты аутентификации и текущего выполнения
Согласна ли также проверенная Rust VM с артефактом, точно выведенным из исходника?Добавьте --compiled-artifact к повторному выполнению NativeТочное повторное выведение, verifier и результат текущей Rust VM
Живой результат равен требуемому решению?Native vouch gate --require-decision, при необходимости с --compiled-artifactЛокальное разрешение или отказ исходного либо скомпилированного пути
Изменился ли корпус примеров?npm lispex vouch replayСравнение фиксированных случаев
Это отчёт внешнего движка?Проверка BridgeПроверка отдельного класса артефактов

Безопасный путь по умолчанию

  1. Потребитель создаёт политику доверия из независимо проверенных открытого ключа, движка и исходника правила.
  2. Издатель создаёт в Native транспортный пакет bundle для точных байтов исходника и входа.
  3. Потребитель не позволяет пакету выбрать запрос и отдельно передаёт свои --source и --input.
  4. Native или npm выполняет аутентификацию.
  5. Повторное выполнение в Native добавляется только тогда, когда нужно сверить текущее поведение.
  6. Если требуется также согласие проверенной Rust VM, из того же точного исходника собирается и проверяется артефакт, затем явно добавляется --compiled-artifact.
  7. Gate Native используется только тогда, когда приложению нужно одно точное решение в том же вызове.

Команды в этом порядке находятся в полном процессе Vouch.

Что не входит в цепочку

Обычный байткод и вывод VM не могут войти в цепочку Vouch. Необязательный скомпилированный путь тоже начинается с точных внешних исходника и входа потребителя: канонический контейнер lispex.vouch-compiled-artifact/v1 должен быть заново выведен из этого исходника до запуска проверенной Rust VM. Файл .lpxbc, хэш, результат verifier, отчёт inspection, наблюдение VM и отчёт сравнения tree/VM не заменяют запрос, аутентификацию, согласие текущего tree/Meaning или живой gate.

Необязательная байткодная Topaz VM — отдельный диагностический маршрут, а не ещё один verifier Vouch. Её установленный продукт, JSON запроса и результата, вывод выполнения, наблюдение ресурсов и квитанцию compare-vms нельзя подать в vouch verify, скомпилированное повторное выполнение или vouch gate. Согласие с Topaz не создаёт и не усиливает разрешение (grant).

Чего Vouch не разрешает и не гарантирует

  • Действительная подпись не доказывает личность человека или организации, время подписи или честность развёртывания.
  • Точное равенство запроса не даёт свежести, срока действия, отзыва или защиты от повторного предъявления.
  • Согласие tree/Meaning и VM — свидетельство одной линии Rust, а не независимой реализации и не доказательство эквивалентности всего языка.
  • Скомпилированное согласие не доказывает корректность компилятора за пределами точных артефакта, исходника, входа, протокола и лимитов этого вызова.
  • Результат gate нельзя сериализовать как переносимый токен полномочий.
  • Отчёты, пакеты, изображения, байткод, результаты VM и артефакты Bridge не могут сами превратиться в разрешение.
  • Платежи, возвраты, развёртывания и любые другие внешние действия остаются отдельной ответственностью вызывающего приложения.

Куда дальше

Выполните полный процесс или откройте Артефакты и отчёты, чтобы узнать, что устанавливает и не устанавливает каждый файл.