Когда я учился на матмехе, самые прекрасные определения сути вещей приходили с военной кафедры. Нет, высшая геометрия и функциональный анализ тоже давали много изящных абстракций. Но им не хватало какой-то сермяжной правды, которая изрядно оживляла терминологию преподавателей-ракетчиков. Вот, например: «Куст — это совокупность ветвей и листьев, торчащих из одного места». Именно вокруг этого определения я собрал сегодня ряд историй, которые вроде бы далеки друг от друга. Ну что общего между атаками «Анонимусов», ошибочным предсказанием эпидемии гриппа и распределением детей в школьных классах? Общее здесь — неудачная сетевая архитектура, делающая возможным лёгкий и масштабный перехват управления.
Начну с примера совсем банального. Время от времени знакомые присылают мне смешные косяки перевода через сервис Google Translate. Знаете, что самое удивительное? Что подобные косяки удивляют айтишников — именно от них я обычно получаю такие ссылки. Хотя именно они, много лет работающие в интернете, должны понимать, как функционируют поисковые оптимизаторы. Любой человек может скормить поисковику довольно примитивную «наживку», чтобы вывести свой сайт в первые строки поиска по заданному запросу.
Чем отличается Google Translate? Да ничем. И его точно так же можно «оптимизировать» с минимальными затратами, показав тысячам людей неправильный перевод.
Непонимание этой простоты управления можно увидеть в самых разных местах. Вот недавняя статья Science про ошибки сервиса Google Flu Trends: он уже не раз предсказывал большие эпидемии гриппа, которых в действительности не случилось. Учёные подробно разбирают, как появляются эти ошибки, — включая даже наблюдение, что Google сам провоцирует поиск заданных симптомов с помощью своих подсказок на основе уже известных запросов.
Но увы, основные выводы статьи связаны с интерпретацией данных, а не с архитектурой сети сбора данных. Лишь в одном коротком абзаце мелькает предположение, что, помимо всего прочего, сервис может быть прицельно атакован для накрутки. Но учёным почему-то не хватает ума озвучить более очевидную гипотезу. Атакован, конечно же, не сервис Google Flu Trends, а сам поисковик Google как главное мировое СМИ, через которое накручивается реклама медицинских препаратов и услуг. А это, между прочим, огромный рынок, который нанимает не только оптимизаторов, но и целые армии докторов наук, пишущих о страшных эпидемиях. История с накруткой «свиного гриппа» — наглядный тому пример. Именно это и показывает Google Flu Trends — невыносимую лёгкость управления толпой.
Но что же тут нового? Давно известно, что плотная толпа людей ведёт себя как жидкость, с прямыми аналогиями физических моделей, включая «мексиканские волны» на стадионах и другие нелинейные феномены, в которых микровоздействие может играть существенную роль для макродинамики. И всем наверняка доводилось видеть, как пара–тройка провокаторов «заводят» огромную толпу (к слову сказать, представители спецслужб знают, что такие же методы можно использовать и для противоположных целей, то есть для мирного разгона демонстраций: в толпу вместо провокаторов внедряют несколько симпатичных девушек).
Да, механизм в целом известный. Но вот методы связи сильно изменились. Раньше она была по большей части прямой, аудиовизуальной. Потому и «точки роста» оказывались на виду. Мы знаем имена всех этих гапонов, не говоря уже про того лысого на броневике. Теперь же связь невидимая, мобильная, через множество посредников. Уже не нужны ни броневик, ни имена. Нужен лишь доступ к этой сети связи. А доступ определяется технической подкованностью.
Так и получается анонимная технократия. За последнее десятилетие она сделала огромный шаг от управления мнениями в интернете к управлению ресурсами в реале. Хотя прогнозировать результаты можно было и раньше. Помню, как в конце девяностых я собирал материал для статьи о проектах распределённых вычислений. Начал с позитивных примеров, которые у всех на виду, вроде GIMPS или SETI@Home. Вот как здорово: люди отдают ресурсы своих компьютеров, чтобы вместе вычислить простое число, найти инопланетян или даже победить рак…
А потом оказывается, что они вовсе не с раком борются: компания United Devices самовольно переключила сеть из более чем миллиона персональных компьютеров на поиск лекарства от сибирской язвы (Anthrax Project). «Я подписался на этот проект, потому что мои родители умерли от рака, и я ненавижу эту болезнь, — писал один из канадских участников. — Сколько всего людей умерло от сибирской язвы? Пятеро? А представьте, сколько людей умирает от рака за то время, пока я пишу это письмо!»
Спустя десять лет — похожая история про движение Anonymous. Помните, с чего начиналось? Борьба простых парней против зажравшейся голливудской секты сайентологов, против капиталистов и копирастов. Поддержка Pirate Bay и Wikileaks, атаки на RIAA и MPAA, на платёжные системы Visa и PayPal, на магазин Amazon.com… Вроде логичная линейка, да? Но вот наступил 2011 год, и атаки пошли совершенно в другую сторону — Тунис, Бахрейн, Египет. Где это, кто это?
А потом мы узнали, что самую большую Facebook-группу «египетских революционеров», через которую координировался переворот, анонимно создал сотрудник Google. Вот тут логика действительно восстанавливается. От поисковика до оптимизатора — один шаг. А оттуда уже на обложку журнала Time — как «один из самых влиятельных людей года».
Я понимаю, что меня опять обвинят в антиамериканских наездах. Но тут дело не в политике вообще. Просто некоторые страны по очевидным причинам начали разбираться в этих сетевых эффектах раньше других. Но и наши догоняют. В этом году стали активно прославлять «краудфандинг». Концептуально там история точно такая же, как в примерах выше. Так что ограничусь определением в стиле нашей университетской военной кафедры. Краудфандинг — это такое акционерное общество, в котором нет ни акций, ни общества. Со всеми вытекающими.
Но хватит ругани, давайте лучше подумаем, как эти проблемы решать. Есть такое заблуждение (и именно в него обычно скатываются сторонники политических срачей), что толпе просто нужны правильные руководители. Плохие парни заражают наши компьютеры и делают из них ботнеты? Ну, поставим на каждый комп хороший антивирус. А чтобы лучше работал, свяжем все антивирусы в хорошую общую сеть. Чтобы любую проблему сразу ловить и гасить по всему миру. Дальше понятно, да? Мы создали новый ботнет, ещё более крупный и опасный.
Так что правильное решение, конечно, должно быть связано с архитектурой системы в целом, а не с одним хорошем парнем у руля. Может быть, я не совсем корректно объединил примеры этой статьи под одним названием «плоская сеть» (у этого термина есть строгое техническое определение). Но тут и терминов особых не надо: просто представьте, какая разница между кучей опавших листьев — и листвой на дереве. С точки зрения удалённого космического фотографа — никакой. Разницу показывает ветер. Куча листьев полетит туда, куда он подует. Все за одним. А дерево никуда не полетит. Там сеть фрактальная, не плоская.
Практически все приведённые примеры можно «починить», внедряя именно такие сети. Возьмём сетевое предсказание гриппа: вместо Google Flu Trend, куда может заливать данные кто угодно, достаточно построить сеть с хотя бы ещё одним уровнем иерархии. И даже не надо гадать, кто будет на этом уровне. Практикующие врачи, конечно же. Так устроена, например, компьютерная сеть предупреждения о заболеваниях Sentinelles, которая уже 30 лет работает во Франции.
Точно так же можно привести ещё множество кейсов коллективного «сорсинга» и «фандинга», перед которыми не хочется даже подставлять «крауд-«, потому что там ресурсы собирает именно коллектив-сообщество с внутренней сетью, а не толпа случайных одиночек. Ну и, по идее, статья должна бы кончиться триумфальным объяснением, почему сеть Fidonet лучше, чем сеть Facebook.
Но этот мыслительный ход вы можете проделать и сами. А я в заключение скажу о другом. К сожалению, плоские сети очень глубоко внедрены в нашу культуру. Не в сознание, нет! — но именно в культуру последнего «медийного» столетия. Оттуда они ломятся и в сознание, хотя даже лёгкая фильтрация по паттерну «плоской сети» позволяет заметить заразу.
Знаете, почему школьники разделены в классах по году рождения? Вовсе не для эффективного обучения, конечно же. Давно известна сила горизонтальной передачи знаний у детей: вместо выполнения «вертикальных» требований взрослых они с гораздо большим удовольствием копируют сверстников или ребят немного постарше. Это проявляется, например, в уличных компаниях — но если этот пример кажется слишком негативным, дам другой. Свой первый урок программирования я получил в 1985 году от 14-летнего сверстника. За какие-то полтора часа такой же, как я, пацан обучил меня программировать калькулятор МК-54 с обратной (стековой) нотацией; никто из моих школьных учителей того времени даже не смог бы повторить то, что я сейчас сказал. Да они и сейчас не могут.
Теперь представьте, что вместо класса «один учитель и сорок одногодников» был бы смешанный коллектив с древовидной сетью: мастер учит старших учеников, а они — младших. Так учились ремесленники и другие «семейные бизнесы», так учатся и сейчас в некоторых секциях и кружках. Тут и система передачи данных получается более сбалансированной, и социальные навыки тренируются. Возникает более сплочённый коллектив со своими внутренними связями — а значит, его сложнее взломать.
Ага. Вот этого последнего и не хочется тем, кто привык легко управлять нами через разобщённые плоские сети. Нет-нет, у них, конечно, благие цели. Школа, конечно, лучше, чем уличная банда. Но банда эффективнее и самостоятельнее, чем толпа.