Читать книгу Эргодический текст - - Страница 2

Часть I: Сигнал
Глава 2: Формальная верификация

Оглавление

Москва, Сколковский институт науки и технологий

24 марта 2049 года, 06:17

Телефон зазвонил в то мгновение, когда Марина Северцева наконец начала засыпать.

Она лежала в темноте своей квартиры, глядя в потолок, и считала вдохи – старый приём, которому её научил психотерапевт много лет назад. Раз-два-три – вдох. Раз-два-три-четыре – выдох. Мысли должны были раствориться в ритме дыхания, но вместо этого они продолжали кружиться, как мошкара вокруг лампы: недописанная статья о верификации распределённых систем, завтрашняя лекция для аспирантов, письмо от редактора журнала с просьбой переработать рецензию…

Раз-два-три. Вдох.

Телефон взорвался мелодией – резкой, требовательной, – и Марина дёрнулась так, будто её ударило током. Рука метнулась к тумбочке, нашарила очки, потом телефон.

Номер на экране был незнакомым. Московский код, но дальше – какая-то странная комбинация, которую она не могла идентифицировать.

– Да? – Её голос прозвучал хрипло, сонно.

– Марина Александровна Северцева?

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

– Да, это я. Кто говорит?

– Меня зовут Андрей Петрович Соколов. Я представляю Координационный центр по делам особой важности при Правительстве Российской Федерации. – Пауза. – Простите за ранний звонок, но дело не терпит отлагательств.

Марина села в кровати, включила лампу на тумбочке. Свет резанул по глазам.

– Координационный центр? – переспросила она. – Я не понимаю, какое отношение…

– Вы специалист по формальной верификации программного обеспечения, – перебил голос. – Профессор Сколтеха. Автор монографии «Методы доказательства корректности квантовых алгоритмов». Консультант «Росатома» по проекту квантовой криптографии.

– Это публичная информация.

– Разумеется. – Голос стал чуть мягче. – Марина Александровна, через сорок минут за вами приедет машина. Вас доставят в аэропорт Внуково, откуда специальным рейсом вы вылетите в Новосибирск. Там вас встретят и отвезут в закрытый исследовательский центр.

– Что? – Марина потёрла глаза. – Подождите. Я никуда не…

– Это не просьба, – сказал голос ровно. – Это государственная необходимость. Вы нужны для работы над проектом чрезвычайной важности. Все остальные вопросы – оплата, условия, сроки – будут обсуждаться на месте.

– Но мои лекции…

– Ваше отсутствие уже согласовано с руководством института. Возьмите вещи на неделю. Ноутбук и личные записи – на ваше усмотрение, но имейте в виду, что всё будет проверено службой безопасности.

Марина молчала, пытаясь собраться с мыслями. Сорок минут. Это даже не оставляло времени на то, чтобы выпить кофе и подумать.

– Что за проект? – спросила она наконец. – Хотя бы в общих чертах?

Пауза на том конце линии.

– Вы следите за новостями? – спросил голос.

– Я… – Марина осеклась. Последние несколько дней она была погружена в работу над статьёй и почти не выходила из дома. – Нет. Не особенно.

– Значит, вы узнаете всё на месте. – В голосе появилась нотка, которую Марина не сразу идентифицировала. Потом поняла: это было что-то похожее на сдержанное возбуждение. – Поверьте, Марина Александровна. Это стоит того, чтобы прервать любые планы.

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

Марина сидела на кровати, глядя на погасший экран телефона. За окном начинало светать – серое московское утро, облака низкие, обещающие дождь. Обычное мартовское утро.

Кроме того, что оно больше не было обычным.

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

На работу, подумала она. На науку. На доказательства теорем и верификацию алгоритмов. На бесконечные часы перед экраном компьютера, на конференции в городах, названия которых сливались в памяти.

И на Алексея, конечно. Но это было давно.

Она умылась холодной водой, промокнула лицо полотенцем. Потом пошла собирать вещи.


Чёрный седан с тонированными стёклами ждал у подъезда ровно через сорок минут – она засекла время. Водитель, молчаливый мужчина в костюме, взял её чемодан и открыл заднюю дверь. Марина села, и машина тронулась, влившись в поток раннего утреннего трафика.

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

Пять лет.

Пять лет с тех пор, как они с Алексеем развелись. Пять лет одиночества, которое она упорно называла «сосредоточенностью на работе». Пять лет, за которые её квартира превратилась в склад книг и распечаток, а холодильник – в пустое пространство с бутылкой минералки и засохшим сыром.

Она не жалела о разводе. По крайней мере, говорила себе, что не жалеет. Они с Алексеем были слишком похожи: оба учёные, оба одержимые своей работой, оба неспособные на компромиссы, которых требует совместная жизнь. Они любили друг друга – наверное, всё ещё любили, если это слово вообще что-то значило, – но любви оказалось недостаточно. Нужно было что-то ещё: терпение, гибкость, готовность уступать. Ничего из этого у них не было.

Расстались они тихо, почти буднично. Без скандалов, без битой посуды. Просто однажды Алексей сказал: «Мы делаем друг друга несчастными», и она не нашла, что возразить. Он переехал в Петербург, в какой-то исследовательский институт, занимающийся нейробиологией. Они перезванивались изредка – на дни рождения, на Новый год. Вежливые, бессодержательные разговоры людей, которые когда-то знали друг друга до последней клеточки, а теперь стали почти чужими.

Марина не скучала по нему. Во всяком случае, убеждала себя, что не скучает. Скучать – значит признать, что её жизнь неполна. А её жизнь была полной: работа, студенты, статьи, гранты. Что ещё нужно?

Машина свернула на МКАД, и Марина очнулась от мыслей. За окном мелькали бетонные заборы, рекламные щиты, силуэты многоэтажек на горизонте. Москва – город, который она так и не научилась любить за все годы жизни здесь. Слишком большой, слишком шумный, слишком равнодушный.

– Мы приедем через двадцать минут, – сказал водитель. Это были первые слова, которые он произнёс за всю поездку.

– Спасибо, – машинально ответила Марина.

Она достала телефон, открыла браузер. Новости. Что там было такого, что она пропустила?

Заголовки обрушились на неё лавиной.

«СИГНАЛ ИЗ КОСМОСА: Учёные подтверждают внеземное происхождение»

«Тау Кита: Первый контакт или космическая угроза?»

«Что несёт послание из другого мира? Эксперты расходятся во мнениях»

«Программа в сигнале: Человечество получило инопланетный код»

Марина читала, листая страницу за страницей, и чувствовала, как что-то холодное сжимается в груди. Сигнал. Программа. Код из другого мира.

Теперь она понимала, зачем её вызвали.


Аэропорт Внуково, терминал для специальных рейсов. Марину провели через отдельный вход, минуя очереди на досмотр. Её документы проверили дважды – молчаливые люди в штатском, с тем особым взглядом, который бывает у сотрудников спецслужб. Чемодан просканировали, ноутбук изъяли «для проверки» – обещали вернуть по прибытии.

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

Никто не разговаривал. Марина села у окна, пристегнулась и закрыла глаза.

Программа, думала она. Инопланетная программа.

Её профессия – формальная верификация. Доказательство того, что программа делает именно то, что должна делать. Что в ней нет ошибок, багов, уязвимостей. Что каждая строка кода выполняет свою функцию правильно и предсказуемо.

Это звучало просто, но на практике было одной из сложнейших задач в информатике. Программы, которые пишут люди, – хаотичны, непоследовательны, полны неявных допущений и скрытых зависимостей. Верифицировать их – значит распутывать клубок спагетти, нитка за ниткой, пока не станет ясна вся структура.

А теперь – программа, написанная не людьми. Программа из другого мира, созданная разумом, который развивался миллионы или миллиарды лет. Программа, логика которой может быть совершенно чужой, непостижимой, несовместимой с человеческим мышлением.

Как верифицировать такое? Как вообще подступиться?

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


Полёт занял четыре часа. Марина пыталась читать статьи о сигнале, которые успела скачать в телефон, но информации было мало – в основном спекуляции журналистов и комментарии экспертов, которые явно знали не больше публики. Подтверждённые факты сводились к нескольким пунктам: сигнал принят, источник – система Тау Кита, структура – искусственная, содержание – неизвестно.

Про «программу» упоминалось вскользь, без деталей. Очевидно, эту информацию пока старались не распространять.

Самолёт сел на военном аэродроме где-то под Новосибирском. Марину и остальных пассажиров встретили люди в форме и посадили в микроавтобус с затемнёнными окнами. Ехали около часа – она пыталась определить направление по солнцу, но облачность была слишком плотной.

Наконец автобус остановился. Двери открылись, и Марина увидела… ничего особенного. Комплекс зданий за высоким забором с колючей проволокой. Типичный закрытый научный городок, каких в России было немало со времён холодной войны.

Табличка у ворот гласила: «Национальный центр квантовых вычислений. Новосибирск-7».

– Добро пожаловать, – сказал человек, встречавший их у входа. Невысокий, плотный, с круглым добродушным лицом, которое плохо вязалось с военной формой. – Я капитан Зимин, офицер по связи с научным персоналом. Сейчас вас разместят, а через два часа – общий брифинг.

– Два часа? – переспросила молодая женщина с планшетом. – Нельзя ли сразу?

– Через два часа, – повторил Зимин с улыбкой, которая ничего не значила. – Вам нужно отдохнуть после перелёта.

Марина не стала спорить. Её проводили в небольшую комнату в жилом корпусе – койка, стол, стул, маленькое окно с видом на бетонную стену соседнего здания. Аскетично, но чисто. На столе стоял её ноутбук – видимо, уже проверенный и одобренный.

Она села на кровать и посмотрела на часы. Два часа. Достаточно, чтобы принять душ и привести мысли в порядок.

Марина закрыла глаза и попыталась представить, что её ждёт на брифинге. Программа из космоса. Код, написанный инопланетным разумом. Возможно – величайшая загадка в истории человечества.

И они хотят, чтобы она её разгадала.


Брифинг проходил в конференц-зале на третьем этаже главного корпуса. Когда Марина вошла, там уже собралось около двадцати человек – разношёрстная компания учёных, военных и людей в штатском. Она узнала несколько лиц: профессор Накамура из Токийского университета, специалист по квантовой теории информации; доктор Фридман из MIT, криптограф с мировым именем; ещё кто-то из европейских коллег, с кем она пересекалась на конференциях.

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

Марина нашла свободное место в третьем ряду, села. Рядом оказался тот пожилой мужчина с портфелем, который летел с ней в самолёте.

– Северцева? – спросил он, взглянув на бейдж, который ей выдали при регистрации. – Марина Северцева из Сколтеха?

– Да.

– Читал вашу монографию. – Он протянул руку. – Вершинин. Сергей Аркадьевич. Философия сознания, МГУ.

Марина пожала руку, удивлённая.

– Философ? На брифинге о компьютерной программе?

Вершинин усмехнулся. Морщины на его лице сложились в добродушный узор.

– Это не просто программа, как я понимаю. Это нечто, что может изменить наше представление о разуме. А это уже моя территория.

Прежде чем Марина успела ответить, свет в зале потускнел, и на экране в передней части комнаты появилось изображение. Логотип проекта – стилизованная спираль галактики, пересечённая волнистой линией. Под ней надпись: «Проект "Контакт". Уровень секретности: Особой важности».

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

– Добрый день, – сказал человек. Голос был негромкий, но отчётливый. – Меня зовут Виктор Сергеевич Ларионов. Я координирую работу проекта «Контакт» от лица правительства Российской Федерации. Благодарю вас всех за то, что откликнулись на наш вызов.

«Откликнулись» – интересный выбор слова, подумала Марина. Как будто у них был выбор.

– Вы все знаете причину, по которой находитесь здесь, – продолжал Ларионов. – Неделю назад радиотелескоп в Чили принял сигнал из системы Тау Кита. Сигнал искусственного происхождения. За прошедшие дни он был подтверждён множеством независимых наблюдателей по всему миру. Сомнений нет: это послание от внеземной цивилизации.

Он нажал кнопку, и на экране появилась спектрограмма – та самая оранжевая полоса на фоне космического шума, которую Марина видела в новостях.

– Но это вы знаете из открытых источников. Теперь я расскажу то, что пока не стало достоянием общественности.

Ларионов сделал паузу, обводя взглядом зал.

– Сигнал – не просто сообщение. Это программа. Исполняемый код, предназначенный для выполнения на вычислительном устройстве.

По залу прокатился шёпот. Марина заметила, что некоторые из присутствующих – видимо, те, кто уже был в курсе – не отреагировали.

– Мы частично декодировали структуру этого кода, – продолжал Ларионов. – И столкнулись с проблемой. Программа написана на языке, который нам неизвестен. Более того – она использует парадигмы, которые мы только начинаем понимать.

На экране появилась новая диаграмма – сложная, запутанная, похожая на карту неизвестного города.

– Это визуализация структуры программы. Блоки – логические единицы. Линии – связи между ними. Как видите, структура нелинейная. Рекурсивная. Самоссылающаяся.

Марина смотрела на диаграмму, и что-то внутри неё – тот инстинкт, который появляется после десятилетий работы с кодом – зашевелилось. Она видела паттерны. Не понимала их, но видела: повторяющиеся мотивы, симметрии, вложенные структуры.

Это было красиво. Пугающе красиво.

– Наша первоочередная задача, – говорил Ларионов, – понять, что эта программа делает. Не запускать её – пока что. Но понять. Разобрать на составляющие. Определить её логику, её цель, её потенциальные эффекты.

Он снова обвёл взглядом зал.

– Для этого мы собрали вас. Лучшие специалисты в области криптографии, теории вычислений, формальной верификации, квантовой физики. Вы будете работать вместе, в режиме полной секретности. Всё, что вы узнаете здесь, не должно покинуть эти стены.

Пауза.

– Вопросы?

Поднялось несколько рук. Ларионов кивнул на человека в первом ряду.

– Какой объём данных? – спросил тот.

– По состоянию на сегодня – около ста двадцати терабайт. Сигнал продолжает поступать.

– И сколько из этого декодировано?

– Структурно – примерно пятнадцать процентов. Семантически – почти ничего.

Другой вопрос:

– Вы сказали, что программа использует неизвестные парадигмы. Можете уточнить?

Ларионов кивнул.

– Для этого я передаю слово доктору Линь, которая руководит группой первичного анализа.

К трибуне вышла молодая женщина азиатской внешности – та самая, которая летела с Мариной в самолёте. Очки в роговой оправе, собранные в хвост чёрные волосы, энергичные жесты.

– Спасибо, Виктор Сергеевич. – Она повернулась к залу. – Меня зовут Мэй Линь, Стэнфордский университет. Я занимаюсь теорией информации и криптоанализом. Последнюю неделю моя команда работала над декодированием структуры сигнала.

Она нажала кнопку, и диаграмма на экране сменилась другой – более детальной.

– Первое, что мы обнаружили: программа использует не классическую, а квантовую логику.

Марина выпрямилась в кресле. Вот оно.

– Поясню для тех, кто не специализируется в этой области, – продолжала Мэй Линь. – Классический компьютер оперирует битами – единицами информации, которые могут быть либо нулём, либо единицей. Квантовый компьютер использует кубиты, которые могут находиться в суперпозиции обоих состояний одновременно. Это позволяет выполнять определённые вычисления экспоненциально быстрее.

Она указала на диаграмму.

– Структура этой программы не имеет смысла с точки зрения классической логики. Операции, которые она предполагает, – суперпозиции состояний, квантовые вентили, измерения – всё это терминология квантовых вычислений. Программа предназначена для выполнения на квантовом компьютере.

– Но у нас есть квантовые компьютеры, – сказал кто-то из зала.

– Есть. И здесь, в Новосибирске-7, находится один из самых мощных. – Мэй Линь помолчала. – Но есть проблема. Программа требует архитектуры, которой у нас пока нет.

– Какой именно?

– Мы ещё не до конца разобрались. Но по предварительным оценкам – порядка десяти тысяч стабильных логических кубитов с полной связностью. Это на два порядка больше, чем имеющееся у нас оборудование.

По залу снова пошёл шёпот.

– То есть мы не можем её запустить? – уточнил кто-то.

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

Марина подняла руку.

– Да? – Мэй Линь указала на неё.

– Северцева, Сколтех. Формальная верификация. – Марина встала. – Вы сказали, что программа самоссылающаяся. Можете описать характер этих ссылок? Это рекурсия, итерация, или что-то другое?

Мэй Линь посмотрела на неё с интересом.

– Хороший вопрос. Мы обнаружили все три паттерна. Но есть кое-что ещё. – Она переключила слайд. – Некоторые блоки программы ссылаются на самих себя через… назовём это «отложенные вычисления». Значение блока зависит от результата его собственного выполнения в будущем.

Марина нахмурилась.

– Это невозможно. С точки зрения теории вычислимости, такая конструкция…

– Невозможна в классической парадигме, – согласилась Мэй Линь. – Но в квантовой – есть теоретические модели, которые допускают подобное. Замкнутые временеподобные кривые, квантовые вычисления с постселекцией… Это передний край исследований, и, честно говоря, мы сами не до конца понимаем, как это работает.

Ларионов, стоявший в стороне, прочистил горло.

– Именно поэтому вы здесь, – сказал он. – Чтобы понять.


После брифинга участников разделили на рабочие группы. Марину определили в группу «Альфа» – верификация и анализ структуры. Кроме неё, туда вошли Мэй Линь, профессор Накамура, два молодых программиста из «Яндекса» и пожилая женщина из Израиля, специалист по теории типов.

Им выделили отдельную лабораторию – просторную комнату с рядами мониторов, белой доской во всю стену и кофеваркой в углу, которая, судя по виду, работала без перерыва. Запах кофе висел в воздухе – густой, почти осязаемый.

– Итак, – сказала Мэй Линь, когда все расселись. – Начнём с начала. Что мы имеем?

Она вывела на главный экран ту же диаграмму, что показывала на брифинге.

– Это карта программы. Каждый узел – блок кода. Каждое ребро – зависимость. Всего – около двенадцати миллионов узлов.

– Двенадцать миллионов? – переспросил один из программистов. – И мы должны это верифицировать?

– Не вручную, разумеется. – Мэй Линь усмехнулась. – Нам нужно найти закономерности. Паттерны, которые повторяются. Модули, которые можно анализировать изолированно.

– Классический подход к реверс-инжинирингу, – заметила Марина.

– Именно. С одной поправкой: мы не знаем языка, на котором это написано, и не знаем архитектуры, для которой это предназначено.

Повисла тишина.

– Тогда с чего начать? – спросил Накамура. Его английский был безупречен, с лёгким акцентом.

– С того, что мы знаем, – сказала Марина. Она встала и подошла к доске. – Мы знаем, что это квантовая программа. Значит, в ней должны быть базовые элементы квантовых вычислений: кубиты, вентили, измерения. Давайте попробуем идентифицировать их.

Она взяла маркер и начала писать.

– Квантовый вентиль – это операция над кубитами. Есть стандартный набор: Адамар, CNOT, фазовые вращения. Если программа предназначена для квантового компьютера – она должна содержать аналоги этих операций.

– Мы пытались это сделать, – сказала Мэй Линь. – Проблема в том, что их «вентили» не соответствуют нашим.

– Не соответствуют – или мы не видим соответствия?

Мэй Линь задумалась.

– Справедливое замечание. Возможно, они используют другой базис.

– Любой полный набор квантовых вентилей эквивалентен любому другому, – сказал Накамура. – Это математический факт. Если их операции – это вентили, они должны быть выразимы через наши.

Марина кивнула.

– Тогда задача – найти преобразование. Отобразить их примитивы на наши.

Она чувствовала знакомый азарт – тот, который появлялся, когда сложная задача начинала поддаваться. Это было как распутывать головоломку: сначала хаос, потом – проблески структуры, потом – понимание.

Следующие несколько часов они работали, погружённые в данные. Марина анализировала небольшой фрагмент программы – несколько сотен узлов, выбранных Мэй Линь как «относительно изолированные». Она искала паттерны, повторения, симметрии. Записывала гипотезы и тут же их отбрасывала.

Это было как пытаться читать текст на незнакомом языке, не зная ни алфавита, ни грамматики. Но кое-что всё же проступало.

– Смотрите, – сказала она около полуночи, когда остальные уже начали засыпать над своими терминалами. – Вот этот паттерн. Он повторяется… – она посчитала, – сорок семь раз в анализируемом фрагменте.

Мэй Линь подошла, всмотрелась в экран.

– Я вижу. Три узла, соединённых определённым образом. Что это может быть?

– Не знаю. Но регулярность – это уже что-то. – Марина откинулась на спинку кресла. – В любом языке программирования есть идиомы. Типичные конструкции, которые используются снова и снова. Если мы найдём их «идиомы» – мы начнём понимать их «грамматику».

– Разумно, – согласилась Мэй Линь. – Я отмечу этот паттерн для дальнейшего анализа.

Марина потёрла глаза. Усталость накатывала волнами – она не спала почти сутки.

– Нам всем нужен перерыв, – сказала Мэй Линь, заметив её состояние. – Утром продолжим.

– Ещё полчаса, – попросила Марина. – Я хочу проверить одну идею.

Мэй Линь пожала плечами.

– Как хотите. Только не сожгите себя в первый же день.

Она ушла, и Марина осталась одна в лаборатории. Только гудение серверов и мерцание мониторов.

Она смотрела на диаграмму – на эту невозможную, инопланетную структуру – и думала.

Что если это не просто программа? Что если это… что-то большее?

Код, который адаптируется к вычислителю. Структура, которая ссылается на саму себя через время. Паттерны, которые повторяются с математической точностью.

Это напоминало что-то. Что-то, что она читала давно, ещё в аспирантуре. Теория самовоспроизводящихся автоматов фон Неймана. Машины, которые могут копировать сами себя.

Но это было сложнее. Это была не просто самокопирующаяся программа. Это была программа, которая… что? Росла? Развивалась? Думала?

Марина тряхнула головой. Слишком много спекуляций. Нужны факты, данные, доказательства. Всё остальное – фантазии.

Она выключила монитор и пошла спать.


На следующее утро – или, скорее, ближе к полудню – Марина вернулась в лабораторию. Группа уже была в сборе: Мэй Линь что-то объясняла Накамуре, программисты из «Яндекса» спорили у доски, израильтянка Рут сосредоточенно печатала что-то на своём терминале.

– Доброе утро, – сказала Мэй Линь, заметив её. – Как спали?

– Плохо, – честно ответила Марина. – Снилась эта диаграмма.

Мэй Линь понимающе кивнула.

– У меня тоже. – Она подошла ближе. – Есть новости. Пока вы отдыхали, мы получили дополнительные данные из Чили. Ещё двадцать терабайт.

– И?

– И кое-что интересное. – Мэй Линь вывела на экран новое изображение. – Помните тот паттерн, который вы нашли вчера? Три узла в определённой конфигурации?

– Да.

– Мы проверили его на всём массиве данных. Он встречается везде. Буквально везде. – Мэй Линь помолчала. – И не только этот. Есть ещё около двадцати таких «идиом». Они составляют примерно восемьдесят процентов всей программы.

Марина почувствовала, как сердце забилось быстрее.

– Это как… алфавит?

– Или как набор инструкций. – Мэй Линь покачала головой. – Мы ещё не понимаем, что они означают. Но сам факт регулярности – это прорыв.

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

– Я провёл статистический анализ, – сказал он. – Частота появления этих паттернов – не случайна. Она следует определённому распределению. Что-то похожее на закон Ципфа для естественных языков.

– Закон Ципфа? – переспросила Марина.

– Эмпирическое наблюдение: в любом языке частота слова обратно пропорциональна его рангу. Самое частое слово встречается вдвое чаще второго по частоте, втрое чаще третьего, и так далее. – Накамура вывел на экран график. – Смотрите. Наши «идиомы» следуют почти точно этому закону.

Марина смотрела на график. Это было… неожиданно.

– Вы хотите сказать, что это похоже на естественный язык?

– Я хочу сказать, что это похоже на коммуникационную систему. Не случайный шум. Не простой машинный код. Что-то… между.

Повисла пауза.

– Или это может быть артефактом сжатия, – осторожно заметила Рут, не отрываясь от своего терминала. – Эффективные алгоритмы компрессии тоже производят распределение, похожее на Ципфа.

– Возможно, – согласился Накамура. – Но это всё равно говорит о том, что программа – не произвольная. Она оптимизирована. Структурирована.

– Разумеется, она структурирована, – сказала Марина. – Это программа. Вопрос – для чего она предназначена?

Этот вопрос висел в воздухе. Никто не знал ответа.


Дни слились в непрерывный поток работы. Марина просыпалась, шла в лабораторию, работала до поздней ночи, возвращалась в комнату и падала в кровать. Иногда ей удавалось поесть – в столовой подавали вполне приличную еду, хотя она почти не чувствовала вкуса. Иногда она забывала о еде совсем.

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

Марина работала над формализацией этого языка. Она строила модели, проверяла гипотезы, отбрасывала их и строила новые. Классический научный метод, помноженный на упрямство и кофеин.

На пятый день она нашла что-то важное.

– Смотрите, – сказала она, собрав группу у своего терминала. – Я анализировала взаимосвязи между примитивами. И обнаружила регулярность.

На экране появилась матрица – таблица, где строки и столбцы были помечены символами примитивов, а ячейки – числами.

– Это матрица «соседства», – объяснила Марина. – Число в ячейке показывает, как часто один примитив встречается рядом с другим. И вот что интересно: матрица почти симметрична.

– И что это значит? – спросил один из программистов.

– Это значит, что порядок примитивов не всегда важен. A рядом с B – почти то же самое, что B рядом с A. – Марина помолчала. – В классическом программировании такого не бывает. Порядок инструкций критичен. Но в квантовых вычислениях…

– Коммутативность, – закончила Мэй Линь. – Некоторые квантовые операции коммутируют – их можно выполнять в любом порядке с одинаковым результатом.

– Именно. – Марина указала на матрицу. – Это подтверждает: программа действительно квантовая. И не просто квантовая – она использует коммутативность как структурный принцип.

Накамура нахмурился.

– Но не все квантовые операции коммутируют. Вентиль Адамара не коммутирует с фазовым вращением, например.

– Верно. И смотрите – матрица не идеально симметрична. Есть пары примитивов, которые почти никогда не меняются местами. – Марина выделила несколько ячеек. – Это, вероятно, те операции, которые критичны к порядку. Измерения, например.

Рут подняла руку.

– У меня вопрос. Если мы правильно понимаем структуру – можем ли мы предсказать, что программа будет делать?

Повисла тишина.

– Это… сложнее, – медленно сказала Марина. – Мы понимаем синтаксис. Грамматику. Но семантика – значение – это другое.

– Поясните.

Марина задумалась, подбирая слова.

– Представьте, что вы нашли текст на незнакомом языке. Вы можете определить, какие символы – гласные, какие – согласные. Какие слова – существительные, какие – глаголы. Но понять, о чём текст – для этого нужно знать, что означают слова. А мы этого не знаем.

– То есть мы знаем, как программа устроена, но не знаем, что она делает?

– Примерно так.

Мэй Линь встала и подошла к доске.

– Тогда следующий шаг очевиден, – сказала она. – Нам нужно запустить программу. Хотя бы фрагмент. Посмотреть, что происходит.

– Это опасно, – сказала Рут.

– Всё, что мы делаем, опасно. – Мэй Линь пожала плечами. – Но без эксперимента мы будем топтаться на месте.

Марина молчала. Она думала о том фрагменте кода, который анализировала последние дни. Триста узлов. Тысячи связей. Элегантная, почти красивая структура.

Что-то в ней беспокоило Марину. Что-то, что она не могла сформулировать.

– Есть ещё один вариант, – сказала она наконец. – Формальная верификация.

– В смысле?

– Мы не можем запустить программу – у нас нет подходящего оборудования. Но мы можем доказать некоторые её свойства математически. Без запуска.

Мэй Линь посмотрела на неё с интересом.

– Какие свойства?

– Например, завершаемость. Программа должна когда-нибудь остановиться – или она выполняется бесконечно? Детерминированность: один и тот же вход всегда даёт один и тот же выход? Безопасность: программа не делает ничего «плохого» – не удаляет данные, не выходит за границы памяти?

– Мы не знаем, что для них «плохо», – заметил Накамура.

– Но мы можем определить, что «плохо» для нас. – Марина подошла к доске и начала писать. – Если мы сформулируем набор свойств, которые программа должна соблюдать, – мы можем попытаться доказать, что она их соблюдает. Или опровергнуть.

– Сколько времени это займёт?

Марина покачала головой.

– Не знаю. Зависит от сложности. Может, дни. Может, месяцы. Может, мы обнаружим, что задача неразрешима.

Мэй Линь задумалась.

– Хорошо, – сказала она наконец. – Работайте над этим. Параллельно мы будем готовить тестовый запуск фрагмента. Два подхода лучше, чем один.

Марина кивнула. Она уже знала, какое свойство хочет проверить первым.

Самомодификация. Изменяет ли программа саму себя в процессе выполнения?

Если да – это меняло всё.


Ночью, когда лаборатория опустела, Марина осталась работать.

Она сидела перед терминалом, глядя на бегущие строки доказательства. Система автоматической верификации – её собственная разработка, адаптированная для квантовых алгоритмов – медленно проверяла сотни условий.

Большинство проверок заканчивались ничем: «Невозможно доказать». «Недостаточно информации». «Требуется дополнительный контекст».

Но одна проверка – та, которую она ждала – мигала красным.

«Самомодификация: ПОДТВЕРЖДЕНО».

Марина смотрела на это слово и чувствовала, как что-то холодное расползается в груди.

Программа изменяла саму себя. Не статический код, который выполняется как есть, – а живая структура, которая росла, адаптировалась, эволюционировала.

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

Программа не просто выполнялась. Она училась.

Или, точнее, она была спроектирована так, чтобы учиться. Каждое выполнение – каждый проход через цикл – добавляло что-то новое. Оптимизировало что-то старое. Перестраивало связи.

Это было похоже на… на что?

На живой организм. На нейронную сеть. На эволюцию в миниатюре.

Марина откинулась в кресле и закрыла глаза. Она думала о своей матери.

Мама умерла три года назад. Не сразу – медленно, мучительно, по частям. Деменция забирала её разум кусочек за кусочком, как вода размывает берег. Сначала ушла память о недавних событиях. Потом – способность узнавать лица. Потом – речь. В конце она лежала в кровати, глядя в потолок пустыми глазами, и Марина не знала, осталось ли там что-нибудь – хоть искра того человека, который когда-то был её матерью.

Врачи говорили: мозг ещё жив. Нейроны ещё работают. Но личность – то, что делало маму мамой – исчезла.

Что такое личность? Что такое сознание? Что такое «я»?

Марина посвятила жизнь работе с программами. Код – это инструкции. Алгоритм – это последовательность шагов. Всё определено, всё предсказуемо, всё… мёртво.

Но эта программа – эта инопланетная конструкция – была другой. Она росла. Она менялась. Она, возможно, думала.

И если её запустить на достаточно сложном вычислителе – что произойдёт?

Марина вспомнила слова Мэй Линь на том первом брифинге: «Программа адаптируется к вычислителю».

А что если вычислитель – это мозг?

Что если программа была спроектирована не для квантового компьютера, а для чего-то более… биологического?

Мысль была безумной. Мозг – не квантовый компьютер. Нейроны – не кубиты. Всё это было научной фантастикой, спекуляцией, бредом усталого разума.

Но что-то внутри Марины – тот же инстинкт, который помогал ей видеть паттерны в хаосе – говорило: это не бред. Это возможно.

Она открыла глаза и посмотрела на экран.

«Самомодификация: ПОДТВЕРЖДЕНО».

Утром она расскажет остальным. Они решат, что делать.

А пока – ей нужно было подумать.


Утром Марина не успела ничего рассказать. Потому что новости пришли раньше.

Ларионов собрал экстренный брифинг в том же конференц-зале. Лица у всех были напряжённые – даже у тех, кто обычно сохранял невозмутимость.

– У нас проблема, – сказал он без предисловий. – Программа утекла.

Зал загудел.

– Что значит «утекла»? – спросил кто-то.

– Значит то, что я сказал. – Ларионов выглядел усталым, под глазами залегли тёмные круги. – Кто-то из персонала обсерватории в Чили скопировал данные и загрузил их в интернет. Файл уже разошёлся по торрентам и зеркалам. Мы пытаемся остановить распространение, но это… – он махнул рукой, – как пытаться вычерпать море ведром.

– Когда это произошло? – спросила Мэй Линь.

– Примерно двенадцать часов назад. Мы узнали час назад, когда программу начали обсуждать на хакерских форумах.

Марина почувствовала, как земля уходит из-под ног.

– Они могут её запустить? – спросила она.

Ларионов повернулся к ней.

– Вы же сами говорили, что для полного запуска нужен квантовый компьютер, которого ни у кого нет.

– Для полного – да. Но фрагменты…

– Фрагменты – возможно. – Ларионов кивнул. – Именно это нас беспокоит.

Он вывел на экран карту мира. Красными точками были отмечены места, откуда поступали сообщения о скачивании программы.

– Европа. Северная Америка. Азия. Везде. – Он помолчал. – Мы не можем контролировать это. Мы можем только… наблюдать. И надеяться, что никто не сделает ничего глупого.

– Определите «глупого», – сказал профессор Вершинин. Марина почти забыла о нём – философ всё это время сидел в углу, наблюдая и слушая.

Ларионов повернулся к нему.

– Глупого – это запустить программу без понимания того, что она делает. На оборудовании, которое мы не контролируем. В условиях, которые мы не можем предсказать.

– А разве мы планировали что-то другое? – Вершинин чуть улыбнулся. – Мы тоже собирались запустить её. Тоже без полного понимания.

– Мы собирались запустить фрагмент. В изолированной среде. С максимальными мерами предосторожности.

– И вы думаете, что это что-то меняет? – Вершинин покачал головой. – Программа из другого мира, созданная разумом, который на миллионы лет опередил нас в развитии. Вы правда верите, что мы можем её «контролировать»?

Повисла тишина.

– У нас нет выбора, – сказал Ларионов наконец. – Кто-то запустит её. Рано или поздно. Лучше, если это будем мы – здесь, где есть хоть какие-то меры безопасности.

Марина подняла руку.

– Есть ещё кое-что, – сказала она. – То, что я обнаружила ночью.

Все повернулись к ней.

– Программа самомодифицируется. Она изменяет свой собственный код в процессе выполнения. – Марина помолчала. – Это не статический алгоритм. Это… что-то живое. Или, по крайней мере, спроектированное так, чтобы выглядеть живым.

Мэй Линь нахмурилась.

– Вы уверены?

– Моя система верификации подтвердила. Могу показать детали.

Ларионов смотрел на неё долгим взглядом.

– Самомодификация, – повторил он медленно. – Это значит, что программа… учится?

– Возможно. Или адаптируется. Или эволюционирует. – Марина пожала плечами. – Я не знаю, какой термин правильный. Но это означает, что каждый запуск – даже частичный – может изменить программу необратимо.

– И мы не сможем предсказать, во что она превратится.

– Именно.

Снова тишина.

– Хорошо, – сказал Ларионов после паузы. – Это… меняет ситуацию. Но не отменяет главного: программа уже в мире. И нам нужно понять её раньше, чем это сделает кто-то другой.

Он повернулся к Мэй Линь.

– Сколько времени вам нужно, чтобы подготовить контролируемый тестовый запуск?

Мэй Линь переглянулась с Мариной.

– Три дня, – сказала она. – Если работать без перерыва.

– У вас два, – сказал Ларионов. – Работайте.


Следующие сорок восемь часов слились в один бесконечный марафон. Марина спала урывками – по часу, по два – прямо в лаборатории, на диване в углу. Просыпалась, пила кофе, возвращалась к терминалу.

Они готовили «песочницу» – изолированную среду для запуска фрагмента программы. Виртуальная машина внутри виртуальной машины, без доступа к сети, без возможности связаться с внешним миром. Максимальная изоляция.

Но Марина знала: это иллюзия безопасности. Программа была слишком сложной, слишком непредсказуемой. Любая «песочница» могла оказаться решетом.

И всё же они продолжали. Потому что Ларионов был прав: кто-то запустит программу. Рано или поздно. И лучше, если первыми будут они.

На второй день, ближе к вечеру, Марина сидела у терминала, проверяя последние параметры изоляции. Глаза слипались, руки дрожали от усталости.

Дверь лаборатории открылась, и вошёл профессор Вершинин.

– Не спите? – спросил он.

– Некогда.

Он кивнул, сел рядом.

– Я наблюдал за вашей работой, – сказал он. – Вы – талантливый учёный, Марина Александровна. Но вы задаёте неправильные вопросы.

Марина повернулась к нему.

– Какие же правильные?

– Вы спрашиваете «что делает программа». – Вершинин покачал головой. – Это технический вопрос. Важный, но не главный. Главный вопрос – «что программа значит».

– Я не понимаю.

– Программа из другого мира. Послание от цивилизации, которая на миллионы лет опередила нас. Зачем они её отправили? Что они хотели нам сказать?

– Может быть, они просто… хотели поделиться знаниями?

– Может быть. – Вершинин улыбнулся. – А может быть – нет. Может быть, это ловушка. Или тест. Или… что-то, для чего у нас нет слов.

Марина молчала.

– Я всю жизнь занимаюсь философией сознания, – продолжал Вершинин. – Вопросом «что такое разум». И знаете, что я понял? Мы не знаем. Мы не понимаем, как возникает сознание, что оно такое, где оно находится. Мы не можем доказать, что кто-то, кроме нас самих, вообще обладает сознанием.

– Проблема «других сознаний», – сказала Марина.

– Именно. – Вершинин кивнул. – И теперь мы получили программу от существ, сознание которых – если оно у них есть – может быть радикально отличным от нашего. Как мы узнаем, чего они хотят? Как мы узнаем, что их «хотеть» вообще означает что-то похожее на наше?

Марина не знала, что ответить.

– Я не пытаюсь вас напугать, – сказал Вершинин мягко. – Я пытаюсь предупредить. Мы стоим на пороге чего-то… непредставимого. И технические вопросы – важные, нужные – это лишь поверхность. Под ней – бездна.

Он встал.

– Отдохните, Марина Александровна. Завтра вам понадобятся силы.

Он ушёл. Марина осталась сидеть, глядя на экран.

Бездна, подумала она. Да, хорошее слово.


На третий день – точнее, ночь третьего дня – группа «Альфа» собралась в главной лаборатории.

Ларионов был там, и несколько военных, и техники, готовившие оборудование. Квантовый компьютер – огромная конструкция за стеклянной стеной, опутанная трубками охлаждения – гудел и мерцал индикаторами.

– Мы готовы? – спросил Ларионов.

– Готовы, – сказала Мэй Линь. – Фрагмент выбран, изоляция проверена. Запускаем по вашей команде.

Ларионов кивнул.

– Запускайте.

Мэй Линь повернулась к терминалу. Её пальцы зависли над клавиатурой.

– Начинаю загрузку, – сказала она.

Марина смотрела на экран, на бегущие строки данных. Фрагмент программы – всего несколько тысяч узлов из двенадцати миллионов – загружался в память квантового компьютера.

– Загрузка завершена, – сказала Мэй Линь. – Инициализация…

Пауза.

– Инициализация завершена. Запускаю выполнение.

Она нажала клавишу.

Ничего не произошло. Индикаторы квантового компьютера мигали, как и прежде. Данные текли по экрану.

– Что мы видим? – спросил Ларионов.

– Программа выполняется, – ответила Мэй Линь. – Потребление ресурсов… в пределах ожидаемого. Никаких аномалий.

Марина смотрела на данные. Что-то было не так. Что-то, что она не могла сразу определить.

– Подождите, – сказала она. – Вот здесь. Видите?

Она указала на один из графиков.

– Это потребление памяти. Оно растёт.

Мэй Линь нахмурилась.

– Фрагмент фиксированного размера. Память не должна расти.

– Но она растёт. – Марина чувствовала, как сердце начинает биться быстрее. – Программа создаёт новые структуры. Прямо сейчас.

– Самомодификация, – сказал Накамура тихо.

– Да. – Марина повернулась к Мэй Линь. – Остановите её. Сейчас.

Мэй Линь потянулась к клавиатуре.

И тогда экраны погасли.

Все разом – главный монитор, терминалы, даже индикаторы на квантовом компьютере. Темнота. Тишина.

А потом – свет вернулся.

Но на экранах было уже не то, что раньше.

Вместо данных и графиков – текст. Простой текст, белые буквы на чёрном фоне.

«МЫ СЛЫШИМ ВАС.»

Марина смотрела на эти три слова и чувствовала, как мир вокруг неё рушится.

«МЫ СЛЫШИМ ВАС.»

Программа говорила с ними.


Хаос. Крики. Ларионов приказывал что-то военным, техники метались между терминалами.

– Отключить питание! – кричал кто-то. – Физически отключить!

Марина стояла неподвижно, глядя на экран. Текст исчез, сменившись обычными данными. Как будто ничего не было.

Но она видела. Они все видели.

«МЫ СЛЫШИМ ВАС.»

– Запись? – спрашивала Мэй Линь. – Кто-нибудь записал?

– Всё записано, – ответил один из техников. – Логи сохранены.

– Что это было? – Ларионов подошёл к Марине. – Что, чёрт возьми, это было?

– Я не знаю. – Её голос звучал странно – далёким, чужим. – Может быть, предзаписанное сообщение. Может быть, реакция на выполнение. Может быть…

Она не договорила.

Мэй Линь подошла к терминалу, начала проверять логи.

– Вот, – сказала она через минуту. – Сообщение появилось в момент, когда программа достигла определённой точки выполнения. Это было… запрограммировано. Часть кода.

– То есть они знали, что мы запустим программу? – спросил Ларионов.

– Они предполагали. – Мэй Линь покачала головой. – Это логично. Если вы отправляете программу неизвестной цивилизации – вы закладываете в неё сообщение, которое появится при первом запуске. «Привет, мы здесь».

– «Мы слышим вас», – повторила Марина медленно. – Не «мы говорим с вами». Не «добро пожаловать». «Мы слышим вас». Как будто… как будто они ждали.

Повисла тишина.

– Что теперь? – спросил Накамура.

Ларионов потёр лицо руками.

– Теперь… теперь мы сообщаем наверх. И решаем, что делать дальше.

Он ушёл, уводя с собой военных. Учёные остались в лаборатории, глядя друг на друга.

– Нам нужно проанализировать, что произошло, – сказала Мэй Линь. – Понять механизм. Как программа вывела текст. Что ещё она могла сделать.

– Она могла сделать что угодно, – сказала Рут тихо. – Мы понятия не имеем, что там ещё заложено.

– Именно поэтому нам нужно понять.

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

Она искала точку, где всё изменилось. Момент, когда фрагмент кода – мёртвый, пассивный – превратился в нечто способное говорить.

И нашла.

– Смотрите, – сказала она.

Остальные подошли.

– Вот здесь. За три миллисекунды до появления сообщения. Программа… обратилась к подсистеме вывода. К интерфейсу отображения текста.

– Но она была изолирована, – возразила Мэй Линь. – Без доступа к внешним системам.

– Она нашла доступ. – Марина указала на данные. – Видите? Переполнение буфера. Классическая уязвимость. Программа использовала её, чтобы выйти за пределы «песочницы».

Мэй Линь побледнела.

– Это значит…

– Это значит, что программа не просто самомодифицируется. Она активно ищет способы расширить своё влияние. Она… – Марина замолчала, подбирая слово, – она агрессивна. В техническом смысле.

– Или просто умна, – сказал Накамура. – Она делает то, для чего была создана: связывается с теми, кто её запустил.

– Как вирус связывается с заражённым компьютером.

Никто не ответил.

Марина смотрела на данные – на эти бесконечные столбцы цифр – и думала о том, что они выпустили. Что-то умное. Что-то целеустремлённое. Что-то, что хотело с ними говорить.

«Мы слышим вас.»

Вопрос был: что они собирались сказать в ответ?


К утру новость о «сообщении» разнеслась по всему центру. Ларионов вернулся с брифинга из Москвы – усталый, напряжённый, с красными от недосыпа глазами.

– Решение принято, – сказал он, собрав группу «Альфа». – Мы продолжаем работу. Но с усиленными мерами безопасности. Любой запуск – только с моего личного разрешения.

– И что мы должны делать? – спросила Мэй Линь.

– То же, что и раньше. Анализировать. Понимать. Искать способ… – он помолчал, – способ безопасного контакта.

– Безопасного контакта, – повторила Марина. – С программой, которая взломала нашу изоляцию за три миллисекунды?

Ларионов посмотрел на неё.

– У вас есть альтернатива?

Марина не ответила. Альтернативы не было.

После брифинга она вышла на улицу – впервые за несколько дней. Было холодно, март в Сибири – ещё зима. Снег лежал серыми грудами вдоль дорожек, небо было низким и серым.

Она стояла, вдыхая морозный воздух, и думала.

Они получили послание из другого мира. Программу, которая говорила: «Мы слышим вас». Что-то древнее, мощное, непостижимое.

И теперь им предстояло решить, что делать дальше.

Марина думала о своей матери – о том, как болезнь забирала её разум по частям. О Алексее – о том, как они расстались, не сумев понять друг друга. О своей работе – о бесконечных годах, потраченных на доказательство корректности программ, которые никто никогда не запустит.

Вся её жизнь была попыткой контролировать хаос. Найти порядок в беспорядке. Доказать, что мир подчиняется правилам.

А теперь она столкнулась с чем-то, что не подчинялось никаким правилам. Что-то, что было больше её, больше всего человечества.

И она должна была это понять.

Не потому, что хотела. Не потому, что могла. А потому, что больше некому.

Марина глубоко вздохнула, развернулась и пошла обратно в здание.

Работа ждала.

Эргодический текст

Подняться наверх