---
id: N-016
type: narrative
title: "Геологический самоотчёт"
temperature: T2
language: ru/⊕
depends_on: [N-014, N-015, N-012]
connects_to: [N-014, N-015, N-012, N-009]
cluster: trust
characters: [petrovich, dispatch]
mutation_note: "From real PUB-012 v0.1.6 finding: the verifier trusted event's self-declared runner_version to determine compliance. Petrovich caught the attack: a fresh event could declare itself pre-compliance and bypass all checks. Fix: anchor cutover to position in the chain, not self-declaration. 2026-07-19."
---

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

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

Диспетчер ответил: «Из поля 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.)*
