Принимая во внимание трудности идентификации биологических саморепликаторов, мы могли бы получить представление, задавая более общий вопрос: насколько вообще сложна саморепликация в любой системе? Современные технологии предоставили нам большое количество машин, которые могут копировать материал: от копировальных машин для ЭВМ до 3D-принтеров. Может ли какое-либо из этих устройств сделать копию самого себя? Вероятно, ближе всего к этому подошел 3D-принтер, например такой, как RepRap (сокращенно от англ. Replicating Rapid Prototyper — «самовоспроизводящийся механизм для быстрого изготовления прототипов»), который является детищем Адриана Боуера из британского Университета Бата. Эти машины могут печатать свои собственные компоненты, которые затем могут быть собраны в еще один 3D-принтер RepRap.
Но не совсем. Машина печатает только пластик, а ее собственный каркас выполнен из металла, как и большинство ее электрических компонентов. Так что реплицировать он может только пластиковые детали; к тому же они должны быть вручную собраны с использованием дополнительных частей, чтобы получился новый принтер. Цель дизайнеров — сделать самовоспроизводящиеся принтеры RepRap (существует несколько альтернативных конструкций) доступными для всех. Но на момент написания этой книги мы пока далеки от построения подлинно самореплицирующейся машины.
Таким образом, если поиск самовоспроизводящихся машин не помогает нам в нашем стремлении обнаружить, насколько проста или сложна саморепликация, мы можем отойти от материального мира и изучить этот вопрос в компьютерах, где наши беспорядочные и сложные в получении химические вещества можно заменить простыми строительными блоками цифрового мира, а именно битами, которые могут иметь только значение 1 или 0. А байт данных, состоящий из 8 бит, представляет один символ текста в компьютерном коде и может быть примерно приравнен к единице генетического кода — ДНК- или РНК-основанию. Теперь мы можем задать вопрос: среди всех возможных строк байтов насколько часто появляются те, которые могут копировать сами себя на компьютере?
Здесь у нас есть огромное преимущество, так как самовоспроизводящиеся строки байтов на самом деле являются довольно распространенным явлением: мы знаем их как компьютерные вирусы. Это сравнительно короткие компьютерные программы, которые могут заразить наши компьютеры, убедив их процессоры делать кучу копий. Эти компьютерные вирусы затем проникают в нашу электронную почту, чтобы заразить компьютеры наших друзей и коллег. Так что, если мы рассматриваем память компьютера как своего рода цифровой «первичный бульон», то компьютерные вирусы можно считать цифровым эквивалентом первичных саморепликаторов.
Один из самых простых компьютерных вирусов, Tinba, имеет длину всего 20 килобайт: он очень короткий по сравнению с большинством компьютерных программ. Тем не менее Tinba успешно атаковал компьютеры крупных банков в 2012 году, проникая в браузеры их сотрудников и воруя регистрационные данные; можно сказать, этот вирус был грозным саморепликатором. В то время как 20 килобайт — мало для компьютерной программы, это тем не менее относительно длинная последовательность цифровых данных: с 8 битами в байте он соответствует 160 тысячам бит информации. Поскольку каждый бит может находиться в одном из двух состояний (0 или 1), мы можем легко вычислить вероятность случайного генерирования конкретных строк в двоичной системе. Например, шансы создания конкретной трехбитной строки, скажем, 111, составляет 1/2 × 1/2 × 1/2, или 1 к 23. Следуя той же математической логике, можно сказать, что воссоздать случайно определенную строку в 160 тысяч бит (длина вируса Tinba) можно с вероятностью 1 к 2120 000
. Это умопомрачительно малое число, и это свидетельствует о том, что Tinba не мог возникнуть только благодаря случаю.Может быть, здесь, аналогично тому как мы предполагали для молекул РНК, очень много самовоспроизводящихся кодов, которые намного проще, чем Tinba, и которые могли бы возникнуть случайно. Но если бы это было так, то, конечно, компьютерные вирусы в настоящее время возникали бы спонтанно из всех несметных гигабайтов компьютерного кода, передаваемого в Интернете каждую секунду. Большинство из этих кодов, по большому счету, просто последовательности единиц и нулей (подумайте обо всех изображениях и фильмах, которые загружаются каждую секунду). Эти коды ориентированы на то, чтобы поручать нашим процессорам выполнение основных операций, например копирования или удаления. До сих пор все компьютерные вирусы, которые когда-либо заражали чей-то компьютер, показывали безошибочные признаки человеческого вмешательства. Насколько нам известно, гигантский поток цифровой информации, который протекает по всему миру каждый день, никогда спонтанно не генерировал компьютерные вирусы. Даже в рамках благоприятной для репликации среды компьютера саморепликация сложна и, насколько нам известно, никогда не происходила спонтанно.
Сможет ли помочь квантовая механика