Как BitTorrent браузер строила, или Прелести и гадости чистого P2P

Имя компании BitTorrent Inc. — той самой, что совершила революцию в файлообмене, разработав одноимённый протокол для передачи файлов — снова у всех на устах: объявлено о начале закрытого альфа-тестирования продукта под названием Project Maelstrom. Чем бы новинка ни оказалась, можно быть уверенным, что авторитет создателя обеспечит ей по крайней мере хороший старт. Однако в данном случае речь и в самом деле идёт о штуке оригинальной, если не уникальной. Да, BitTorrent снова собирается перевернуть компьютерный мир вверх тормашками, а точнее — переставить Веб на новые рельсы: децентрализованные.

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

Можно ли обойтись без центрального узла? По крайней мере для обмена файлами — можно, и именно так работает протокол BitTorrent. Здесь файл собирается из кусков, которые скачиваются не только с сервера, но и с компьютеров других участников обмена (участники по-английски именуются «пирами», отсюда P2P — peer-to-peer). Так нельзя ли и Веб сделать децентрализованной? В BitTorrent Inc. считают, что можно: встречайте Maelstrom!

Строго говоря, Maelstrom — это не программа, а набор правил (или протокол) для публикации веб-сайта в виде торрента. Когда протокол будет разработан, его поддержку (например, с помощью плагинов) можно будет добавить в браузеры и другие программы. Рядовой пользователь браузера, поддерживающего Maelstrom, разницы не заметит: он так же будет вводить URL в адресную строку и получать требуемое на экране. Разница обнаружится, если копнуть глубже: браузер (сейчас в BitTorrent экспериментируют с Chromium) теперь собирает веб-сайт по кусочкам, запрашиваемым не только у сервера, но и других сетян. Скачивает его, словно «торрент».

Понятное дело, тут возникает множество нюансов, которые необходимо проработать (например, как быстро внести изменения в код такого сайта?). Поэтому Maelstrom пока и находится в закрытом тестировании. Заявку на участие можно подать, но нет гарантий, что вас пригласят.

Однако существует замена, позволяющая начать экспериментировать с децентрализованной Веб прямо сейчас. Причём замена давно отлаженная, отшлифованная и универсальная. Короче говоря, то, чем Maelstrom однажды должен будет стать. Я говорю о Freenet: одном из старейших, интереснейших и самых успешных P2P-проектов. Едва ли многие из вас захотят продолжить работать с ним после первого знакомства, зато именно на его примере можно в полной степени оценить все прелести и гадости «чистого P2P». Потратьте полчаса на установку и изучение этой программы (она свободная, есть версии для всех популярных операционок), вы не пожалеете.

Freenet — это децентрализация, возведенная в ранг догмы. Здесь все участники равны и равенство абсолютное, распространяющееся как на права, так и на обязанности. Каждый компьютер, на котором запущено программное обеспечение Freenet, становится клиентом и сервером одновременно. Компьютеры участников обязательно хранят какие-то данные, необходимые для функционирования всей сети — и каждый участник сети вправе что-нибудь опубликовать, то есть получить место на чужих дисках.

Документ, «заливаемый» во Freenet, не хранится на каком-то одном компьютере, а разбивается на тысячи небольших кусков, которые рассеиваются по жёстким дискам участников, редуплицируясь до такой степени, что отключение нескольких узлов не влияет на его сохранность. По той же причине ни один из участников не знает, что именно хранится на его собственном диске (куски, кроме прочего, шифруются). Чтобы скачать документ, нужно знать его «адрес» (ключ): если ключ дан, Freenet сама опрашивает узлы и собирает файл для пользователя. А уж что именно вы запросили, не имеет значения: это может быть текст, видеоролик, веб-сайт.

Прелести такой схемы не всегда очевидны, но всегда ценные. Возьмите хоть абсолютную анонимность: наблюдая за вашим компьютером со стороны, невозможно понять, какой контент вы скачивали, какой размещали, какой храните у себя. Отсюда — сетевая нейтральность, о которой сейчас так беспокоятся в развитых странах: во Freenet она соблюдается автоматически! Подумайте, ведь ни затормозить получение какого-то файла, ни ускорить этот процесс, отдельно взятый провайдер на сможет, потому что не знает, что именно вы в данный момент скачиваете.

Отсюда же — достоинство номер три: цензура здесь невозможна по определению. Нельзя уничтожить сервер с неугодным контентом, потому что и сервера как такового не существует: придётся уничтожать всю сеть! Размещай создатели Silk Road свои магазины во Freenet, они и сегодня гуляли бы на свободе. А The Pirate Bay продолжал бы работать.

Наконец, парадоксальный четвертый плюс состоит в необыкновенной реакции Freenet на нагрузку. Чем больше спрос на конкретный документ, тем легче и быстрее его можно получить: ведь он словно впитывается в сеть, оседает на большем количестве узлов. И, кстати, тем дольше он хранится (срок хранения файлов во Freenet не бесконечный; те, которые никому не нужны, со временем удаляются).

Однако есть и минусы, увы — и вы быстро их обнаружите. Прежде всего это сравнительно низкая скорость передачи данных и сравнительно высокая нагрузка на интернет-канал. Сборка документов из кусков, естественно, требует совершения некоторой промежуточной работы и затрат времени. Популярные Freenet-сайты, впрочем, отображаются быстро, почти так же быстро, как и сайты обычной Веб. Но сборки менее популярных приходится порой ждать минутами, а редко скачиваемые крупные файлы (сотни мегабайт) могут потребовать нескольких суток. И кстати, сайты здесь статичны: интерактивность не так-то просто переставить на децентрализованные рельсы.

Потом, абсолютная свобода — отнюдь не всегда хорошо. Freenet задумывалась и развивается как инструмент, способный обеспечить маниакально высокую степень анонимности. К сожалению, вместе с диссидентами, например, это оценили и всевозможные мошенники, злоумышленники, извращенцы. Отправляясь во Freenet, стоит понимать, что значительная часть хранящегося в ней контента незаконна, а вероятность наткнуться на подобные материалы здесь куда выше, чем в обыкновенной Веб. Да, тут масса интересного и полезного, но буквально бок о бок с ним лежит детская порнография, высококачественные сканы банкнот, пособия для начинающих террористов…

Что ж, Freenet всегда был научным проектом, излишняя сложность которого и тяга к экспериментальной чистоте отпугивали простых пользователей. Новое детище BitTorrent может оказаться более практичным и простым — и совершить долгожданную революцию, избавив Веб от болезни централизации. Не стоит лишь забывать уроки Freenet: разработчикам и пользователям Maelstrom предстоит столкнуться с теми же болячками. Ребятам из BitTorrent не привыкать к косым взглядам: ведь и сами «торренты» долгое время считались «пиратским» инструментом. Вопрос в том, насколько в данном конкретном случае можно быть уверенным, что полезные качества децентрализации перевесят вредные побочные эффекты.

Для Freenet, за все пятнадцать лет её существования, такой уверенности не появилось.

Что будем искать? Например,ChatGPT

Мы в социальных сетях