Тот факт, что многослойный протокол накладывает ограничения и одновременно раскрепощает систему, имеет решающее значение. Я хочу, чтобы вы это твердо усвоили, так что вот вам еще один пример. Вернемся опять к многослойной экипировке и рассмотрим целый ряд возможных вариантов для каждого слоя. Скажем, уровень утепления (его ограничивающий протокол – удерживать тепло тела) в качестве входящих условий допускает все типы одежды, а исходящих – различные варианты костюма. Это может быть плащ-накидка из медвежьей шкуры с шерстяными штанами, пальто из шерстяной ткани с кашемировым свитером и штанами из овчины, куртка из полипропиленового флиса с норковым жилетом и брюки из прорезиненной ткани для гидрокостюмов. Ваша одежда может застегиваться на молнию или надеваться через голову, это может быть комбинезон или комплект из куртки со штанами. Возможен высокий отворачивающийся воротник, а манжеты и низ штанов могут быть на резинке, но это необязательно. Цвет и размер – любые. Протокол слоя утепления, несмотря на ограничения (удерживать тепло тела), одновременно снимает ограничения разными способами, что предоставляет вам широчайший выбор. По Дарвину, это естественный отбор признаков вида. Мы видим, как приспособляемость позволяет слою эволюционировать от накидки из медвежьей шкуры до куртки из полипропиленового флиса цвета фуксии, размера L, с капюшоном и на молнии. И с карманами. Это наглядная иллюстрация важнейшего свойства многослойной архитектуры – она разрешает изменения, которые происходят в течение длительного времени, от нарядов Фреда и Уилмы Флинтстоунов до костюма Armani и платья Valentino.
Многослойная архитектура, при всей своей гибкости, не лишена недостатков. Давайте добавим к вышеописанным преобразованиям теплой одежды новое условие – костюм должен быть «стильным». Это уже задачка потруднее. Чем больше в протоколе условий, тем жестче ограничения. В этом смысле унифицированная система без многослойных процессов будет работать лучше, потому что в ней нет независимых протоколов для каждой функции. Не забудьте, что протокол – это комплекс правил, или технических условий, который предопределяет допустимые интерфейсы, или взаимодействия, как внутри слоя, так и между слоями. Проще было бы взять дорогой материал, который убережет вас от холода и сырости, и сшить один удобный, легкий и практичный комбинезон. Кинул его в дорожную сумку, а когда понадобится – быстро надел. Возможно, вы будете выглядеть в нем даже стройнее и более стильно! Тогда вам хватило бы одного этого предмета одежды на всю оставшуюся жизнь. Мечта!
Однако для сложной системы единообразная функциональная структура – не лучший вариант, ведь из-за одной малейшей неполадки весь процесс может пойти насмарку, да к тому же такую систему труднее усовершенствовать. Напоретесь на гвоздь, порвете одну штанину своего идеального комбинезона, и он пропадет весь целиком. В многослойной системе у вас хотя бы оставались резервные части, и починить ее или что-то в ней заменить было дешевле и легче. Мало ли, вдруг изобретут более качественный, дышащий материал? Чтобы получить такой бонус, придется выбросить старый костюм и купить новый, а это дорого. На обслуживание унифицированной системы требуется больше времени, энергии и средств, то есть вы идете на компромисс и за более высокую эффективность получаете более дорогую и не такую устойчивую систему. Система, каждый слой которой обеспечивает выполнение различных функций, – более гибкая в целом, что дает ей огромное преимущество в изменчивой внешней среде. С точки зрения эволюции, это идеальный тип структуры, потому что слабых мест не так уж много, а возможностей для модификации – великое множество. Когда в окружающей среде что-то поменяется, такие системы смогут адаптироваться быстрее и легче. В общем, для сложной системы наиболее выгодна многослойная архитектура, так как ее проще восстановить и адаптировать к новым условиям, она требует меньших затрат и лучше развивается.
Вместе с тем многослойные системы не застрахованы от сбоев в протоколе. Если система сломается, окажется в кризисной ситуации или даже будет захвачена, могут наступить катастрофические последствия. Например, из-за нарушения протокола на уровне шитья разойдутся швы на ваших шерстяных штанах, и тогда одежда перестанет выполнять свои функции – с тем же успехом вы могли бы облачиться в дикарскую юбку из травы и листьев. Если биологическая система – ваш организм и будут атакованы протоколы иммунной системы, у вас может развиться аутоиммунное заболевание. Из-за множества компонентов и уровней подсистем эффект от взаимодействий в сложной системе может быть непредсказуемым. Небольшая ошибка в каком-нибудь фрагменте системы может не слишком сильно повлиять на его частные локальные функции, но при его взаимодействии с другими фрагментами значение такой ошибки вырастет и она повлияет на работу всей системы. Такое непредсказуемое взаимодействие может привести к гибели системы[24].
Нарушения в протоколах могут расшатать самую устойчивую систему, но есть один плюс – во всей системе не так уж много ключевых точек для атаки. Более того, поврежденная сложная система способна худо-бедно существовать, а вот унифицированная может и вовсе отказать, если хотя бы один ее компонент подвергнется атаке.
Почему нельзя просто устранить ошибки в системе? Почему нельзя избавиться от точек атаки? Дело в том, что новые методы решения одной проблемы неизбежно влекут за собой появление новых дырок, и их тоже придется латать. Повышение устойчивости – это гонка вооружений, в ходе которой в системе образуется все больше и больше слоев, и она становится все сложнее и сложнее. Эволюция нашего сложного мозга и организма из того самого первичного бульона – как и авиалайнера из болтов и гаек велосипеда братьев Райт – стала не чем иным, как результатом гонки вооружений с добавлением одного за другим слоев, обеспечивающих устойчивость в борьбе с хрупкостью. Вспомните Черную королеву, которая бежит все быстрее и быстрее, чтобы остаться на месте. Неужели нет нам спасения? Можно принять контрмеры – сделать систему избыточной.
Мозговой штурм
Протокол слоя ограничивает варианты исходящей информации, но не диктует выбор варианта. Ограничения, которые снимают ограничения, – это не то же самое, что причинно-следственная зависимость. Условие может ограничивать количество исходящих вариантов, но не является причиной выбора того или иного варианта. Когда вы собираетесь в гости, ваш гардероб – и, возможно, ваши представления о том, как следует одеваться на светское мероприятие, – накладывает ограничения на костюм, но не предписывает вам выбирать определенные предметы одежды. Свобода выбора остается. Протокол ограничений, снимающих ограничения, не предопределяет жестко конечный вариант. Если не отдавать себе отчета в том, что вы имеете дело с протоколом многоуровневой архитектуры, подобное заблуждение может существенно навредить. Этак вы, пожалуй, решите, будто картину возбуждения нейронов, иначе говоря, «состояние мозга», можно восстановить по вызванному этим состоянием поведению. Выдающийся нейробиолог Ив Мардер ясно показала ошибочность такой логики на примере кишечника омара[25].
Мардер изучала «уровень пищеварения» омара по перистальтике его кишечника. Она выделила и рассмотрела все до одного нейроны и синапсы, участвующие в сокращениях кишки омара, вплоть до работы нейромедиаторов. Вы можете подобрать миллиард вариантов вечернего костюма из имеющихся у вас вещей, комбинируя их так и эдак – например, надевая носки на руки или юбку поверх джинсов, – вот и Мардер нашла в этом крошечном кишечнике 2 миллиона возможных сетевых комбинаций. Но, как и с вашими нарядами, предписанные протоколом ограничения сужают спектр исходящих вариантов – функциональной оказывается лишь малая их часть. Вы же не надеваете трусы поверх брюк и жакет под коктейльное платье, хотя могли бы. Как и в случае с вашей коллекцией одежды, небольшая доля от миллиарда или от двух миллионов – это все равно достаточно широкий выбор. Фактически работоспособными оказываются один-два процента – в любой момент времени от ста до двухсот тысяч сочетаний этой кучки нейронов вызывают одинаковое поведение. Подобно тому, как существует множество вариантов сочетания одежды, на уровне моторики задача может быть выполнена многими способами. Это пример многовариантной реализуемости, наглядное представление о том, что, когда дело касается возбуждения нейронов, возможны разные альтернативы. Иными словами, одни и те же свойства, состояния и проявления психики могут быть обусловлены различными паттернами активности нейронов. Казалось бы, пустая трата биохимической энергии и эволюционного времени. Но это означает, что если одна ниточка рвется, тут же натягивается другая.