💾 Archived View for causa-arcana.com › blog › 2020 › 06 › 04 › decentralized-vs-distributed.html captured on 2022-07-16 at 13:48:34.
⬅️ Previous capture (2022-04-29)
-=-=-=-=-=-=-
<!DOCTYPE html> <html class="h-100" lang="ru"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no, user-scalable=no"/> <title>Децентрализованные сервисы против распределённых | Causa Arcana</title> <link rel="canonical" href="https://causa-arcana.com/blog/2020/06/04/decentralized-vs-distributed.html"/> <link rel="alternate" type="application/rss+xml" title="Causa Arcana" href="https://causa-arcana.com/blog/feed.xml"/> <meta name="description" content=" Более правильная, но менее известная схема, показывающая разницу между централизованными, децентрализованными и распределёнными сетями. В данной статье я расскажу про два подхода к созданию сервисов, не зависящих от единственно..."/> <meta name="twitter:card" content="summary"/> <meta name="twitter:site" content="@causa_arcana"/> <meta name="twitter:creator" content="@causa_arcana"/> <meta name="twitter:title" content="Децентрализованные сервисы против распределённых | Causa Arcana"/> <meta name="twitter:description" content=" Более правильная, но менее известная схема, показывающая разницу между централизованными, децентрализованными и распределёнными сетями. В данной статье я расскажу про два подхода к созданию сервисов, не зависящих от единственно..."/> <meta name="twitter:image" content="https://causa-arcana.com/assets/images/blog/preview/decentralized-vs-distributed.png"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://causa-arcana.com/blog/2020/06/04/decentralized-vs-distributed.html"/> <meta property="og:title" content="Децентрализованные сервисы против распределённых | Causa Arcana"/> <meta property="og:description" content=" Более правильная, но менее известная схема, показывающая разницу между централизованными, децентрализованными и распределёнными сетями. В данной статье я расскажу про два подхода к созданию сервисов, не зависящих от единственно..."/> <meta property="og:image" content="https://causa-arcana.com/assets/images/blog/preview/decentralized-vs-distributed.png"/> <link href="../../../../assets/images/logo-small.jpg" rel="icon" type="image/jpg" /> <link href="../../../../assets/stylesheets/site.css" rel="stylesheet" /> </head> <body class="d-flex flex-column h-100"> <header> <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <div class="container-fluid"> <a href="../../../../index.html" class="navbar-brand"> <img src="../../../../assets/images/logo-small.jpg" width="30" height="30" alt="Логотип" /> Causa Arcana </a> <div class="navbar-collapse"> <ul class="navbar-nav me-auto"> <li class="nav-item"> <a href="../../../feed.html" class="nav-link active "> Блог </a> </li> <li class="nav-item"> <a href="../../../../sources.html" class="nav-link "> Источники </a> </li> <li class="nav-item"> <a href="../../../../git.html" class="nav-link "> Git </a> </li> <li class="nav-item"> <a href="../../../../team/index.html" class="nav-link "> Наша команда </a> </li> </ul> </div> </div> </nav> </header> <main> <article class="cl-blog-article container mt-4 mb-5"> <header> <h1>Децентрализованные сервисы против распределённых</h1> <p> <small class="text-muted"> <time datetime="2020-06-04T11:22:00Z"> 4 Июнь, 2020 11:22 </time> </small> • <small class="text-muted"> Александр Котов </small> • <a href="https://link.medium.com/HJP6SuXqQ7"><i class="fab fa-medium"></i> Medium</a> <br/> <span class="badge bg-secondary me-2"> децентрализация </span> <span class="badge bg-secondary me-2"> криптоанархизм </span> <span class="badge bg-secondary me-2"> цензура </span> <span class="badge bg-secondary me-2"> технологии </span> </p> </header> <div class="blog-article--main mt-5 text-break"> <div class="d-flex justify-content-center"> <figure class="nice-figure"> <img src="../../../../assets/images/blog/decentralized-vs-distributed.png" alt="Более правильная, но менее известная схема, показывающая разницу между централизованными, децентрализованными и распределёнными сетями."/> <figcaption> Более правильная, но менее известная схема, показывающая разницу между централизованными, децентрализованными и распределёнными сетями. </figcaption> </figure> </div> <p>В данной статье я расскажу про два подхода к созданию сервисов, не зависящих от единственного центрального узла, и сравню их перспективы. Я пока не ставлю целью создание подробной классификации подходов с примерами, хотя надеюсь сделать это в будущем.</p> <p>Под <strong>сервисами</strong> я понимаю как привычные веб-приложения, для доступа к которым нужно зайти на веб-сайт, так и распределённые сети, предоставляющие услуги через клиентские приложения, устанавливаемые на компьютер или смартфон. В последнее время разница между этими понятиями стирается, и для нашего исследования она не имеет значения.</p> <h2>Классификация</h2> <h3>Централизованные сервисы</h3> <p>В централизованном сервисе имеется одна высшая <strong>инстанция, принимающая решения</strong> (англ. authority). Не имеет значения, насколько много у него физических серверов. Сейчас любой нагруженный сервис использует множество серверов в разных частях света (от англ. CDN – Content Delivery Network) для более быстрой доставки содержимого до пользователя. Однако, решения о возможности размещения информации, об ограничении доступа к ней принимаются владельцами сервиса.</p> <p>Примеры таких сервисов знакомы каждому. Я приведу несколько сервисов с указанием услуги, которую они предоставляют, чтобы читателю была понятна дальнейшая классификация:</p> <ul> <li>Blogger, Medium – текстовые блоги.</li> <li>YouTube, Vimeo, Dailymotion – размещение видео.</li> <li>SoundCloud – размещение аудио.</li> <li>Dropbox, Google Disk, iCloud – размещение произвольных файлов.</li> <li>GitHub Gist, Google Docs – размещение и редактирование текстовых документов.</li> </ul> <p>Названия некоторых из этих сервисов могут вызвать множество неприятных ассоциаций. Централизованные сервисы часто бывают замечены в цензуре, в утечке незашифрованных данных из-за нарушения прав доступа, в передаче данных правоохранительным органам.</p> <h3>Децентрализованные сервисы</h3> <p>В децентрализованном сервисе имеется множество инстанций, принимающих решения. Пользователь может выбрать того поставщика услуг, которого считает лучше. Наиболее известные примеры:</p> <ul> <li><a href="https://mediawiki.org">MediaWiki</a> – движок, на котором работает Wikipedia. Если вас не устраивает её политика, вы можете поднять собственные сервер или воспользоваться множеством готовых хостингов wiki-сайтов.</li> <li>RSS позволяет пользователям создавать ленты новостей из самых различных источников, никак не связанных между собой.</li> </ul> <p>Одной из разновидностей децентрализованных сервисов являются <strong>федеративные</strong> сервисы. В них множество независимых серверов объединяются в одну сеть, и пользователь любого сервера имеет доступ к информации, размещённой во всей сети. Это позволяет получить <strong>сетевой эффект</strong>, который очень важен для развития технологии. Он заключается в том, что полезность сети зависит экспоненциально от количества пользователей. В качестве примера можно привести телефонию, которая тем ценнее для абонента, чем с большим количеством абонентов он может связаться. Кстати, телефония также может быть примером федеративной сети, если углубиться в технические детали её реализации.</p> <p>Вероятно, именно благодаря сетевому эффекту в последние годы федеративная архитектура стала весьма популярна среди программистов, создающих аналоги централизованных сервисов. Вот несколько примеров таких систем:</p> <ul> <li><a href="https://matrix.org">Matrix</a> – мессенджер (собственный одноимённый протокол).</li> <li><a href="https://joinpeertube.org">PeerTube</a> – видео-хостинг (протокол ActivityPub).</li> <li><a href="https://joinmastodon.org">Mastodon</a> – микроблог, аналог Twitter (протокол ActivityPub).</li> <li><a href="https://diasporafoundation.org">Diaspora</a> – социальная сеть (собственный одноимённый протокол).</li> </ul> <p>При всех преимуществах федеративной архитектуры, в ней по прежнему возможна цензура, как на уровне отдельных пользователей (удаление аккаунта пользователя владельцем сервера), так и на уровне федерации (блокировка одного сервера другим). Первое заставляет выбирать сервер с подходящими правилами вместо более технически надёжного и совершенного. Второе сильно снижает сетевой эффект.</p> <h3>Распределённые сервисы</h3> <p>В распределённом сервисе отсутствует инстанция, принимающая решения. Также можно сказать, что такой инстацией является вся сеть, принимающая решения автоматически за счёт своей архитектуры. Благодаря этому правила являются универсальными и не зависят от человеческого фактора и содержания хранимой или передаваемой информации. Часто информация в сети зашифрована, и отдельные участники сети не знают, какую именно информацию они хранят или передают. Примеры распределённых сетей:</p> <ul> <li><a href="https://bitcoin.org">Bitcoin</a> и другие криптовалюты – основаны на технологии blockchain. Участники сети получают оплату за подтверждение финансовых (и не только) транзакций, навсегда сохраняющихся в истории сети.</li> <li><a href="https://ipfs.io">IPFS</a> (InterPlanetary File System) – глобальное хранилище информации. Работает как временный кэш, но также возможно использование специальных сервисов (платных или волонтёрских), гарантирующих сохранность информации.</li> <li><a href="https://torproject.org">Tor</a> – анонимная сеть для обхода блокировок через выходные узлы (англ. exit node) и доступа к скрытым сервисам внутри сети (англ. hidden service). В обоих случаях ни один узел сети, кроме конечного, не знает, какая информация передаётся через сеть. Кому передаётся информация не знает даже конечный узел.</li> </ul> <p>Разработка распределённых сервисов для самых базовых услуг гораздо сложнее, чем разработка децентрализованных, потому что их работу не гарантирует одна или множество инстанций. В них должны согласовываться противоречивые интересы множества участников сети. По этой причине они не столь распространены, как федеративные сервисы.</p> <p>Для реализации более сложных функций в распределённых сетях используется <strong>многослойная архитектура</strong>. Базовый слой обеспечивает бесперебойные хранение и передачу информации, а работающие поверх него слои уже обеспечивают бизнес-логику. Так, например, работает <a href="https://lightning.network">Lightning Network</a> поверх Bitcoin. Так устроен и Интернет (см. <a href="https://ru.wikipedia.org/wiki/Сетевая_модель_OSI">модель OSI</a> и стек <a href="https://ru.wikipedia.org/wiki/TCP/IP">TCP/IP</a>).</p> <h2>Проблемы и перспективы</h2> <p>Давайте рассмотрим, какая мотивация движет участниками децентрализованных и распределённых сетей, что обеспечивает их работу.</p> <p>Основной мотивацией является независимость от централизованных частных сервисов, которые могут устанавливать произвольные правила, в том числе цензурировать информацию, показывать рекламу или требовать оплату. Однако, в децентрализованной сети пользователи по прежнему зависят от воли того поставщика, которого они выбрали. Это называется <strong>привязкой к поставщику</strong> (англ. vendor lock-in). Пользователи вкладывают ресурсы в продвижение своего содержимого на выбранной платформе, их ссылки ведут на эту платформу.</p> <p>Причин для цензуры в децентрализованных сервисах может быть множество. Конечно, никто не хочет давать площадку оскорбительному содержимому. Это касается как волонтёрских сервисов, которые существуют исключительно по доброй воле их владельца или доноров, так и платных сервисов, которые зависят от мнения клиентов.</p> <p>К сожалению, это нивелирует сетевой эффект и не позволяет составить конкуренцию крупным корпорациям. Пытаясь решить реально существующую и раздражающую проблему оскорбительного содержимого, создатели технологий и владельцы сервисов забывают о важнейшем принципе, который, в том числе, способствовал взрывному росту популярности Интернета. Далее мы его сформулируем.</p> <h2>Принцип нейтральности технологий</h2> <p>Принцип звучит так: информационные технологии должны быть нейтральны по отношению к содержанию информации.</p> <p>Известным частным случаем его является <strong>принцип сетевого нейтралитета</strong> (англ. network neutrality). Он заключается в том, что сетевые провайдеры не отдают предпочтение одному трафику перед другим. Как либертарианец я не одобряю такой принцип в виде закона, однако полностью поддерживаю его как часть договора между клиентом и поставщиком услуг. В последние годы о нём часто пишут в СМИ во всём мире. По этим публикациям можно понять, насколько он важен для развития Интернета и для общества.</p> <p>Как можно понять из предшествующего технического описания, распределённые системы позволяют реализовать этот принцип гораздо лучше, чем децентрализованные. Хорошо сказал об этом Caleb James DeLisle, ведущий разработчик технологии cjdns:</p> <figure class="nice-blockquote"> <blockquote> <p> В основе cjdns лежит вера в то, что социальные проблемы, такие как необоснованные изъятия доменов и массовые прослушки, являются результатом устаревших протоколов, дающих слишком большую власть в руки малого количества людей. </p> </blockquote> <figcaption> <a href="https://www.fsf.org/blogs/licensing/interview-with-caleb-james-delisle-of-cjdns"> https://www.fsf.org/blogs/licensing/interview-with-caleb-james-delisle-of-cjdns </a> </figcaption> </figure> <p>Я считаю, что будущее именно за распределёнными сервисами. Только они дают достаточные гарантии сохранности информации, чтобы пользователи были готовы доверять им свою информацию.</p> <p>Значит ли это, что пользователи обязаны видеть оскорбительное содержимое? Конечно же нет. Уже упомянутая многослойная архитектура позволяет существовать рейтинговым сервисам и агентствам, которые пользователь может использовать, чтобы не видеть нежелательную информацию или чтобы потенциально недостоверная информация была помечена специальным образом.</p> </div> </article> </main> <footer class="mt-auto py-4 bg-dark text-light"> <div class="container"> <div class="d-sm-none"> <div class="row row-cols-1"> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://t.me/causa_arcana" class="link-light"><i class="fab fa-telegram"></i> Канал в Telegram</a></li> <li><a href="https://t.me/causa_arcana_chat" class="link-light"><i class="fab fa-telegram"></i> Чат в Telegram</a></li> <li><a href="https://www.youtube.com/c/CausaArcana" class="link-light"><i class="fab fa-youtube"></i> YouTube</a></li> <li><a href="https://medium.com/causa-arcana" class="link-light"><i class="fab fa-medium"></i> Medium</a></li> <li><a href="https://qoto.org/@causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> Mastodon</a></li> <li><a href="https://diode.zone/video-channels/causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> PeerTube</a></li> <li><a href="https://matrix.to/#/#causa-arcana:matrix.org" class="link-light"><i class="far fa-comments"></i> Matrix</a></li> <li><a href="https://twitter.com/causa_arcana" class="link-light"><i class="fab fa-twitter"></i> Twitter</a></li> </ul> </div> </div> </div> <div class="d-none d-sm-block d-md-none"> <div class="row row-cols-2"> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://t.me/causa_arcana" class="link-light"><i class="fab fa-telegram"></i> Канал в Telegram</a></li> <li><a href="https://t.me/causa_arcana_chat" class="link-light"><i class="fab fa-telegram"></i> Чат в Telegram</a></li> <li><a href="https://www.youtube.com/c/CausaArcana" class="link-light"><i class="fab fa-youtube"></i> YouTube</a></li> <li><a href="https://medium.com/causa-arcana" class="link-light"><i class="fab fa-medium"></i> Medium</a></li> </ul> </div> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://qoto.org/@causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> Mastodon</a></li> <li><a href="https://diode.zone/video-channels/causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> PeerTube</a></li> <li><a href="https://matrix.to/#/#causa-arcana:matrix.org" class="link-light"><i class="far fa-comments"></i> Matrix</a></li> <li><a href="https://twitter.com/causa_arcana" class="link-light"><i class="fab fa-twitter"></i> Twitter</a></li> </ul> </div> </div> </div> <div class="d-none d-md-block d-lg-none"> <div class="row row-cols-3"> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://t.me/causa_arcana" class="link-light"><i class="fab fa-telegram"></i> Канал в Telegram</a></li> <li><a href="https://t.me/causa_arcana_chat" class="link-light"><i class="fab fa-telegram"></i> Чат в Telegram</a></li> <li><a href="https://www.youtube.com/c/CausaArcana" class="link-light"><i class="fab fa-youtube"></i> YouTube</a></li> </ul> </div> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://medium.com/causa-arcana" class="link-light"><i class="fab fa-medium"></i> Medium</a></li> <li><a href="https://qoto.org/@causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> Mastodon</a></li> <li><a href="https://diode.zone/video-channels/causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> PeerTube</a></li> </ul> </div> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://matrix.to/#/#causa-arcana:matrix.org" class="link-light"><i class="far fa-comments"></i> Matrix</a></li> <li><a href="https://twitter.com/causa_arcana" class="link-light"><i class="fab fa-twitter"></i> Twitter</a></li> </ul> </div> </div> </div> <div class="d-none d-lg-block"> <div class="row row-cols-4"> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://t.me/causa_arcana" class="link-light"><i class="fab fa-telegram"></i> Канал в Telegram</a></li> <li><a href="https://t.me/causa_arcana_chat" class="link-light"><i class="fab fa-telegram"></i> Чат в Telegram</a></li> </ul> </div> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://www.youtube.com/c/CausaArcana" class="link-light"><i class="fab fa-youtube"></i> YouTube</a></li> <li><a href="https://medium.com/causa-arcana" class="link-light"><i class="fab fa-medium"></i> Medium</a></li> </ul> </div> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://qoto.org/@causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> Mastodon</a></li> <li><a href="https://diode.zone/video-channels/causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> PeerTube</a></li> </ul> </div> <div class="col"> <ul class="list-unstyled mb-0"> <li><a href="https://matrix.to/#/#causa-arcana:matrix.org" class="link-light"><i class="far fa-comments"></i> Matrix</a></li> <li><a href="https://twitter.com/causa_arcana" class="link-light"><i class="fab fa-twitter"></i> Twitter</a></li> </ul> </div> </div> </div> <hr/> <div class="row"> <div class="col-12 col-lg-9"> <p class="mb-0"> <i class="fas fa-rss-square"></i> RSS: <a href="https://causa-arcana.com/blog/feed.xml" class="text-reset">https://causa-arcana.com/blog/feed.xml</a> </p> <p class="mb-0"> <i class="fab fa-creative-commons-by"></i> Содержимое доступно на условиях лицензии <a rel="license" href="https://creativecommons.org/licenses/by/4.0/" class="text-reset">Creative Commons Attribution</a>. </p> <p class="mb-0"> <i class="far fa-envelope"></i> Связь с администрацией: <a href="mailto:admin@causa-arcana.com" class="text-reset"> admin@causa-arcana.com </a> </p> </div> <div class="col-12 col-lg-3"> <hr class="d-block d-lg-none"/> <img src="../../../../assets/images/badge-ipv6.svg" height="24" class="me-2" alt="IPv6" /> <a href="https://no-js.club" target="_blank" class="me-2"> <img src="../../../../assets/images/badge-no-js-club.svg" height="24" alt="no-JS Club" /> </a> <a href="https://1mb.club" target="_blank" class="me-2 link-light"> <span>[1MB Club]</span> </a> </div> </div> </div> </footer> </body> </html>