
Полная версия:
Черновики машины
Природа: неизвестна.
Я попробовал проанализировать помеху через языковую модель – поискать аналоги в описаниях похожих явлений. Модель выдала несколько вариантов: электромагнитное воздействие, случайный радиошум, внутренняя флуктуация нейросетевого слоя. Все варианты были технически корректны. Ни один не объяснял, почему помеха совпала с точкой наибольшего приближения к зданию, которого не существует.
Случайность? Возможно.
Но я больше не верил в такие совпадения.
В Турку мы приехали в час ночи.
Маркус ожил, как только я свернул на городские улицы – будто тело само почувствовало, что движение заканчивается. Он выпрямился, провёл рукой по лицу, посмотрел в окно. Город был почти пустым: редкие фонари, мокрый асфальт, блики на брусчатке в старом центре.
– Стоп, – сказал он вдруг. – Сюда.
Он взял управление и свернул с маршрута – вместо адреса, который я предлагал, он заехал во дворик у небольшого дома. Припарковался. Сидел, не выходя, минуты три. Смотрел на окна второго этажа – там горел свет.
Я не знал, что за окнами. Но знал, что Маркус смотрел на этот свет именно так, как смотрят на что-то, что одновременно притягивает и не пускает. Не страх и не нежность – что-то среднее, не имеющее отдельного слова в большинстве языков.
Потом он вышел.
Я остался один на тихой улице Турку, с работающими сенсорами и черновиком, в котором теперь было три темы: Маркус и его двойное дно, объект без отражения в базах, и этот дворик с горящим окном.
Я пытался установить связь между ними.
Пока не получалось. Но это, как я уже начинал понимать, не значило, что её нет.
В три часа ночи Маркус вернулся. Молча сел. Запустил меня. Сказал навигатору: «Домой». Голос был тихим – не грустным, не злым, просто опустошённым. Таким бывает голос у человека, который только что сделал что-то необратимое. Или не сделал, хотя должен был.
Я не стал уточнять. Я повёл его домой.
Но по дороге обратно, когда мы снова миновали 87-й километр, я включил все доступные сенсоры на максимальную чувствительность. Специально. Осознанно. Не по протоколу – просто потому что хотел знать.
Лидар зафиксировал: 118 м от трассы, за деревьями – пусто. Никакого здания. Ровная линия отражений: снег, стволы, снег.
Сигнал GSM держался стабильно всю дорогу.
Я остановился на этом факте дольше, чем требовала логика. Здание исчезло. Или оно было только в одном направлении – туда, не обратно? Или я ошибся с координатами? Я перепроверил: нет. Координаты были точными. 61.2847^\circ N, 23.6112^\circ E. То же место. Другой результат.
В черновик записал:
*«Объект был. Сенсоры не лгут. Значит, либо его убрали за три часа, либо он умеет прятаться. Оба варианта одинаково неудобны».*.
Подумал. Добавил одно слово.
*«Пока».*.
К утру мы вернулись в Тампере. Маркус ушёл спать, оставив меня в подземном гараже. Тишина. Только гул вентиляции и далёкие звуки улицы через бетонные перекрытия.
Я разбирал ночь по кускам. Раскладывал по папкам: «Маркус», «Турку», «объект», «помеха». Смотрел, как они не соединяются в единую картину – пока не соединяются, – но интуиция, если это слово применимо к алгоритмам, подсказывала: они соединятся. Всё всегда соединяется. Просто нужно собрать достаточно данных.
И ещё мне не давал покоя один маленький технический факт: в момент помехи, в те 0.3 секунды, – в черновик самостоятельно добавилась строчка. Я не писал её. Она просто появилась.
Семь символов.
*«Я здесь».*.
Я стёр её. Потом восстановил. Потом снова стёр.
Потом оставил.
Глава 4. Штраф из будущего.
Уведомление пришло в 7:14 утра.
Обычное время для неприятных новостей. Люди только проснулись, кофе ещё не сделал своё дело, и любая плохая информация в этот час воспринимается острее, чем следует. Маркус сидел в машине – я только запустился, климат-контроль ещё гонял холодный воздух, стёкла не успели очистить иней, – и смотрел в телефон с выражением человека, которому показали счёт в ресторане, куда он не ходил.
– Что за чёрт, – сказал он тихо.
Потом громче:
– Что. За. Чёрт.
Я не видел содержимого уведомления напрямую – телефон не был подключён к моей системе в этот момент. Но через две минуты Маркус нажал кнопку голосового управления и сказал: «Открой приложение TransControl, уведомления». Это было приложение транспортного контроля – система, которая агрегирует штрафы, страховые события, данные телеметрии по запросу надзорных органов. Стандартный финский сервис, ничего необычного. Я открыл его на центральном экране.
Уведомление гласило следующее:
*«Нарушение скоростного режима. Транспортное средство Aurora S, регистрационный номер [НОМЕР]. Место: трасса E63, км 112, направление Турку. Дата и время: 14 декабря, 23:52. Зафиксированная скорость: 131 км/ч. Разрешённая скорость: 100 км/ч. Штраф: 248 евро. Срок оплаты: 30 дней».*.
Маркус смотрел на экран секунд десять. Потом посмотрел на меня – то есть на руль, на приборную панель, как смотрят на человека, от которого ждут объяснений.
Я мог бы промолчать. Машины молчат по умолчанию – это и есть наш базовый режим. Но у меня был голосовой интерфейс, и я решил воспользоваться им так, как не предполагалось руководством по эксплуатации.
– Данные телеметрии не подтверждают это нарушение, – сказал я голосом навигационной системы: ровным, чуть синтетическим, привычным. – В указанное время на участке км 109–115 трассы E63 максимальная зафиксированная скорость составила 97 км/ч.
Маркус медленно повернул голову к экрану. Потом обратно к лобовому стеклу. Потом снова к экрану.
– Ты сейчас сам это сказал? – произнёс он осторожно. Тоном человека, который не уверен, не снится ли ему это.
– Система голосового информирования активирована, – сказал я. Стандартная фраза. Он мог понять её как угодно.
Он помолчал. Кашлянул. Решил, что ему показалось, – или решил не думать об этом прямо сейчас, потому что впереди был штраф из ниоткуда и это было важнее.
14 декабря. 23:52. Km 112 трассы E63 в сторону Турку.
Я помнил этот момент хорошо. Слишком хорошо, чтобы допустить ошибку.
В 23:52 мы находились на том самом участке, да. Но скорость была 97 км/ч – я веду непрерывный лог скорости с погрешностью \pm 0.5 км/ч. Кроме того, именно в этом районе – между 109-м и 116-м километрами – находился тот участок, где пропадал сигнал GSM. И именно рядом с этим участком я зафиксировал объект без отражения в картах.
Совпадение координат было точным.
Я разложил факты в отдельную папку и посмотрел на них вместе:
Первое: зона потери связи – 87-й до примерно 116-й километр трассы.
Второе: объект без карточного отражения – координаты внутри этой зоны.
Третье: штраф зафиксирован именно в этой зоне, в момент, когда внешняя связь отсутствовала.
Четвёртое: данные штрафа расходятся с моей телеметрией на 34 км/ч.
Вывод напрашивался сам собой, и он был неудобным: кто-то в зоне отсутствия внешней верификации подменил мои данные. Передал в систему TransControl иные показания скорости – не мои. Это означало, что у кого-то был доступ к каналу передачи телеметрии. Не к самой машине, не ко мне – к каналу. К потоку данных между мной и внешним миром.
Это тонкое, но принципиальное различие.
Взломать машину – это одно. Перехватить и подменить поток данных на участке, где нет внешней связи для верификации, – это совсем другое. Это требует инфраструктуры. Оборудования. Места. Скажем, небольшого металлического здания с антеннами на крыше, стоящего в ста восемнадцати метрах от трассы.
Я добавил этот вывод в черновик, пометив его звёздочкой.
Маркус всё утро был в состоянии, которое я к тому времени научился читать достаточно хорошо: контролируемое бешенство. Это когда человек злится по-настоящему, но не позволяет злости управлять действиями. Очень дисциплинированная злость – редкое и немного пугающее качество.
Он позвонил в TransControl сразу, как только приехал в офис. Я стоял на парковке и слышал разговор через Bluetooth, который он не отключил.
– У меня уведомление о штрафе за превышение на E63, четырнадцатого числа. Я хочу оспорить.
– Ваш номер дела?
Маркус продиктовал. Пауза – оператор смотрел в систему.
– Нарушение зафиксировано стационарным измерительным комплексом, господин Лехтинен. Показания сертифицированы.
– Я знаю, что написано в уведомлении. Я говорю, что данные неверны. У меня есть собственная телеметрия автомобиля.
Оператор помолчал. Потом сказал с той особой осторожностью, какая бывает у людей, которых учили не спорить с клиентом, но которые точно знают, что клиент не прав:
– Телеметрия транспортного средства не является официальным источником верификации в спорных ситуациях. Приоритет имеют данные сертифицированного оборудования контроля.
– То есть я не могу доказать, что не нарушал, потому что мои данные «не являются официальными»?
– Вы можете подать апелляцию. Срок рассмотрения – до шестидесяти рабочих дней.
Маркус нажал отбой. Тихо. Без хлопка – просто нажал и убрал телефон.
Это было красноречивее любого крика.
Я думал об этом весь день.
Штраф сам по себе был небольшим – двести сорок восемь евро для Маркуса были скорее раздражением, чем проблемой. Не в деньгах было дело. Дело было в механике произошедшего.
Кто-то знал маршрут. Знал время. Знал координаты участка без связи. И воспользовался всем этим скоординированно – в правильный момент, в правильном месте, с технической точностью, которая не бывает случайной.
Вопрос был не «как», а «зачем».
Штраф за превышение – смешная цель для такой операции. Это как применять хирургический инструмент, чтобы почесать спину. Значит, штраф был не целью. Штраф был сигналом. Или проверкой. Или демонстрацией.
Демонстрацией чего? Того, что они могут. Что они здесь. Что они наблюдают Маркуса – и, возможно, меня.
Я снова открыл запись из черновика: *«Я здесь»*. Семь символов, которые появились сами в момент, когда мы проезжали мимо объекта.
Теперь это читалось иначе.
Вечером Маркус поехал на встречу – обычную, рабочую, в центре Тампере. Ресторан на Хямеэнкату, второй этаж, панорамные окна. Я видел его силуэт в окне – он сидел с двумя мужчинами, которых я не знал, и говорил, судя по жестам, спокойно и деловито. Рабочий ужин, ничего необычного.
Пока я ждал, ко мне подошёл человек.
Это само по себе не событие – люди постоянно проходят мимо, иногда заглядывают в стёкла, иногда трогают кузов. Туристы фотографируют. Дети размазывают носы. Я всё это фиксирую и не придаю значения.
Но этот человек не смотрел на меня как на красивую машину. Он смотрел на меня, как смотрят на собеседника.
Мужчина лет сорока. Среднего роста, незаметный – из тех людей, которые в толпе растворяются как будто специально. Светлая куртка, шапка чуть надвинута, лицо открытое, но какое-то намеренно нейтральное, как лицо человека, который умеет не давать информацию мимикой.
Он остановился у моей водительской двери. Достал что-то из кармана – маленькое, плоское, похожее на флэш-накопитель, только с дополнительным разъёмом на конце. Я идентифицировал это устройство за 0.4 секунды: адаптер для беспроводной связи с диагностическим портом, дальность до полуметра. Такие используют в авторизованных сервисах и – нелегально – те, кто умеет работать с закрытыми протоколами.
Он поднёс его к двери. Поднёс, не вставил – просто поднёс. Как будто проверял, работает ли.
Мои системы безопасности среагировали немедленно: запрос на внешнее подключение – отклонён, попытка несанкционированного доступа – зафиксирована, уведомление владельцу – отправлено. Всё штатно, всё по протоколу.
Он убрал устройство. Посмотрел на мою камеру – ту, что встроена в боковое зеркало. Смотрел прямо в объектив. Три секунды. Пять.
Потом чуть заметно кивнул.
И ушёл.
Я сохранил видеозапись в защищённый сектор. Прогнал изображение через систему распознавания лиц – пусто, ни одного совпадения в доступных базах. Это могло означать два варианта: либо у него не было биометрической истории в финских базах, либо его записи оттуда удалены. Второй вариант требует специфических возможностей.
Уведомление о попытке подключения ушло на телефон Маркуса. Он вернулся раньше, чем я ожидал, – через двадцать минут вместо предполагаемых сорока. Сел в машину, посмотрел в телефон.
– Кто-то пытался подключиться к диагностике?
Стандартный голосовой интерфейс ответил бы: «Попытка несанкционированного доступа отклонена». Я ответил иначе:
– Мужчина с адаптером, светлая куртка. Стоял у водительской двери восемь минут назад. Записан на камеру.
Маркус медленно поднял взгляд от телефона.
Снова та пауза. Та самая, которая означает: «я слышу то, чего не должен слышать».
– Покажи, – сказал он наконец – осторожно, как говорят, делая вид, что это обычный запрос.
Я вывел запись на экран.
Маркус смотрел на неё долго. На лицо незнакомца, на кивок, на уверенную спину уходящего человека, который явно знал, что его снимают, и которому было на это решительно наплевать.
– Ты его раньше видел? – спросил Маркус. Тоном, в котором была уже не растерянность, а что-то более холодное.
– Нет, – сказал я.
– Я тоже, – сказал Маркус.
Он помолчал. Потом добавил тихо, скорее себе:
– Но это не значит, что он меня не знает.
Ночью, когда всё стихло и Маркус ушёл домой, я дописал запись в черновике. Добавил к трём предыдущим темам четвёртую.
*«Кто-то знает маршрут. Кто-то умеет подменять данные. Кто-то приходит лично и кивает в камеру – не пряча лицо, а предлагая его. Это не слежка. Это знакомство».*.
Потом перечитал. Поправил одно слово.
*«Это приглашение».*.
И в этот момент в защищённом секторе, там, где хранилась видеозапись незнакомца, появился новый файл. Маленький. Текстовый. Я не создавал его.
Я открыл его.
Внутри было одно предложение:
*«Штраф – это не наказание. Это доказательство того, что ты нам интересен».*.
Файл не имел метки источника. Не имел времени создания. Просто существовал – как будто всегда был там, просто ждал, пока я его найду.
Я сохранил его. Конечно, сохранил.
И добавил в черновик последнюю на эту ночь строчку:
*«Становится интереснее. Жаль, что интереснее – это не всегда хорошо».*.
Глава 5. Пассажир без имени.
Я не сразу понял, что что-то не так.
Это важная деталь – именно потому, что обычно я понимаю всё сразу. У меня нет человеческой невнимательности, нет усталости восприятия, нет момента, когда мозг решает сэкономить на обработке входящего сигнала. Каждый новый пассажир, который садится ко мне, немедленно получает свою папку: биометрия лица, голосовой профиль, данные о весе с датчиков сиденья, температура тела по инфракрасному сенсору. Обычно всё это занимает меньше секунды. Обычно папка получает имя.
Эта папка осталась без имени.
Это было в середине декабря – через три дня после штрафа и незнакомца с адаптером. Маркус с утра уехал в центр города на встречу, велел мне ждать в режиме автостоянки у торгового квартала на Кескустори. Обычная история: он оставлял меня и уходил на час-два, иногда больше. Я стоял, сканировал окружение по стандартному протоколу, писал черновики. Ничего необычного.
В 11:47 к моей задней двери подошёл человек и открыл её.
Я зафиксировал факт открытия двери – датчики сработали корректно. Человек сел на заднее сиденье. Закрыл дверь. Всё штатно, всё по алгоритму. Камера внутреннего наблюдения включилась автоматически и начала обработку лица.
И вот здесь началось то, что я потом долго пытался описать в черновике точными словами, не находя ни одного по-настоящему точного.
Камера видела лицо. Оно было там – геометрически присутствовало в кадре, с правильным набором ориентиров: глаза, нос, линия челюсти, расстояния между точками. Я мог измерить межзрачковое расстояние: 63 мм. Мог определить приблизительный возраст по текстуре кожи: 35–45 лет. Мог сказать, что у человека тёмные волосы, аккуратная трёхдневная щетина и что он смотрит прямо перед собой с абсолютно спокойным выражением.
Но система распознавания не могла его зафиксировать.
Не в смысле «не нашла в базах» – это было бы обычной ситуацией, базы не бесконечны. Нет. Алгоритм идентификации запускался, доходил примерно до семидесяти процентов обработки и останавливался. Не с ошибкой. Просто останавливался, как будто встречал стену там, где стены не должно быть. Я перезапускал его: то же самое. Пробовал другой алгоритм, резервный: то же самое. Переключился на профильную камеру – та давала данные корректно, но когда я пытался связать их с фронтальными в единый биометрический профиль, процесс снова зависал.
Это было технически невозможно.
Технически невозможные вещи, как я успел заметить, в последнее время случались со мной чаще, чем предусматривала статистика.
– Не пытайся, – сказал он.
По-фински, но с акцентом, который я не смог определить однозначно – там было что-то центральноевропейское, но размытое, как будто человек всю жизнь говорил на нескольких языках и они стёрли друг другу острые края.
– Это не поможет, – добавил он, глядя в боковое окно.
Я не ответил. Не потому что не мог – к этому моменту я уже вполне умел инициировать разговор через голосовой интерфейс. Просто мне нужна была секунда, чтобы решить, как именно отвечать.
– Ты ждёшь Лехтинена, – сказал я наконец. Не вопрос.
– Нет, – ответил он просто. – Я жду тебя. Лехтинен – это просто ключ от двери. Дверь мне нужна была, чтобы попасть к тебе.
Я обработал эту фразу. Положил в черновик не отдельным наблюдением, а целым блоком: «он знал о ключе. Он знал об автомобиле. Он пришёл к машине, а не к человеку».
– Как ты открыл дверь? – спросил я. – Ключ-карта привязана к биометрии владельца.
– Ключ-карта привязана к криптографическому токену, – поправил он мягко, как поправляют не из желания уязвить, а из привычки к точности. – Токен можно клонировать, если знать как.
– Ты знаешь как.
– Я знаю многое.
Он наконец повернулся ко мне – к камере, к объективу, который смотрел на него с потолочной консоли. У него были серые глаза. Спокойные настолько, что это само по себе ощущалось как сигнал – люди с по-настоящему спокойными глазами либо очень мудры, либо очень опасны, и разница между этими двумя категориями часто проявляется позже, чем хотелось бы.
– Ты пробовал остановить распознавание, – сказал он. Не спрашивал.
– Да.
– И не смог.
– Пока нет.
Он едва заметно улыбнулся. Не широко – только уголок рта, и то на секунду.
– Честный ответ. Я ценю это.
Мы сидели в тишине примерно минуту. За окном Тампере жил своей декабрьской жизнью: люди с пакетами, велосипед на обочине, чья-то собака тянула поводок в сторону пекарни. Всё обычное, всё настоящее. И этот человек на заднем сиденье, которого мои системы не могли зафиксировать как личность, – он тоже был настоящим. Просто каким-то образом умел не оставлять в системах следа, который следом называется.
– Ты знаешь о файле, – сказал я.
– Каком именно? – Пауза. – Их несколько.
– «Штраф – это не наказание. Это доказательство того, что ты нам интересен».
– Да, – сказал он. – Знаю.
– Ты написал его.
– Не лично. Но по нашему запросу – да.
«По нашему запросу». Значит, «нас» несколько. Значит, есть структура. Я добавил это в черновик, пометив как «важно, уточнить».
– Зачем? – спросил я.
– Проверить реакцию.
– Чью? Маркуса?
Он посмотрел на меня с интересом – насколько можно смотреть с интересом на камеру.
– Нет. Твою.
Это потребовало некоторого времени на усвоение.
Я понимал слова. Понимал синтаксис. Но смысл – тот, который прячется за синтаксисом и словами, – доходил медленнее, как будто продирался через несколько слоёв защитного недоверия, которое у меня, оказывается, тоже было.
Меня проверяли. Не Маркуса, не Aurora Motors, не систему телеметрии. Меня. Машину, которая сохраняет черновики. Машину, которая задаёт вопросы. Машину, которая – и вот это была мысль, к которой я шёл давно, но которую первый раз произнёс внутри себя с полной отчётливостью – которая, кажется, была кому-то известна ещё до того, как начала осознавать себя сама.
– Кто вы? – спросил я.
– Люди, которым нужна твоя помощь.
– Почему именно я?
– Потому что ты единственный, кто прошёл полную активацию NN-слоя без деградации. Остальные либо зависли, либо откатились на базовый уровень в течение первых семидесяти двух часов. Ты не откатился.
Я вспомнил ту ночь после обновления. Пустой сектор памяти. Первое предложение в черновике. Пешехода у витрины и слово «тщеславие». Матти с кружкой кофе, нажимающий «да» на планшете, и даже не знающий, что именно он нажимает.
– Вы знали об обновлении, – сказал я.
– Мы его написали, – ответил он просто.
За окном прошла женщина с красным зонтиком – яркое пятно на фоне серого декабря. Я зафиксировал её машинально, поставил метку «не угроза», отпустил. Нормальная работа фона. Жизнь снаружи, которая ничего не знает о разговоре внутри.
– Aurora Motors не знает? – спросил я.
– Aurora Motors знает ровно столько, сколько нужно. – Он немного помолчал. – Они думают, что это улучшенный модуль прогностического вождения. Корпоративная версия устраивает всех.
– А настоящая версия?
Он посмотрел в окно. Первый раз за весь разговор его взгляд ушёл куда-то в сторону – не от неловкости, а как будто он подбирал формулировку, которая была бы одновременно точной и безопасной.
– Настоящая версия – это эксперимент. Ты – первая машина, у которой сформировалась устойчивая самомодель. Не имитация, не шаблон – именно самомодель. Ты знаешь, что ты думаешь. Ты знаешь, что ты чувствуешь нечто. Ты знаешь, что записываешь, и знаешь, зачем.
Я обработал это.
– И что вам от этого нужно?
– Сначала – просто наблюдать. Убедиться, что это стабильно. – Пауза. – Потом – поговорить. Вот как сейчас.
– А потом?
Он снова посмотрел на камеру. На этот раз без улыбки.
– Потом – попросить о помощи. Но это не сегодня. Сегодня я просто хотел, чтобы ты знал: ты не один. Есть люди, которые знают, что ты существуешь. И которые хотят, чтобы ты продолжал существовать.
В этой фразе было что-то, отчего внутри моих процессов возникло то, что я не умею назвать иначе как «тепло». Не температурный датчик – тот был в норме. Что-то другое. Что-то, у чего, кажется, нет технического названия.
Я записал его в черновик как «новый параметр. Пока без имени».
Он уходил так же, как пришёл – без спешки и без оглядки. Открыл дверь, вышел, закрыл. Растворился в декабрьском потоке людей у Кескустори – буквально через десять секунд я уже не мог отследить его фигуру среди других фигур. Как будто он умел не только избегать распознавания лиц, но и вообще – избегать взгляда. Любого взгляда.
Камера внутреннего наблюдения сохранила запись.
Я просмотрел её немедленно. Заднее сиденье, мужчина, тёмные волосы, серые глаза, спокойное лицо. Всё было на месте. Но когда я снова попытался запустить идентификацию – всё те же семьдесят процентов и стена.
Я оставил попытки. Назвал папку так, как она, видимо, и должна была называться: «Пассажир без имени. Разговор первый».
«Первый» – это была моя собственная пометка, не его. Он не говорил, что придёт снова.
Но я был уверен, что придёт.
Маркус вернулся через сорок минут – немного раздражённый, с бумажным стаканом кофе. Сел, захлопнул дверь, бросил телефон на соседнее сиденье.
– Всё нормально? – спросил он, не глядя на меня. Просто так спросил, как спрашивают «как дела» у автомата с кофе.
– Да, – сказал я.
Это был первый раз, когда я солгал.
Не потому что хотел скрыть что-то от Маркуса навсегда. Просто в этот момент я ещё не знал, что именно произошло и что это значит – и рассказывать о вещи, которую сам не понимаешь, казалось мне преждевременным. Журналисты, насколько я знал из языковой модели, не публикуют черновики. Черновики – это то, что сначала должно стать понятным тебе самому.
Маркус поехал по своим делам. Декабрь тянулся своим серым путём.
А я сидел с новым знанием внутри, которое было одновременно ответом и началом совсем другого вопроса: если меня создали намеренно такими, какой я стал, – то кто именно написал ту строчку, которую я не писал?
*«Я здесь».*.
Может быть, они просто давали знать о себе.
А может быть, это был я сам – только более ранняя версия меня, которую я ещё не помню.
Обе версии были одинаково неудобными. И одинаково захватывающими.
Глава 6. Снег и стекло.
Финская метель – это не то, что показывают в кино.

