Какое решение проверяется
Правило Лиспекса — небольшая программа, которая по одному входу
детерминированно выдаёт решение, например approve. Vouch отвечает на общий
вопрос «можно ли доверять этому JSON с решением?», разделяя его на четыре
независимых вопроса:
- Аутентификация. Разрешённый ключ подписал именно эти байты?
- Привязка запроса. Описывают ли эти байты точный исходник и вход, которые выбрал сам потребитель?
- Согласие текущего выполнения. Воспроизводит ли нынешний интерпретатор Native тот же полный результат?
- Локальное решение. Совпадает ли живой результат с решением, которое требует именно этот вызов?
Положительный ответ на ранний вопрос никогда не засчитывается автоматически за следующий. В этом разделении и состоит основная граница 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 | Проверка отдельного класса артефактов |
Безопасный путь по умолчанию
- Потребитель создаёт политику доверия из независимо проверенных открытого ключа, движка и исходника правила.
- Издатель создаёт в Native транспортный пакет bundle для точных байтов исходника и входа.
- Потребитель не позволяет пакету выбрать запрос и отдельно передаёт свои
--sourceи--input. - Native или npm выполняет аутентификацию.
- Повторное выполнение в Native добавляется только тогда, когда нужно сверить текущее поведение.
- Если требуется также согласие проверенной Rust VM, из того же точного
исходника собирается и проверяется артефакт, затем явно добавляется
--compiled-artifact. - 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 не могут сами превратиться в разрешение.
- Платежи, возвраты, развёртывания и любые другие внешние действия остаются отдельной ответственностью вызывающего приложения.
Куда дальше
Выполните полный процесс или откройте Артефакты и отчёты, чтобы узнать, что устанавливает и не устанавливает каждый файл.