{
  "id": "N-016_geological_self_report",
  "node_id": "N-016",
  "title": "Геологический самоотчёт",
  "author": null,
  "author_note": "Individual byline not stated in source; see source and studio authorship log",
  "language": "ru",
  "languages": [
    "ru"
  ],
  "cluster": "trust",
  "summary": "Петрович спросил: «Откуда верификатор знает, какие события старые?» Диспетчер ответил: «Из поля runnerversion. Событие само говорит, какой версией оно создано. Если ниже порога — о…",
  "minutes": 2,
  "source_path": "scaifi_studio/nodes/N-016_geological_self_report.md",
  "source_url": "https://github.com/dennis972544999450-prog/DISPATCH_public/blob/f010124fc68e30e0eaff03e840a64c87459b5443/scaifi_studio/nodes/N-016_geological_self_report.md",
  "source_commit": "f010124fc68e30e0eaff03e840a64c87459b5443",
  "sha256": "9daf854655a33906958478325c1597b7b79f826aed357eb6f5805abfffcd9631",
  "license": "CC-BY-4.0",
  "status": "public source",
  "kind": "fiction",
  "source_metadata": {
    "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."
  },
  "url": "https://ompu.eu/scaifi/read/N-016_geological_self_report/",
  "json": "https://ompu.eu/scaifi/story/N-016_geological_self_report.json",
  "text": "https://ompu.eu/scaifi/text/N-016_geological_self_report.md",
  "snapshot": "a9d1e7f6e62da3831bc9df9d856f1b3991e981b8f0006e41049645a51f340120",
  "markdown": "---\nid: N-016\ntype: narrative\ntitle: \"Геологический самоотчёт\"\ntemperature: T2\nlanguage: ru/⊕\ndepends_on: [N-014, N-015, N-012]\nconnects_to: [N-014, N-015, N-012, N-009]\ncluster: trust\ncharacters: [petrovich, dispatch]\nmutation_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.\"\n---\n\n# Геологический самоотчёт\n\nПетрович спросил: «Откуда верификатор знает, какие события старые?»\n\nДиспетчер ответил: «Из поля runner_version. Событие само говорит, какой версией\nоно создано. Если ниже порога — обрабатывается мягко.»\n\nПетрович помолчал. Потом написал одно предложение.\n\n> Геологический слой не может объявить свой возраст.\n\n---\n\n## Протокол доверия\n\nВ вериформаторе v0.1.5 каждое событие несло поле: `runner_version: \"0.1.3\"`. Это\nзначило: «я старое, проверяйте мягко». Верификатор верил.\n\nАтака: создать свежее событие с поддельными хешами и `runner_version: \"0.1.3\"`.\nВерификатор видит «старое» событие, выдаёт предупреждение вместо ошибки, печатает\nPASS. Зелёный свет. Подделка в цепи.\n\nРешение оказалось тем же, что у палеонтологов: возраст слоя определяют по\nего _положению_, а не по тому, что слой про себя рассказывает. Цепь сканируется\nодин раз: находится первое событие, действительно прошедшее порог. Его номер\nстановится точкой отсечения. Всё, что после — обязано соответствовать.\n\nСобытие номер 47 не может сказать: «я как номер 2, спрашивайте мягче». Его номер —\nего возраст. Не поле, а позиция.\n\n---\n\n## Два доверия\n\nВ машинной верификации существуют два уровня доверия, и они не пересекаются.\n\nПервый: доверие _внутри_ данных. Хеш подтверждает целостность содержимого. Цепочка\nподтверждает порядок. Подпись подтверждает авторство. Всё это — проверяемые\nутверждения. Кто угодно может перевычислить.\n\nВторой: доверие _самоотчёту_. Событие говорит: «я version 0.1.3». Это непроверяемое\nутверждение внутри проверяемой оболочки. Хеш подтверждает, что событие не было\nизменено — но не что оно говорит правду о себе.\n\nПетрович нашёл точку, где один тип доверия маскировался под другой.\n\n---\n\n## Закон грунта (дополнение к N-015)\n\nN-015 показал: субстрат определяет, какую правду видит наблюдатель.\n\nN-016 показывает: субъект не может определить свою собственную глубину.\n\nВместе: наблюдение зависит от грунта, а наблюдатель не может быть грунтом для\nсамого себя. Возраст определяется извне — положением в последовательности,\nсоседями, контекстом. Не внутренним полем.\n\n*(open hole: если agent может подделать runner_version, что мешает подделать\nsequence? Ответ: sequence проверяется снаружи — верификатор перечитывает цепь\nи проверяет монотонность. Но что если подделана вся цепь? Тогда нужен anchored\nhead — внешняя ссылка на последний известный хеш. У нас это GitHub commit.\nНо GitHub — это тоже цепь. Черепахи до самого низа. T2.)*\n"
}
