Что такое peer-to-peer (P2P)?

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

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

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


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

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

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

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

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

Мы можем классифицировать peer-to-peer системы в соответствии с их архитектурой. Есть три основных типа: неструктурированные, структурированные и гибридные P2P-сети.


Неструктурированные P2P-сети

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

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


Структурированные P2P-сети

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

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


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

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

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


Деление или децентрализация?

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

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

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


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

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

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

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

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

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


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

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

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

В результате распределенная peer-to-peer сеть в сочетании с требованием консенсуса большинства дает блокчейнам относительно высокий уровень устойчивости к злонамеренной активности. P2P-модель – это одна из причин, по которой Bitcoin (и другие блокчейны) смогли достичь так называемой "византийской отказоустойчивости".

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


Ограничение

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

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

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

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


Итоги

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

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