Subscribe to the latest project news!

Платформа Ardor (ARDR) и её конкуренты, часть. 2: NEM / Mijin / Catapult

Перевод статьи с английского, источник https://www.nxter.org/ardor-vs-competition-nem-mijin-catapult/

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

Сравнение платформ Ardor и Plasma

Платформа Ardor и её конкуренты, ч.1: платформа Lisk

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

Платформа NEM

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

Обе платформы поддерживают множество функций «blockchain 2.0», такие как отправка сообщений, создание и передача активов, и отправка транзакций, требующих одобрения нескольких учетных записей (m-of-n multisig). И обе платформы раскрывают свою функциональность через HTTP-интерфейсы, поэтому разработчики могут использовать практически любой язык для написания приложений для них.

Несмотря на эти сходства, NEM имеет некоторые заметные отличия по сравнению с Nxt.

Возможно, самым фундаментальным отличием является его новый консенсус алгоритм, называемый POI (proof-of-importance/доказательство значимостью). Этот алгоритм аналогичен алгоритму POS (proof-of-stake/доказательство доли владения), за исключением вероятности того, что учетная запись может харвестить (форжинг) следующий блок в зависимости не только от его доли XEM, которая является монетой платформы NEM, но и от того, как недавно была проведена транзакция с другими учетными записями и сколько XEM было обменено. Учетные записи, которые содержат большую долю XEM, и которые часто и в большом объеме совершают транзакции, собирают больше блоков, чем учетные записи с меньшим количеством XEM или учетные записи, которые редко участвуют в транзакции.

Авторы Технического справочника NEM утверждают, что по сравнению с алгоритмом POS алгоритм POI дает несколько меньший коэффициент значимости самым прибыльным учетным записям при определении права на форжинг/харвестинг следующего блока (раздел 7.8). POI придает важное значение фильтрации спама NEM, во избежание атак злоумышленниками, которые путем создания нескольких учетных записей могут не только взять контроль над сетью и спамить сеть большим количеством неподтвержденных транзакций, но и держать большую долю в каждой учетной записи и часто совершать сделки с другими важными аккаунтами.

На мой взгляд, еще одно основное отличие между NEM и Nxt - это насколько функции «blockchain 2.0» в каждой платформе интегрированы непосредственно в API (Application programming interface/программный интерфейс приложения). Например, активы NEM, называемые «мозаики», обладают похожими свойствами с валютами денежной системы Nxt, но NEM не имеет встроенного децентрализованного обмена мозаикой. (В качестве дополнительной заметки: Фонд NEM заключил контракт с Blockchain Global на создание традиционного централизованного обмена с мозаичными токенами ICO.) Также, несмотря на то, что есть возможность создать децентрализованный рынок на платформе NEM, где пользователи могли покупать и продавать товары и сервисы, NEM, в отличие от Nxt, не имеет такого рынка, встроенного в свой API.

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

Сначала это может показаться ограничением, так как для каждой группы подписантов, с которой пользователь хочет осуществлять совместное подписание, требуется отдельный аккаунт с мультиподписью. Но это имеет два ключевых преимущества: аккаунт с мультиподписью является полноценной учетной записью, способной принимать платежи, сообщения и мозаики, например; и совместные подписанты могут быть добавлены и удалены, поэтому права на аккаунт с мультиподписью могут передаваться. Можно создать аккаунт с мультиподписью «1/1», то есть учетную запись с одним владельцем, который может по желанию передать права другому владельцу. Таким образом, аккаунты с мультиподписью на платформе NEM могут действовать как хранилище с правом передоверия для XEM, мозаики и сообщений.

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

  1. Создайте хеш и подпишите документ.
  2. Создайте аккаунт с мультиподписью для подписываемого документа.
  3. Создайте хеш и подпишите содержимое документа.
  4. Отправьте сообщение с результатом на аккаунт с мультиподписью.

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

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

В любом случаи, достаточно сказано про платформу NEM. Перейдем к рассмотрению платформы Mijin.

Платформа Mijin

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

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

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

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

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

Кстати говоря, о платформе Catapult...

Catapult

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

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

Catapult делит работу сети между тремя типами узлов:

  • Узлы P2P, которые добавляют новые блоки в цепочку и поддерживают консенсус относительно ее состояния;
  • узлы REST, которые представляют клиентские приложения со всеми функциями, которые они могут использовать из API платформы Catapult; а также
  • узлы API, которые, подобно узлам P2P, хранят блокчейн и могут считывать данные непосредственно из него (я думаю), но которые не добавляют блоки. Эти узлы обслуживают данные для узлов REST для выполнения запросов клиентских приложений.

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

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

Помимо этой новой структуры, платформа Catapult также предпринимает другие методы оптимизации для повышения производительности. В то время как Mijin и NEM написаны на базе Java и используют HTTP для обмена данными с полными узлами, платформа Catapult написана на языке программирования C++, а связь между узлами API и REST происходит посредством полно-дуплексных сокетов (через ZeroMQ), что потенциально допускает более низкий период ожидания, чем через HTTP.

Тестирование эффективности трех узлов платформы Catapult, расположенных в одном и том же центре обработки данных и настроенных на обслуживание запросов от 10,8 миллионов аккаунтов, показал, что сеть смогла обработать чуть более 3000 транзакций в секунду. Не совсем ясно из пресс-релиза, но, похоже, что каждый из трех узлов в этом тесте сыграл все три роли: P2P, API и REST. Похоже, что сопутствующая диаграмма относится к узлам API как к серверам внесения и обработки данных блокчейна и к узлам REST в качестве серверов «API-шлюза».

Сравнение с Ardor

Как работает платформа NEM по сравнению с Ardor?

Действительно, есть (по крайней мере) два отдельных вопроса: чем функции NEM отличаются от функций Ardor? И как подход к масштабированию платформы NEM отличается от подхода платформы Ardor?

Поскольку Ardor (платформа, а не родительская цепочка) будет поддерживать все текущие функции Nxt, сравнения, отмеченные выше между NEM и Nxt, одинаково хорошо применимы к Ardor.

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

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

Структура родительской/дочерней цепочек Ardor добавит некоторые дополнительные функции.

В частности, пользователи смогут мгновенно обмениваться различными токенами дочерней цепочки, без предварительной конвертации в ARDR. Это будет особенно полезно в привязанных дочерних цепочках, где пользователи смогут торговать монетами, привязанными к доллару, непосредственно для биткоин монет (например), тогда как на NEM те, у кого есть мозаика с привязкой к доллару, должен будет продать ее для XEM, затем купить биткоин мозаику.

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

[EDIT]: Лиор Яффе, главный разработчик и соучредитель Jelurida, приводит следующий комментарий:

С NXT это может быть достигнуто путем выпуска одноэлементного актива для каждой регистрации лицензии и отправки его между аккаунтами.

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

Подход платформы Catapult, который в конечном итоге NEM будет внедрять, имеет двоякий характер: новая трехуровневая структура для распределения обязанностей сети между тремя специализированными типами узлов; и ряд оптимизаций на уровне приложений, например, с использованием языка программирования C++ вместо Java. Нам нужно будет отложить рассмотрение последнего подхода до тех пор, пока не будут доступны дополнительные тесты для сравнительного анализа, но мы все же можем осторожно размышлять о последствиях новой структуры.

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

С другой стороны, улучшение производительности NEM с использованием новой структуры гораздо труднее предсказать. Неясно, будет ли каждый одноранговый узел сети запускать все три службы (P2P, API, REST) или только один из трех. В первом случае преимущество масштабирования для новой структуры предположительно будет потеряно. В последнем случае оптимальное соотношение между скоростью (меньшее количество узлов P2P, больше узлов API и REST) и безопасностью (большая часть узлов P2P) останется. И поскольку никто не может контролировать количество узлов каждого типа в общедоступной сети, вопрос об оптимальном балансе будет спорным.

И напротив, дизайн Ardor не пытается достичь максимально возможной пропускной способности, по крайней мере, изначально. Скорее, главной целью масштабирования Ardor является значительно уменьшить размер и темпы роста блокчейна. Это происходит путем использования уникальной структуры родительской/дочерней цепочек, где все узлы в сети проверяют все транзакции, но только те, которые принадлежат учетным записям, поддерживающим форжинг монет родительской цепочки (ARDR). Поскольку монеты дочерней цепочки нельзя использовать для форжинга, история транзакций дочерних цепочек не имеет отношения к безопасности сети и может быть сокращена.

Однако стоит отметить, что вычислительное масштабирование относится к технической карте Ardor.

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

Заключение

Ardor и NEM предлагают обширные, значительно перекрывающие наборы функций.

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

Однако в подходах к масштабированию Ardor и NEM совершенно разные.

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

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

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

Перевод статьи с английского, источник https://www.nxter.org/ardor-vs-competition-nem-mijin-catapult/