Распределенные сети (Distributed networks) и децентрализованные приложения (decentralized applications). Краткий разбор

Дисклеймер: в данной статье используется материал из разных источников, статей и блогов. Ссылки на полезные материалы можно найти в конце статьи — в разделе Источники.

В данной статье кратко разбирается понятие распределенной сети (distributed networks), чем она отличается от других видов организации сети. Также в статье рассказывается про децентрализованные приложения (decentralized applications), в сравнении с классическими приложениями.

Централизованные, распределенные и децентрализованные сети

Классификация сетей. Слева направо: централизованная децентрализованная и распределенная сети

Классификация сетей. Слева направо: централизованная децентрализованная и распределенная сети

Централизованные сети (centralized networks), такие как социальная сеть Facebook или видеохостинг YouTube, у которых есть конкретные владельцы и центральные узлы управления. Доступ к информации производиться через этот центральной узел (сервер), к которому уже подключаются все остальные узлы (клиенты). На сегодняшний день, данная схема организации сети применяется во подавляющем большинстве сервисов. Централизованная сеть позволяет с лёгкостью осуществлять управление над информацией, так как все данные хранятся централизованно в одном месте. Однако же, в случае выхода из строя сервера, работа всей сети на некоторое время приостановиться. Также, из такой сети можно убрать определенную информацию, просто удалив ее с главного сервера.

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

Одним из ярких примеров децентрализованных сетей является Fediverse — объединение социальных сетей, главной особенностью которых является единое онлайн-пространство. Все сервисы данной федеративной сети используют открытые протоколы ActivityPub и OStatus. Данные протоколы позволяют пользователям разных сервисов свободно обмениваться информацией между собой, при этом каждый из сервисов остается независимой платформой. Также, каждый пользователь может создать свой собственный сервер и свободно интегрировать его в эту федеративную децентрализованную сеть.

Приложения и сервисы, находящиеся в Fediverse

Приложения и сервисы, находящиеся в Fediverse

Важное примечание: Не стоит относить сети доставки контента (Content Delivery Networks) к децентрализованным сетям. CDN представляют собой систему географически разнесенных серверов, которые предназначены для быстрой загрузки пользователями контента. Данные сервера не являются независимыми, они все также принадлежат одному владельцу, на которые отправляется часть информации в главного сервера для того, чтобы повысить доступность и удобство пользования централизованным сервисом.

Сети доставки контента (CDN) не относятся к децентрализованным сетям

Сети доставки контента (CDN) не относятся к децентрализованным сетям

Распределенные сети (distributed networks), также называемые одноранговыми сетями, архитектурно отличаются от предыдущих видов сетей тем, что отсутствует какая-либо инстанция, принанимающая решения, будь то один центральный сервер или группа серверов. Каждый узел в распределенной сети обладает автономией и не зависит от другого. Управление такой сетью обычно осуществляется автоматически, за счет ее архитектуры. Такой тип функционирования не зависит от человеческого фактора и вида информации, которую необходимо передать. Распределённые сети получили большую популярность в сфере криптовалют, где активно используется технология блокчейн (blockchain). К преимуществам распределённых сетей относят крайне высокую отказоустойчивость и повышенную безопасность данных, однако, на сегодняшний день распределенные сети и сервисы остаются намного менее популярными чем традиционные централизованные сети.

Децентрализованные приложения (DApp)

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

Децентрализация в DApp достигается благодаря использованию одноранговой (p2p, peer-to-peer) сети, которая позволяет своим пользователям взаимодействовать между собой без посредников. Технология блокчейна, в свою очередь, обеспечивает распределенное хранение данных и принятие решений через согласие сети. Блокчейн структурно гарантирует подлинность и неподдельность данных, и помимо этого обеспечивает безопасность проводимых с его помощью транзакций.

Сравнение обычных и децентрализованных приложений (DApp)

Сравнение обычных и децентрализованных приложений (DApp)

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

Важное примечание: Принципы работы технологии блокчейна подробно описаны в этом видео

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

  • Высочайшая отказоустойчивость. Для нанесения значимого урона DApp необходимо одновременно вывести из строя множество узлов сети, что сделать труднее, чем отказ одного центрального узла.

  • Безопасность данных. Данные хранящиеся в блокчейне неизменяемы и безопасны, поскольку для изменения информации в одном блоке информации необходимо, чтобы все пользователи достигли консенсуса по данному изменению. Различные алгоритмы консенсуса и такие принципы защиты от изменений, как доказательство работы (proof of work), гарантируют устойчивость данных к изменениям.

  • Конфиденциальность пользователей. Работа децентрализованных приложений не подразумевает использование какой-либо личной информации о пользователе для начала работы.

    Однако DApp не лишены своих недостатков, к которым относятся:

  • Масштабируемость. Децентрализованные приложения сложнее масштабировать на большее число пользователей, чем классические централизованные.

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

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

ИСТОЧНИКИ

© Habrahabr.ru