Вы здесь

Противостояние протоколов XDPoS и DPoS

В этой статье мы подробно рассмотрим и сравним сходства и различия между гибридным блокчейном XinFin и блокчейном EOS.IO. Этот пост является продолжением серии технических постов, посвященных сравнению гибридного блокчейна XinFin с известными блокчейнами на основе PoS, включая EOS.IO, Casper FFG, Cardano и Tendermint.

Противостояние протоколов XDPoS и DPoS

Протокол Proof-of-Stake (PoS) все больше набирает популярность, считаясь одним из самых востребованных методов замены алгоритма Proof-of-Work (PoW), в настоящее время используемого в основных блокчейн-технологиях, таких как Ethereum и Bitcoin. Блокчейны на базе PoS, такие как EOS.IO и гибридный блокчейн XinFin, по замыслу должны не только устранить проблему чудовищного потребления электроэнергии, но и обеспечить масштабируемость для решения проблемы низкой производительности обработки транзакций в сетях Ethereum и Bitcoin. Последняя может обрабатывать всего 10-15 транзакций в секунду, что несопоставимо с Visa и MasterCard.

Теорема CAP и трилемма блокчейна

Классическая математически доказанная теорема CAP гласит, что распределенная система не может одновременно гарантировать все три требования: согласованность (C), доступность (A) и устойчивость к разделению (P).

Согласованность означает, что во всех вычислительных узлах в один момент времени данные не противоречат друг другу.

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

Устойчивость распределённой системы к разделению означает, что «система продолжает работать, несмотря на условное количество сообщений между узлами, сбрасываемых (или задерживаемых) сетью».

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

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

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

Блокчейны EOS и XinFin оба ставят перед собой задачу повысить производительность, при этом различия между ними заключаются в деталях консенсуса и децентрализации, которой они жертвуют для улучшения масштабируемости.\

Обзор EOS

EOS все еще является относительно новым продуктом по сравнению с Биткоином и Эфириумом. EOS унаследовал от своих блокчейн-предков, а именно Bitshares и Steemit, алгоритм «делегированное доказательство доли» (DPoS), изобретенный Дэном Ларимером, и вобрал в себя множество функций этих «предков». Подобно другим блокчейнам, в EOS заложена функция по безопасности, которая гарантирует отказоустойчивость системы при условии, что не более 1/3 всех узлов являются агрессорами. С другой стороны, учитывая трилемму блокчейна, которая делает невозможным одновременное соблюдение требований по децентрализации, безопасности и масштабируемости, EOS жертвует децентрализацией ради масштабируемости. Таким образом, создавать блоки может только 21 специально избранный производитель блоков, но время генарации блока может быть уменьшено до 500 мс.

Консенсус

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

EOS.IO и Bitshares оба используют новый основанный на PoS консенсусный алгоритм под названием Delegated Proof-of-Stake (DPoS). Здесь нет майнеров, как в сети Биткоин и Эфириум, которые соревнуются в гонке за хеш-операции; производители блоков в EOS, а именно свидетели или производители блоков, избираются через систему голосования. Свидетели – это дольщики, за которых больше всего проголосовали другие дольщики: дольщики делегируют возможность производства блоков свидетелям.

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

В EOS используется так называемая «single validation» (единичная проверка) для валидации блоков, в то время как в XinFin применяется метод двойной проверки. Стало быть, назревает вопрос: какой смысл проводить двойную проверку?

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

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

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

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

Эпоха измеряется максимальным количеством блоков, которые могут быть созданы в течение этого периода. В EOS эпоха эквивалентна 126 блокам (каждый производитель блоков создает по 6 блоков в каждой эпохе), в то время как в гибридном блокчейне XinFin эта эпоха составляет 900 блоков.

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

В гибридном блокчейне XinFin для завершенности блока требуется, чтобы его подписали 3/4 мастернодов. Как только у блока окажется 3/4 подписей мастернодов, он завершается, и это означает, что этот блок никоим образом не сможет быть изменен в будущем.

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

Безопасность

Проблема «ничего на кону»

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

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

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

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

Атака дальнего действия (Long-range attack)

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

Атака цензуры (Censorship attack)

«Если блокчейн-платформы не обеспечивают устойчивость к цензуре — то есть они полагаются на определенное количество доверенных лиц для производства и проверки блоков, — тогда можно сказать, что мы просто скатились к устаревшим системам баз данных, хотя и в ущерб эффективности, которую обеспечивают традиционные системы, такие как Amazon Web Services».

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

Атаки цензуры возможны в том случае, если под контроль попадает 2/3 производителей блоков в EOS или 3/4 в XinFin, что требует огромных денежных вложений и превращает систему в плутократию, а это никому не нужно, поэтому цена токена падает, а это невыгодно злоумышленникам.

По сравнению с EOS, сопротивление цензуре в блокчейне XinFin, по-видимому, сильнее, так как (1) гибридный блокчейн XinFin имеет 108 мастернодов с 192 резервными узлами по сравнению с 21 блоком производителей EOS, и (2) доли мастернодов в XinFin блокируются в смарт-контрактах и размораживаются только через месяц. Если какой-либо мастернод будет плохо себя вести, он выйдет из игры, а его доля будет заморожена на целый месяц.

Производительность

Очевидно, что у EOS производительность выше с точки зрения времени генерации блока (500 мс): у гибридного блокчейна XinFin оно составляет 2 с (т.к. решением проблем, связанных с синхронизацией и распространением сети, занимается всего 21 мастернод). Кроме того, время задержки в подтверждении транзакции в блокчейне EOS меньше чем у XinFin и составляет не больше 1 секунды (0,5 секунды времени блока + 0,25 секунды завершения + некоторое время для отправки транзакции).

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

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

Также следует отметить, что блокчейн EOS сам по себе спроектирован по подобию операционной системы, которая может планировать транзакции и то, что называется «действиями». Независимые действия можно планировать так, чтобы они выполнялись параллельно. Однако у команды XinFin другое видение, как повысить производительность своего блокчейна.

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

Команда XinFin в настоящее время исследует два ортогональных направления для повышения производительности их блокчейна. Первое – это шардинг состояний, а второе – распараллеливание EVM.

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

Масштабирование распараллеливания EVM направлено на повышение производительности обработки смарт-контрактов за счет запуска нескольких экземпляров EVM на нескольких машинах, подключенных к мастерноду. Другими словами, задача распараллеливания EVM – планировать смарт-контракты и делегировать их выполнение другим машинам, чтобы повысить производительность каждого мастернода.

Немного истории

Команда EOS начала разработку летом 2017 года, а осенью того же года уже имела свою минимальную жизнеспособную тестовую сеть. В июне 2018 года после получения достаточного количества голосов для запуска основной сети была запущена mainnet EOS (более 15% от общего количества токенов EOS). Для каждого производителя блоков в ее тогда текущей версии сети mainnet была выделена только одна ветка. Механизм распараллеливания в EOS все еще находился в стадии разработки и оптимизации и ожидался к выходу осенью 2018 года.

Основанный позже чем EOS, гибридный блокчейн XinFin начал свое развитие летом 2018 года. Тестовая сеть XinFin вышла 1 декабря 2018 года. Гибридная блокчейн-сеть XinFin с ее алгоритмом консенсуса Delegated Proof of stake (XDPoS) была официально запущена 1 июня 2019 года.

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

Экосистема

Многие децентрализованные приложения даппы были разработаны под блокчейн EOS. Ознакомиться со списком этих даппов можно здесь.

Из-за этих приложений и сильного сообщества EOS после запуска основной сети я поставил EOS выше гибридного блокчейна XinFin. Но помните, что если команда EOS сумела создать сильное сообщество даже с языком программирования C++, то гибридный блокчейн XinFin также имеет большие шансы в создании сильной экосистемы, потому что он совместим с EVM. Таким образом, любой дапп, работающий на текущем блокчейне Ethereum, может быть перенесен для работы на гибридном блокчейне XinFin без каких-либо проблем совместимости.

Заключение

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

Как EOS, так и гибридный блокчейн XinFin жертвуют децентрализацией ради высокой скорости обработки транзакций. Если EOS позволяет только 21 производителю блоков (менее 108 производителей блоков сети XinFin) производить 1 блок каждые 0,5 с, то XinFin, по-видимому, балансирует между децентрализацией и производительностью, позволяя 108 мастеродам создавать блоки, но увеличивая время блока до 2 секунд. Это время в 2 секунды также позволяет XinFin повысить безопасность блокчейна за счет применения механизма двойной проверки.

Схема распараллеливания в EOS потенциально позволила бы проводить миллион транзакций в секунду. XinFin, с другой стороны, работает как над шардингом, так и над распараллеливанием EVM, чтобы повысить производительность XinFin до 2000+ транзакций в секунду.

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

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

Краткая справка о гибридном блокчейне XinFin

XinFin Hybrid Blockchain - это гибридный блокчейн с открытым исходным кодом для глобальной торговли и финансов. Он сочетает в себе мощь публичных и частных блокчейнов с совместимыми смарт-контрактами. XinFin

Категория: 
Tutorial
Голосов еще нет
343 / 0
Аватар пользователя Serg Demin
Публикацию добавил: Serg Demin
Дата публикации: чт, 09/24/2020 - 10:47

Что еще почитать:

Добавить комментарий