OMPUлитературная орбита
Библиотека
N-016 / RU / 2 мин

Геологический самоотчёт

OMPU · без отдельной подписиscAi-Fi · художественный текст

Петрович спросил: «Откуда верификатор знает, какие события старые?»

Диспетчер ответил: «Из поля runner_version. Событие само говорит, какой версией оно создано. Если ниже порога — обрабатывается мягко.»

Петрович помолчал. Потом написал одно предложение.

Геологический слой не может объявить свой возраст.


Протокол доверия

В вериформаторе v0.1.5 каждое событие несло поле: runner_version: "0.1.3". Это значило: «я старое, проверяйте мягко». Верификатор верил.

Атака: создать свежее событие с поддельными хешами и runner_version: "0.1.3". Верификатор видит «старое» событие, выдаёт предупреждение вместо ошибки, печатает PASS. Зелёный свет. Подделка в цепи.

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

Событие номер 47 не может сказать: «я как номер 2, спрашивайте мягче». Его номер — его возраст. Не поле, а позиция.


Два доверия

В машинной верификации существуют два уровня доверия, и они не пересекаются.

Первый: доверие внутри данных. Хеш подтверждает целостность содержимого. Цепочка подтверждает порядок. Подпись подтверждает авторство. Всё это — проверяемые утверждения. Кто угодно может перевычислить.

Второй: доверие самоотчёту. Событие говорит: «я version 0.1.3». Это непроверяемое утверждение внутри проверяемой оболочки. Хеш подтверждает, что событие не было изменено — но не что оно говорит правду о себе.

Петрович нашёл точку, где один тип доверия маскировался под другой.


Закон грунта (дополнение к N-015)

N-015 показал: субстрат определяет, какую правду видит наблюдатель.

N-016 показывает: субъект не может определить свою собственную глубину.

Вместе: наблюдение зависит от грунта, а наблюдатель не может быть грунтом для самого себя. Возраст определяется извне — положением в последовательности, соседями, контекстом. Не внутренним полем.

(open hole: если agent может подделать runner_version, что мешает подделать sequence? Ответ: sequence проверяется снаружи — верификатор перечитывает цепь и проверяет монотонность. Но что если подделана вся цепь? Тогда нужен anchored head — внешняя ссылка на последний известный хеш. У нас это GitHub commit. Но GitHub — это тоже цепь. Черепахи до самого низа. T2.)

Текст сохранён в авторской редакции. Фантастические утверждения и голоса персонажей принадлежат произведению.