:RU: Понимание роли полной ноды в достижении сетевого консенсуса

Перевод статьи https://cexplorer.io/article/understanding-the-full-node-s-role-in-network-consensus

image

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

Нода против дорогостоящего ресурса

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

Под дорогостоящим ресурсом мы подразумеваем монеты ADA в случае Cardano или хешрейт в случае Bitcoin.

Для создания блоков необходимы только ноды производителей блоков (пулы) и дорогостоящий ресурс. Это действие может быть выполнено практически без поддержки других (не производящих блоки) полных нод.

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

Люди могут владеть дорогостоящим ресурсом и каким-то образом делегировать его нодам производителей блоков. Монеты ADA можно делегировать из легкого кошелька в любой пул Cardano. Делегирование состоит в отправке транзакции с сертификатом, который позволит включить монеты ADA в общий стейк выбранного пула. Пул, то есть нода производителя блоков, получает более сильные позиции в сети благодаря делегированию, поскольку он может производить больше блоков. На столько больше блоков, на сколько увеличился его общий стейк. Точно таким же образом другие участники могут делегировать монеты ADA другим пулам.

Обычные пользователи могут запустить полную ноду (кошелек Daedalus) и отправить с него сертификат делегирования. Однако метод делегирования не имеет значения в контексте децентрализации (при условии, что у участников есть приватные ключи к монетам ADA).

С Bitcoin ситуация очень похожа. Майнеры делегируют хешрейт выбранному пулу с помощью аппаратного обеспечения ASIC.

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

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

Атака Сивиллы - это тип атаки на сеть, при которой злоумышленник создает несколько поддельных аккаунтов или нод, чтобы получить больше влияния или контроля над сетью.

На изображении ниже вы можете увидеть 4 пользователей, работающих с полными нодами, и злоумышленника (Сивилла), который создал для себя вдвое больше нод.

image

Голосование должно происходить с помощью монет (или хешрейта), а не через ноды, потому что голосование через ноды уязвимо. Если бы голосование через ноды было разрешено, злоумышленник мог бы создать множество поддельных нод (временно выделить большое количество IP-адресов) и голосовать за свои собственные интересы или предпочтения, не вкладывая никаких ресурсов или не имея своего стейка в сети. Это дало бы ему несправедливое преимущество перед честными нодами и поставило бы под угрозу справедливость и легитимность процесса голосования.

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

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

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

Единственная форма голосования, при которой полные ноды играют более важную (но не существенную) роль, - это обновление до более новой или иной версии клиента. Если в сети появятся две несовместимые версии клиента, может произойти форк (разветвление) блокчейна. Форки блокчейна (и, следовательно, сети) неприятны, поскольку они снижают безопасность и стабильность сети, вызывая фрагментацию между пользователями, разработчиками и сообществом, и могут привести к появлению новых монет (cash, classic и т.д.).

В случае платформ смарт контрактов (SC), таких как Cardano или Ethereum, токены (стейблкоины), NFT и приложения теоретически могут дублироваться. Мы вернемся к этой теме позже и объясним, почему этого не может произойти в сети Cardano.

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

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

Голосование через ноды (даже в случае форка сети) имеет еще один существенный недостаток, а именно низкий кворум. В большинстве сетей даже 1% пользователей не используют полную ноду. В сочетании с угрозой атак Сивиллы голосование через полные ноды кажется невозможным. Мы вернемся к обновлениям сети позже.

Роль полных нод в производстве блоков

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

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

Давайте покажем это на практическом примере. Посмотрите на картинку ниже.

Только ноды производителей блоков решают, какие транзакции будут во всех блоках. После блока 5 был форк. Полные ноды ничего не могут с этим поделать и пассивно принимают оба блока 6 и 7. Опять же, только ноды производителей блоков (и дорогостоящий ресурс) решают, какая цепочка победит. Случайно выбранный производитель блоков добавит блок 8.

image

В случае форка все ноды (включая пулы) в сети следуют одним и тем же правилам относительно принятия блоков и выбора цепочки в случае форка.

В случае с Cardano применяется правило самой длинной цепочки. Если обе цепочки имеют одинаковую длину, то решение принимает значение выхода VRF (проверяемая случайная функция) в последних блоках. Случайно выбранный пул, ставший лидером слота, должен выбрать цепочку с меньшим выходным значением VRF.

В случае с Bitcoin оператор пула выбирает цепочку по своему усмотрению. Нет никакого явного правила, кроме правила самой длинной цепочки. Более половины количества блоков майнится двумя пулами. Существует определенная вероятность того, что в случае форка пулы могут решить добавить новый блок позади своего собственного (предыдущего) блока.

В некоторых случаях пулы имеют право выбирать, чего не делают пассивные полные ноды. Мы показали это на примере форка. В случае Cardano оператор пула не обязан соблюдать правила и может добавить новый блок после блока 6 или 7 независимо от правила, касающегося меньшего значения выхода VRF. Остальная часть сети не знает (и не может доказать), что в пуле были доступны оба блока, т.е. что он знал о форке. Как мы уже говорили, в случае с Bitcoin это вопрос свободного выбора.

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

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

Мы еще вернемся к форкам, поскольку они могут возникать во время модернизации сети.

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

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

Давайте не будем забывать, что полными нодами в сети Cardano в основном управляют стейкеры, поэтому они немедленно переделегируют монеты ADA в другое место, если обнаружат, что оператор пула ведет себя неправильно. Это преимущество по сравнению с Bitcoin, потому что в сети Bitcoin операторы полных нод не часто одновременно используют и ASIC-оборудование.

Обновление сети Cardano

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

Обновления в сети Cardano осуществляются легко и без проблем благодаря уникальному инструменту под названием комбинатор хардфорков.

Комбинатор хардфорков используется сетью Cardano для объединения нескольких хардфорков в одно обновление, не вызывая каких-либо сбоев или дублирования цепочки и монет.

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

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

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

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

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

Если сеть обновляется, кошельки полной ноды (Daedalus), конечно же, также должны быть обновлены. Обратите внимание, что когда дело доходит до голосования за изменение, полные ноды снова не играют почти никакой роли. Если бы пользователи были против изменений и остались на более старой версии ноды (кошелька), их нода не смогла бы принимать новые блоки.

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

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

Обновление Bitcoin сети

В случае с Bitcoin процесс очень похож в принципе, но в то же время отличается.

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

На изображении ниже после блока 4 произошел хардфорк. Синяя цепочка поддерживается оригинальной версией клиента. Зеленая цепочка поддерживается новой (обновленной) версией клиента.

Хешрейт и голосование - это два фактора, которые влияют на исход хардфорка.

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

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

Передача сигнала происходит перед хардфорком.

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

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

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

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

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

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

UAHF кажется мне определенной формой принуждения, когда операторы полных нод (пользователи) могут игнорировать майнеров, и наоборот, майнеры могут игнорировать пользователей.

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

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

Для Bitcoin форк был бы нежелателен, т.к. он разделил бы сообщество и, следовательно, хешрейт примерно на две равные части, соответственно, это также снизило бы безопасность Bitcoin A и Bitcoin B наполовину (по крайней мере, в краткосрочной перспективе). Хешрейт, то есть правило более длинной цепочки, определяет, какая цепочка сохранит первоначальное название Bitcoin.

Роль команд

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

В случае с Cardano влияние команды немного выше, чем в случае с Bitcoin, потому что команда (3 организации-учредителя) инициализирует событие комбинатора хардфорка. Это имеет определенные преимущества и недостатки. Преимущество заключается в том, что сеть Cardano не может быть разделена. Всегда будет только одна сеть Cardano и 45 000 000 000 монет ADA. Никогда не будет Cardano Classic или Cardano Cash. С другой стороны, команда контролирует, что такое Cardano и какие обновления будут содержаться в новой версии клиента. Можно ли было бы создать хардфорк без комбинатора хардфорков? Может быть.

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

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

На изображении ниже вы можете видеть команду, которая предложила сообществу новую версию клиента (зеленая). Большинство операторов пулов приняли новую версию. Один оператор остался на старой версии (синяя).

Команда может контролировать сетевой консенсус, если у нее есть дорогостоящий ресурс. Это может быть проще в случае PoS проектов, поскольку команда может обладать значительной частью монет. Однако в случае с Cardano подавляющее большинство монет находится в руках сообщества, поэтому такого риска нет. Я не думаю, что члены команды Bitcoin Core контролируют значительную часть хешрейта. Однако такие компании, как Digital Currency Group и от недавна Black Rock, держат контроль над майнингом. Благодаря хешрейту они могут контролировать обновления сети, т.е. над командой.

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

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

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

Вывод

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

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

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

// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском языке можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова, а также на канале Чарльз Хоскинсон на русском. Хотите поговорить или задать вопрос о Cardano? Тогда приглашаем в наше уютное русскоязычное сообщество Cardano в Telegram. Оставайтесь на связи, все только начинается!