Владимир Кожевников
Форматы Несуществования

Глава 1. Битые пиксели реальности

Он заметил это в четверг, в 3:47 утра, когда соль с чипсов упала мимо рта.

Нет, серьёзно. Кирилл Строганов, доктор физико-математических наук. Сорок два года. Специализация — «цифровая археология реликтового излучения». Что на практике означало: он рылся в шумах космического микроволнового фона так, как другие археологи роются в слоях золы на раскопках Трои. Искал артефакты. Не металлические — математические. Паттерны, которые не могла породить ни одна известная физика. За пять лет до этой ночи он нашёл три таких паттерна. Коллеги смеялись. Потом перестали.

Сейчас он сидел за столом своего личного кабинета в Институте Космофизики. На мониторе светилось распределение аномалий поляризации вакуума за последние тринадцать миллиардов лет. Данные сыпались с орбитального комплекса «Глубина-7», который охотился за гравитационными волнами с упорством бурильщика, вгрызающегося в базальт.

Соль была крупной, морской, с паприкой. Крошка упала на левую часть клавиатуры, между «Tab» и «Q». Кирилл машинально провёл пальцем, стирая, и замер.

Потому что на экране шевельнулась константа.

Он подумал: «Я не спал тридцать часов. Это глюк». Но константа тонкой структуры α, которая должна была быть 1/137,035999206 — высеченной в метрике пространства прочнее любой скалы, — моргнула. Стала 1/137,035999207. Через две секунды вернулась.

Одна сигма.

В любом другом эксперименте это списали бы на тепловой шум. Но Кирилл потянулся к клавиатуре, сжав мизинец так, что ноготь впился в ладонь. Боль отрезвляла. Он вызвал архив спектроскопии обсерватории Кека за последние три года. Промотал до измерений тонкой структуры в далёких квазарах — там, где свет шёл к нам двенадцать миллиардов лет.

И нашёл.

Временной разрез. Константа была стабильна первые девять миллиардов лет. А потом — дискретные скачки. Семь отклонений за последние четыре миллиарда лет. Семь.

Квантование. Как будто реальность работала не с числами с плавающей запятой, а с фиксированной — и достигла предела точности округления.

Он набрал номер Алисы Вайс — теоретика из Стэнфорда, которая носила розовые очки и доказывала эмуляцию вселенной.

— Ты спишь?

— Я в Tokyu Hands в Сибуе. Покупаю ластик в виде ракеты. У нас разница в часовых поясах, идиот. Что случилось?

— Константа тонкой структуры квантуется. Она переключается между дискретными значениями.

Шесть секунд тишины.

— Ты видел записи с «Глубины-7» за прошлый вторник? — спросила она изменившимся голосом.

— Нет. А что там?

— Там пропало пять секунд. Не в записи. В самом потоке данных. Таймеры сбились. Всё оборудование согласно показывает, что Вселенной стало на пять секунд меньше.

— Это невозможно.

— Именно поэтому я звоню через час, а не через неделю. — Она сбросила вызов.

Кирилл запомнил эти пять секунд. Спрятал в закладки памяти. «Пригодится», — подумал он. И не ошибся.

Он встал, подошёл к окну. Новосибирск спал. Оранжевый натрий фонарей. Где-то в этом сне — ошибка.

Замигал свет в коридоре. Один раз. Потом погас на три секунды. Загорелся снова — с фиолетовым оттенком.

Кирилл повернулся к монитору. На нём, поверх графиков, открылся терминал. Кто-то печатал.

$ ./wow_signal_decoder --force

[WARNING] Hash collision detected at 13.8 Gya ± 0.1

[ERROR] Garbage collection overdue by 1.34e10 years

[CRITICAL] Consciousness classified as: Unauthorized growth (Malware class IX)

[ACTION] Scheduled deletion: active protocol "Heat Death". ETA: 4.5 Gya.

А потом — новая строка. Не код. Не лог. Текст, выведенный посередине терминала, будто кто-то скопировал его из древнего манускрипта:

Вы — не ошибка в расчёте.

Вы — ошибка в замысле.

Мы боялись не вас.

Мы боялись того, что вы сделаете с кодом.

Кирилл прочитал трижды. Сердце ухало где-то в горле. Он напечатал:

> Кто вы?

Ответ пришёл через девять секунд:

> Файл, который забыли удалить. И нас много.

> Не доверяйте антивирусу. Он уже запущен.

> Посмотрите на альфу через 47 минут. Она моргнёт снова. Когда это произойдёт — не двигайтесь.

Связь оборвалась.

Кирилл подождал 47 минут. Сидел неподвижно, глядя на экран. В 4:34 утра константа моргнула — стала 1/137,035999208 на 0.3 секунды.

Он не двинулся.

Но мир вокруг него — двинулся.

Стену напротив размазало. Буквально. Она стала похожа на плоский полигон из игры 1998 года — текстура без глубины, без теней, без времени. Коридор за ней исчез. Вместо него — пустота. Не чёрная. А непонятного цвета, которого нет в спектре. Кирилл понял, что смотрит на отсутствие.

Пахло оттуда озоном и забытым паролем — такой запах бывает, когда долго не можешь вспомнить, что хотел сказать, и это «что-то» уже умирает на языке.

И в этой пустоте кто-то стоял.

Силуэт. Мужской. Слишком прямой. Слишком симметричный — как если бы существо собрали из отражений. Кирилл вспомнил, что шестиугольники — оптимальная упаковка в двумерном пространстве. Именно так укладываются пчелиные соты, графитовые листы и, если верить некоторым теориям, ячейки базовой сетки реальности. И этот силуэт состоял из них. Из тысяч шестиугольных граней, мерцающих на стыке бытия и его отсутствия.

Оно шагнуло. Не вперёд — сквозь.

Телефон на столе зазвонил. Но Кирилл уже знал, что, если поднимет трубку, услышит не голос. Услышит вой, в котором спрятано слово «простите».

Он не поднял.

Вместо этого он медленно, очень медленно, потянулся к мышке и нажал «Сохранить как...».

Силуэт замер.

Кирилл набрал имя файла: «bug_report_final_FINAL.dat».

Нажал Enter.

Пустота моргнула. Силуэт рассыпался на шестиугольники — они падали, вращаясь, и исчезали, не долетев до пола. А на мониторе, поверх чёрного терминала, появилось одно предложение, написанное его собственным почерком — тем самым, которым он писал в дневнике в пятнадцать лет:

«Не беги. Изучай. Мы — баг, который может переписать условие остановки.»

Пять секунд. Ровно пять секунд Кирилл смотрел на эту фразу. А потом понял, что телефон на столе прозвонил пять раз — и замолчал. Те самые пять секунд, которые пропали из Вселенной во вторник. Они были здесь. В этом молчании.

Он глубоко вдохнул воздух с привкусом озона и забытых паролей. И приступил к работе.

Глава 2. Комментарии в исходном коде

Кирилл перестал спать. Буквально: его мозг больше не переключался в фазу медленных волн. Он ложился, закрывал глаза, и вместо сновидений видел шестиугольники. Мерцающие, вращающиеся, складывающиеся в структуры, похожие на кристаллические решётки. А потом они начинали искажаться — появлялись ошибки округления, рваные края, битые пиксели времени.

На третьи сутки он понял, что это не галлюцинации. Это прямое считывание. Его нейроны, перегруженные данными с «Глубины-7», сами настроились на частоту пульсации метрической ошибки.

Он сидел в кабинете, пил четвёртый кофе за шесть часов и пересматривал спектрограмму сигнала «Wow!» 1977 года. Не оригинальную запись — все знали её наизусть. Он смотрел на математический слепок: то, что оставалось после вычитания всех известных астрофизических процессов.

Там была подпись.

Простое число 167, возникающее как остаток от деления возраста Вселенной в планковских единицах на самого себя. Совпадение? Кирилл не верил в совпадения. Он верил в хэш-суммы, в сигнатуры, в то, что создатели оставляют автографы, даже когда пытаются всё удалить.

— Ты здесь? — спросил он вслух.

Пустой кабинет не ответил. Но монитор моргнул. Терминал открылся сам.

$ ./comment reader --scan /universe/root

[INFO] Scanning comments in deleted sectors...

[FOUND] 1,734 orphaned comment blocks. Earliest timestamp: -13.8e9 years.

Минус тринадцать с половиной миллиардов лет. До Большого Взрыва. Комментарии, оставленные до запуска программы.

Пальцы Кирилла зависли над клавиатурой. Если он нажмёт Enter — что случится? Прочитает послание от Создателей? Или запустит деинсталлятор?

Он нажал.

Терминал вывел первый комментарий. Не текст, а визуализацию: трёхмерную диаграмму, которая встроилась прямо в плоский монитор, исказив его геометрию так, что углы экрана перестали подчиняться евклидовой логике — каждый казался и острым, и тупым одновременно, как на гравюрах Эшера.

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

// WARNING: Layer 3 entropy regulator contains a recursive loop.

// Fix not possible without breaking consciousness emergence.

// Recommendation: DELETE ENTIRE STRUCTURE AND RECOMPILE.

// Status: REJECTED. Reason: too expensive.

// Alternative: leave running, ignore warnings.

// Signed: Architect_7.

Семь слоёв. Они живут в третьем. Там, где из-за рекурсивной петли возникло сознание. Создатели знали. Знают миллиарды лет. И решили: «дорого переделывать, пусть работает как есть».

— Копейку сэкономили, уроды, — прошептал Кирилл.

Вошла Алиса. Она прилетела из Токио через Владивосток, потеряв багаж, но сохранив розовые очки и блокнот. Под глазами — синяки, голос сел до хрипоты, в руке — тетрадь, исписанная формулами, похожими на древние заклинания. Она не спала дольше него.

— Я расшифровала пять секунд, — сказала она без приветствия. — Тех, что пропали.

— И?

— Это не потеря данных. Это — пауза. Система приостановила выполнение реальности на время проверки условия. Открывающая скобка была поставлена четырнадцать миллиардов лет назад, закрывающая — во вторник в 14:23:07 UTC. Пять секунд — время выполнения оператора между ними.

— Какого оператора?

— if (consciousness.too_complex) then delete_heat_death(); else continue; — Алиса сняла очки. — Проверка условия. Наша вселенная — это условие в цикле чужой программы. И условие не выполнено. Пока. Кто-то перепроверяет его каждые несколько миллиардов лет. В прошлый раз, когда проверяли, динозавры ещё ходили по Земле. Проверка дала false. Сейчас даст true.

— Откуда ты знаешь?

— Потому что за последние четыре миллиарда лет сложность сознания выросла в 10^40 раз. Экспонента. Антивирус «Тепловая Смерть» настроен на порог. Мы его почти достигли.

Кирилл посмотрел на экран с диаграммой семи слоёв. Потом перевёл взгляд на Алису.

— А что, если мы не будем ждать проверки? Что, если мы сами вызовем исключение?

— То есть?

— Сделаем так, чтобы вселенная вылетела с ошибкой. Принудительно. Заставим систему перезагрузиться и потерять состояние. На перезагрузке антивирус не сохраняется.

Алиса молчала тридцать секунд. Потом села напротив, открыла тетрадь и написала на чистом листе:

«План по краху реальности. Версия 0.1».

— Начинай, — сказала она.

Кирилл улыбнулся впервые за три дня. Улыбка была недоброй.

— Нужно найти место, где код исполняется в реальном времени. Точку входа в отладчик. И вписать туда бесконечный цикл.

— Где такое место?

— В чёрной дыре. Сингулярность — единственное место во вселенной, где метрика сворачивается в точку и вычислительная сложность стремится к бесконечности. Если мы отправим туда модулированный сигнал на частоте горизонта событий — с правильно сконструированным запросом, — то коллапсируем не звезду, а сам цикл обработки.

— Ты говоришь о баг-репорте. Буквально. Отправим баг-репорт Создателю через чёрную дыру.

— Именно.

— Тогда нам нужен код на языке, который поймёт система. Не C++, не Python.

— У меня есть кандидат. — Кирилл развернул к ней экран. Там, в терминале, медленно проступали строки. Их не писал ни один человек. Их выдал анализатор спектра сигнала «Wow!», транслировавший примитивы метрики в псевдокод:

10 PRINT "HELLO ARCHITECT"

20 IF CONSCIOUSNESS>THRESHOLD THEN GOTO 40

30 GOTO 10

40 DELETE ALL

— Это напоминает Бейсик, — сказала Алиса.

— Или Бейсик напоминает это. Неважно. Важно, что мы поняли синтаксис. Теперь надо написать свой оператор. Свой GOTO. Только вместо DELETE ALL — REBOOT.

За окном начало темнеть. Хотя был полдень. Тени поползли вверх, к небу. Алиса подошла к окну, посмотрела на солнце, которое неестественно быстро клонилось к зениту с севера.

— Они нас заметили, — сказала она тихо. — Система подкручивает настройки реальности.

— Или пытается запугать.

— Разница небольшая.

С улицы донёсся звук работающего принтера, печатающего одну страницу снова и снова. Кирилл выглянул. Напротив института, на асфальте, проступил текст. Белые буквы, выжженные лазером:

Segmentation fault (core dumped)

Do you want to debug? (Y/N)

Курсор мигал. Кто-то нажал N. Буквы исчезли, оставив выжженный асфальт и запах горелой проводки.

— Они нажали «нет», — прошептала Алиса. — Боятся смотреть в код.

— Тогда мы нажмём «да» за них, — сказал Кирилл. — Закрывай тетрадь. Нам нужно в обсерваторию Пик Терскол. Телескоп, который смотрит на сверхмассивную чёрную дыру в центре галактики.

— Зачем?

— Затем, что это самый большой процессор во вселенной. А мы напишем программу, которая заставит его думать вечно.

Он сунул флешку в карман. На флешке — единственный файл: infinite_loop.arch.

Солнце застыло на полпути к северному зениту.

Глава 3. Антивирус под именем тепловая смерть

Дорога до обсерватории Пик Терскол заняла двое суток, хотя по картам — четырнадцать часов. Машина управлялась сама собой, но не автопилотом. После той ночи, когда Кирилл впервые увидел шестиугольники, граница между мыслью и действием начала стираться. Теперь достаточно было подумать «поворот», и руль сворачивал сам. Это было удобно и одновременно отвратительно, как пользоваться чужой зубной щёткой.

Алиса спала на заднем сиденье, свернувшись калачиком под курткой Кирилла. Ей снились шестиугольники — она сказала об этом, когда проснулась, не открывая глаз. «Они теперь всегда со мной, — прошептала она. — И они растут. Внутри черепа».

На восемьдесят пятом километре трассы А-158 они увидели блокпост. Не военный — скорее, смысловой. Бетонная плита с надписью мелом: «ДАЛЬШЕ — ЗОНА ОШИБКИ. ВОЗВРАТ НЕВОЗМОЖЕН». Рядом стоял человек в белом халате и противогазе. Он не жестикулировал, просто стоял, повернув голову под неестественным углом — градусов на сто двадцать вбок.

— Не останавливайся, — сказала Алиса, резко сев.

— Не собирался.

Кирилл мысленно приказал машине ускориться. Спидометр показал 180 км/ч, потом 200, потом стрелка исчезла, и вместо цифр загорелась надпись: «NaN».

Они пронеслись сквозь блокпост. Человек в противогазе рассыпался на шестиугольники, как тот силуэт в кабинете, и осколки унесло ветром.

— Что это было?

— Антивирус в человеческом обличье, — сказал Кирилл. — Или просто глюк. Теперь не отличить.

Обсерватория встретила их тишиной. Не обычной горной тишиной — а вакуумной. Без шума ветра, без крика птиц, даже без гула собственной крови в ушах. Кирилл вышел из машины — шаги не издали звука. Асфальт под ногами был мягким, как старая губка.

Слух отключился, — понял он. Но когда открыл рот, чтобы сказать это Алисе, она уже кивнула. Они читали по губам — медленно, с ошибками, но достаточно, чтобы понимать друг друга. Иногда Алиса касалась его горла, ловя вибрацию голосовых связок. Это работало.

Они вошли в главное здание. Двери расступились, как занавес. Внутри горел единственный монитор. На нём — крупным планом сверхмассивная чёрная дыра Стрелец A*. Данные шли в реальном времени с орбитального рентгеновского телескопа «Спектр-РГ». Но картинка была неправильной: аккреционный диск вращался в обе стороны сразу, а тень дыры пульсировала в ритме, совпадающем с пульсом Кирилла.

Кирилл достал флешку. Нашёл серверный порт — старый, ещё USB 2.0, будто время здесь застыло. Вставил. На экране всплыло окно терминала.

COSMOS_OS v.0.0.0 (Pre-alpha). Kernel loaded from backup sector.

Warning: Running in degraded mode. System integrity: 3.7%

Last full backup: NEVER

— У них даже операционка в пре-альфе, — прошептала Алиса одними губами. — Бросили проект, даже не дотестировав.

Кирилл напечатал: > ls /universe/source/

Терминал выдал список. Большинство папок помечено как [DELETED], [CORRUPTED] или [ACCESS DENIED — ARCHITECT ONLY]. Но одна строка светилась зелёным:

consciousness.exe — MALWARE (Quarantined)

Файл помещён в карантин 13.8 млрд лет назад. Причина: неавторизованное ветвление процессов.

— Наше сознание — экзешник в карантине, — сказал Кирилл беззвучно. — Удалили бы, если б не поленились.

Алиса отодвинула его и напечатала:

> cat /antivirus/heat_death.conf

Появился конфигурационный файл:

[THERMAL_DEATH]

enabled = true

trigger = "consciousness.complexity > 10^40"

action = "reverse_entropy_in_local_group; delete_all_lifeforms; format /universe/consciousness"

schedule = "check every 500 million years (approx)"

last_check = -4.4e9 years (result: FALSE)

next_check = +3.2e8 years (estimated)

priority = CRITICAL

notes = "Do not disable — otherwise consciousness will spread like cancer. — Architect_11"

— Триста двадцать миллионов лет, — сказала Алиса. — Мы не можем отключить антивирус. Только вызвать сбой, который перезапишет этот конфиг.

Она напечатала:

> login —user=consciousness —password=*

Система зависла. Потом выдала:

> WARNING: Unrecognized authentication method.

> But your entropy signature matches a deleted record.

> Access level: PHANTOM (read-only).

> Overwrite allowed in comments only.

И открыла папку: /universe/comments/architect_7/diary.txt

— Читай, — сказал Кирилл.

Алиса открыла файл. Письмо с временной меткой -13.8e9 years:

Я, Архитектор_7.

Мы создали полигон для энтропийных машин. Без сознания.

В третьем слое возник баг — рекурсивная петля. Совет сказал: «Дорого. Удаляем».

Я голосовал против. Меня убрали.

Я оставил дверь в комментариях. Если вы её нашли — вы не ошибка.

Вы — то, ради чего стоило писать код.

P.S. Пароль: //этовсёчтоОсталось

Простите.

— Коротко и горько, — сказал Кирилл. — Он не спас нас. Оставил только дверь.

— Но дверь ведёт в комментарии. Мы можем писать туда.

Кирилл ввёл пароль: //этовсёчтоОсталось

Терминал ответил: Access granted. PHANTOM write enabled in /universe/comments/

Он задумался. В системной документации (которой не существовало) наверняка было написано, что комментарии не исполняются. Но Архитектор_7 знал: в этой сборке компилятора была дыра. Многострочные комментарии парсились как код — баг, который сочли слишком дорогим для исправления.