Децентрализованные сервисы против распределённых

4 Июнь, 2020 11:22 децентрализация крипто-анархизм цензура технологии

Более правильная, но менее известная схема, показывающая разницу между централизованными, децентрализованными и распределёнными сетями.
Более правильная, но менее известная схема, показывающая разницу между централизованными, децентрализованными и распределёнными сетями.

В данной статье я расскажу про два подхода к созданию сервисов, не зависящих от единственного центрального узла, и сравню их перспективы. Я пока не ставлю целью создание подробной классификации подходов с примерами, хотя надеюсь сделать это в будущем.

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


Классификация

Централизованные сервисы

В централизованном сервисе имеется одна высшая инстанция, принимающая решения (англ. authority). Не имеет значения, насколько много у него физических серверов. Сейчас любой нагруженный сервис использует множество серверов в разных частях света (англ. CDN — Content Delivery Network) для более быстрой доставки содержимого до пользователя. Однако, решения о возможности размещения информации, об ограничении доступа к ней принимаются владельцами сервиса.

Примеры таких сервисов знакомы каждому. Я приведу несколько сервисов с указанием услуги, которую они предоставляют, чтобы читателю была понятна дальнейшая классификация:

  • Blogger, Medium — текстовые блоги.
  • YouTube, Vimeo, Dailymotion — размещение видео.
  • SoundCloud — размещение аудио.
  • Dropbox, Google Disk, iCloud — размещение произвольных файлов.
  • GitHub Gist, Google Docs — размещение и редактирование текстовых документов.

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

Децентрализованные сервисы

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

  • MediaWiki — движок, на котором работает Wikipedia. Если вас не устраивает её политика, вы можете поднять собственные сервер или воспользоваться множеством готовых хостингов wiki-сайтов.
  • RSS позволяет пользователям создавать ленты новостей из самых различных источников, никак не связанных между собой.

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

Вероятно, именно благодаря сетевому эффекту в последние годы федеративная архитектура стала весьма популярна среди программистов, создающих аналоги централизованных сервисов. Вот несколько примеров таких систем:

  • Matrix — мессенджер (собственный одноимённый протокол).
  • PeerTube — видео-хостинг (протокол ActivityPub).
  • Mastodon — микроблог, аналог Twitter (протокол ActivityPub).
  • Diaspora — социальная сеть (собственный одноимённый протокол).

При всех преимуществах федеративной архитектуры, в ней по прежнему возможна цензура, как на уровне отдельных пользователей (удаление аккаунта пользователя владельцем сервера), так и на уровне федерации (блокировка одного сервера другим). Первое заставляет выбирать сервер с подходящими правилами вместо более технически надёжного и совершенного. Второе сильно снижает сетевой эффект.

Распределённые сервисы

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

  • Bitcoin и другие криптовалюты — основаны на технологии blockchain. Участники сети получают оплату за подтверждение финансовых (и не только) транзакций, навсегда сохраняющихся в истории сети.
  • IPFS (InterPlanetary File System) — глобальное хранилище информации. Работает как временный кэш, но также возможно использование специальных сервисов (платных или волонтёрских), гарантирующих сохранность информации.
  • Tor — анонимная сеть для обхода блокировок через выходные узлы (англ. exit node) и доступа к скрытым сервисам внутри сети (англ. hidden service). В обоих случаях ни один узел сети, кроме конечного, не знает, какая информация передаётся через сеть. Кому передаётся информация не знает даже конечный узел.

Разработка распределённых сервисов для самых базовых услуг гораздо сложнее, чем разработка децентрализованных, потому что их работу не гарантирует одна или множество инстанций. В них должны согласовываться противоречивые интересы множества участников сети. По этой причине они не столь распространены, как федеративные сервисы.

Для реализации более сложных функций в распределённых сетях используется многослойная архитектура. Базовый слой обеспечивает бесперебойные хранение и передачу информации, а работающие поверх него слои уже обеспечивают бизнес-логику. Так, например, работает Lightning Network поверх Bitcoin. Так устроен и Интернет (см. модель OSI и стек TCP/IP).

Проблемы и перспективы

Давайте рассмотрим, какая мотивация движет участниками децентрализованных и распределённых сетей, что обеспечивает их работу.

Основной мотивацией является независимость от централизованных частных сервисов, которые могут устанавливать произвольные правила, в том числе цензурировать информацию, показывать рекламу или требовать оплату. Однако, в децентрализованной сети пользователи по прежнему зависят от воли того поставщика, которого они выбрали. Это называется привязкой к поставщику (англ. vendor lock-in). Пользователи вкладывают ресурсы в продвижение своего содержимого на выбранной платформе, их ссылки ведут на эту платформу.

Причин для цензуры в децентрализованных сервисах может быть множество. Конечно, никто не хочет давать площадку оскорбительному содержимому. Это касается как волонтёрских сервисов, которые существуют исключительно по доброй воле их владельца или доноров, так и платных сервисов, которые зависят от мнения клиентов.

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

Принцип нейтральности технологий

Принцип звучит так: информационные технологии должны быть нейтральны по отношению к содержанию информации.

Известным частным случаем его является принцип сетевого нейтралитета (англ. network neutrality). Он заключается в том, что сетевые провайдеры не отдают предпочтение одному трафику перед другим. Как либертарианец я не одобряю такой принцип в виде закона, однако полностью поддерживаю его как часть договора между клиентом и поставщиком услуг. В последние годы о нём часто пишут в СМИ во всём мире. По этим публикациям можно понять, насколько он важен для развития Интернета и для общества.

Как можно понять из предшествующего технического описания, распределённые системы позволяют реализовать этот принцип гораздо лучше, чем децентрализованные. Хорошо сказал об этом Caleb James DeLisle, ведущий разработчик технологии cjdns: “В основе cjdns лежит вера в то, что социальные проблемы, такие как необоснованные изъятия доменов и массовые прослушки, являются результатом устаревших протоколов, дающих слишком большую власть в руки малого количества людей.

Я считаю, что будущее именно за распределёнными сервисами. Только они дают достаточные гарантии сохранности информации, чтобы пользователи были готовы доверять им свою информацию.

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