Понимание P2P (peer-to-peer) коммуникации, которая поддерживает сети блокчейн
Существует три основных элемента, составляющих блокчейн: P2P-коммуникация, криптография и алгоритмы консенсуса. Понимание Bitcoin — это также понимание блокчейна, поэтому здесь мы попытаемся понять, как работает каждый элемент, и что он означает, концептуально создав Биткойн в своем воображении, и попытавшись запустить его.
Допустим, наша цель — создать систему цифровых валют, не требующую доверия и гарантированно безопасную. “Без доверия” означает, что вам не нужно доверять конкретному человеку (или чему-то), чтобы использовать его. Другими словами, независимо от того, насколько плох кто-то в системе, другие пользователи могут использовать ее без проблем.
Например, рассмотрим повседневный обмен деньгами. Если вы даете деньги другу наличными, операция проходит без проблем. Даже если ваш друг не доверяет вам, сделка все равно состоится, потому что наличные деньги имеют неоспоримую ценность как наличные деньги. Эту сделку можно охарактеризовать как бездоверительную.
Вышеуказанная сделка может состояться только тогда, когда обе стороны находятся в непосредственной близости друг от друга. Если вы и ваш друг находитесь далеко друг от друга, как вы передадите деньги своему другу? Понятно, что для передачи ему денег вы воспользуетесь услугами стороннего учреждения, например, банка. Именно здесь в игру вступает доверие. Обычно мы не думаем об этом, но мы верим, что банк отдаст деньги нашему другу.
Многим сторонникам блокчейна не нравится идея системы, которая полагается на третью сторону, например, банк. Они хотят иметь возможность совершать сделки без посредников, даже с людьми, находящимися на большом расстоянии.
Если мы оглянемся на свою жизнь, то увидим, что мы зависим от всевозможных институтов, не только от банков, но и от правительств и компаний. Опасно ли такое положение дел или нет, зависит от ваших личных ощущений, но думается, что люди, продвигающие блокчейн, разрабатывают систему без доверия с мыслью о том, что было бы неплохо иметь систему, которая хорошо работает без каких-либо институтов.
Это может быть трудно представить, потому что это абстрактное объяснение, но, говоря очень просто, мы не хотим создавать место или институт в системе, где власть сосредоточена в “одних руках”.
Позвольте вернуться к сути вопроса. Что нужно сделать в первую очередь, чтобы создать валютную систему? Поскольку мы обмениваемся цифровой валютой, первое, что нам нужно сделать, это построить сеть, которая позволит нам отправлять и получать информацию в электронном виде. Существует два основных способа построения сети, позволяющих персональным устройствам общаться: P2P и клиент-сервер. P2P — это тот, который используется в блокчейне.
Коммуникация типа P2P, и коммуникация типа клиент-сервер
P2P означает Peer to Peer, что переводится как «соединять подобное с подобным», и в сети P2P отдельные устройства напрямую соединяются, образуя сеть в целом. В P2P вся сеть строится путем прямого соединения отдельных терминалов, т.е. ваш компьютер подключен к нескольким соседним компьютерам, которые, в свою очередь, подключены к еще нескольким компьютерам, и так далее, пока, наконец, не будет построена сеть с отдельными компьютерами в качестве точек ответвления.
В модели клиент-сервер отдельные терминалы (клиенты) подключены через центральный сервер, названный в честь двух ролей, которые играют компьютеры, составляющие сеть: сервер и клиент.
Когда вы отправляете кому-то сообщение в Twitter или по электронной почте, содержание сообщения сразу же отображается на его устройстве, создавая впечатление, что два устройства напрямую связаны. Однако многие из этих устройств не общаются друг с другом напрямую. Это связано с тем, что каждый терминал получает данные только через сервер, управляемый компанией, предоставляющей услугу. Это модель клиент-сервер.
P2P стал известен благодаря Napster и Winny, которые были популярными программами для обмена файлами в 1999 году и в начале 2000-х годов, но из-за проблем с авторским правом у некоторых людей может сложиться впечатление, что P2P является незаконным. Однако проблема с файлообменным программным обеспечением заключается в авторских правах на обрабатываемый им контент, а сама технология P2P не является незаконной.
Если у вас есть смартфон или компьютер, вы можете использовать P2P-коммуникацию. Это означает, что в настоящее время большинство людей имеют возможность пользоваться P2P-коммуникациями благодаря широкому распространению смартфонов и компьютеров. Ярким примером этого может послужить BitTeam.
Преимуществом сети P2P является ее устойчивость к сбоям: в сети P2P несколько компьютеров соединены друг с другом, поэтому если один из компьютеров подвергается атаке или ломается, сама сеть не страдает, и обмен данными может продолжаться. С другой стороны, в случае модели клиент-сервер, если сервер выйдет из строя, даже если у клиента нет проблем, он не сможет обмениваться данными.
Недостатком P2P является «беззаконие»: поскольку не существует центрального органа, контролирующего P2P-коммуникации, в принципе невозможно гарантировать упорядоченность сети и точность информации. Поэтому, если вы хотите создать сеть с определенным уровнем функциональности, используя P2P-коммуникации, вам необходимо тщательно разработать правила, регулирующие поведение участников сети.
Как уже говорилось ранее, модель P2P предпочтительнее для блокчейна. Это связано с тем, что если есть центральный сервер, то он становится единой точкой отказа, на которую можно напасть извне и подделать данные. А затем возникает вопрос: «Кто будет управлять центральным сервером? Если у вас есть администратор, вы должны доверять этому администратору, что делает систему менее надежной. По этой причине блокчейн использует P2P в качестве базового метода сетевого взаимодействия, поскольку все устройства могут рассматриваться одинаково. На Сoinmarketrate.com вы найдете массу проектов с использованием этой технологии.
В настоящее время Интернет работает по принципу клиент-сервер. Причина этого в том, что модель клиент-сервер проще для аутентификации и управления безопасностью. Как упоминалось выше, в модели клиент-сервер все узлы (в данном случае компьютерный терминал) проходят через сервер, поэтому сервер может централизованно управлять сетью. В P2P, однако, нет сервера, что усложняет интеграцию механизма управления. Кроме того, P2P имеет проблему медленного распространения данных, поэтому сегодня в Интернете широко используется модель клиент-сервер, поскольку она более централизована и предоставляет более стабильные услуги.
Типы P2P
Существует два типа P2P: «гибридный P2P» и «чистый P2P».
- Гибридный P2P: сервер берет на себя поиск узлов и аутентификацию, в то время как передача данных осуществляется непосредственно между узлами. Его преимущества заключаются в простом контроле безопасности и быстром извлечении информации, но он менее устойчив к сбоям, поскольку сервер является единой точкой отказа.
- Чистый P2P: Все узлы равноправны, поиск и передача данных осуществляется автономно за счет связи между узлами. Преимуществом является, как уже упоминалось выше, «отказоустойчивость», а недостатком — сложность реализации в виде сервиса.
Так какой из этих методов следует взять на вооружение?
Конечно, чистый P2P, поскольку нас волнует вопрос доверия. Гибридный P2P создает иерархические отношения между узлами, что означает, что равенство сети теряется.
Программное обеспечение для обмена файлами P2P и блокчейн
С точки зрения обмена данными в сети P2P, программное обеспечение для обмена файлами P2P и блокчейн, на первый взгляд, делают одно и то же. В чем разница между ними?
Между файлообменным программным обеспечением P2P и блокчейном есть два различия: объем данных, хранящихся на узле, и стимул для поддержания узла.
Сколько данных хранится на узле?
В программах для совместного использования файлов P2P каждый узел имеет разное количество информации, поэтому обычно посылается запрос на нужную вам информацию, а затем посылаются запросы, пока не найдется узел, имеющий такую информацию. В блокчейне каждый узел хранит все данные.
Стимулы для поддержания узлов
У программного обеспечения для обмена файлами P2P нет стимула постоянно держать узлы в сети. Вам нужно подключаться к ним только тогда, когда у вас есть нужные файлы. Блокчейн, с другой стороны, имеет то преимущество, что узлы постоянно находятся в режиме онлайн. В блокчейн, с другой стороны, есть преимущество в поддержании узла в режиме онлайн, поскольку вы получаете вознаграждение за участие и успешную добычу монет. Это вознаграждение является стимулом для поддержания узла в сети, что, в свою очередь, помогает поддерживать сеть.
Существует два типа узлов: те, которые хранят все данные, и те, которые хранят только некоторые данные. Термин «узел» относится к узлу, который обладает всей информацией в блокчейне (полный узел блокчейна).
Благодаря коммуникации типа P2P нам удалось создать равноправную сеть обмена данными, которая не зависит от центрального сервера.