Что такое P2P?

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

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

Структура P2P может быть подходящей для множества различных случаев использования, но она стала особенно популярной в 1990-х годах, когда были созданы первые программы для обмена файлами. Сегодня P2P-сети стали основой большинства криптовалют, которые составляют значительную часть индустрии блокчейна. В настоящее время они также поддерживаются в других распределенных вычислительных приложениях, включая веб-поисковики, платформы потокового видео, электронные рынки и протокол InterPlanetary File System (IPFS).


Как работает P2P?

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

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

Иными словами, когда узел работает как клиент, он загружает файлы с других узлов сети. Но когда узел работает как сервер, он становится источником, с которого другие узлы могут загружать файлы. Тем не менее, на практике обе функции могут выполняться одновременно (например, загружая файл A и загружая файл B).

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

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


Неупорядоченные P2P-сети

Неупорядоченные P2P-сети не предлагают никакой определенной организации узлов. Участники общаются друг с другом случайным образом. Эти системы считаются эффективными, когда наблюдается высокая активность (например, когда множество узлов часто присоединяются к сети и покидают ее).

Хотя построить неупорядоченные P2P-сети легко, они могут требовать больше ресурсов CPU и памяти, так как запросы на поиск отправляются максимальному количеству пиров. Это, как правило, приводит к перегрузке сети запросами, особенно если существует небольшое количество узлов, предлагающих запрашиваемый контент.


Упорядоченные P2P-сети

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

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


Гибридные P2P-сети

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

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


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

Хотя окружение P2P по своей природе распределено, важно отметить, что существуют различные степени децентрализации. Поэтому не все P2P-сети являются децентрализованными.

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

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


Роль P2P в блокчейне

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

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

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

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

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


Преимущества

Структура P2P блокчейна предлагает множество преимуществ. Одним из самых важных является то, что P2P-сети обеспечивают большую безопасность по сравнению с традиционными клиент-серверными схемами. Распределение блокчейна на большое количество узлов делает его практически защищенным от атак типа отказа в обслуживании (DoS), которые поражают многие системы.

Кроме того, поскольку большинство узлов должны достичь состояния консенсуса перед добавлением данных в блокчейн, практически невозможно для злоумышленника изменить данные. Это особенно верно для крупных сетей, таких как сеть биткойна. Меньшие блокчейн-сети более подвержены атакам, так как один человек или группа могут в конечном итоге контролировать большинство узлов (это называется атакой 51% или атакой большинства).

В результате распределенная P2P-сеть в сочетании с требованиями к большинству дает блокчейн-сетям относительно высокий уровень устойчивости к вредоносной деятельности. Модель P2P — одна из причин, по которой биткойн (и другие блокчейн-сети) смогли достичь так называемой устойчивости к византийским ошибкам.

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


Ограничения

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

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

Одно из других потенциальных ограничений связано с атаками, которые могут возникнуть во время событий Hard Fork. Из-за того, что большинство блокчейн-сетей децентрализованы и с открытым исходным кодом, группы узлов свободны копировать и изменять код, отклоняться от основной цепи и формировать новую параллельную сеть. Hard Fork абсолютно естественен и сам по себе не представляет угрозы, но если определенные меры безопасности не будут правильно применены, обе цепи могут стать уязвимыми для атак повторной передачи.

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


Заключительные мысли

Структура P2P может быть разработана и использована различными способами. Она является основой блокчейна, которая сделала криптовалюты возможными. Структура P2P обеспечивает безопасность, децентрализацию и устойчивость к цензуре благодаря распределению журналов транзакций через большие сети узлов.

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