В этой статье мы рассмотрим протокол Connext и механизм его работы.
Введение
С момента своего создания в 2015 году Ethereum стал самым востребованным блокчейном благодаря огромным преимуществам, открывающим широкие возможности для разработчиков, начиная от разработки децентрализованных приложений (dApps) и заканчивая простотой создания других блокчейн-проектов. Однако по мере роста популярности и количества транзакций в сети Ethereum стали происходить перегрузки, что привело к увеличению времени обработки запросов и росту платы за газ для выполнения транзакции в блокчейне.
Эти проблемы нельзя было игнорировать, поэтому были предложены различные решения. Одним из них является создание блокчейна второго уровня (L2 Layer), который позволяет выполнять транзакции за пределами основной сети Ethereum, но записывает данные в основной сети. Connext — это протокол второго уровня, основной целью которого является решение описанных выше проблем.
Что такое Connext?
Connext — это интероперабельная платформа на основе Ethereum, которая соединяет блокчейны, совместимые с виртуальной машиной Ethereum (EVM) и решениями второго уровня (L2 Layer).
Как работает Connext?
Connext работает через некастодиальный протокол передачи данных Xchain (NXTP), что позволяет осуществлять взаимодействия между блокчейнами напрямую. Важно отметить, что Connext выполняет свою функцию без привлечения нового внешнего валидатора.
Модель NXTP состоит из шаблона блокировки (locking pattern), автономных маршрутизаторов (off-chain routers) и SDK. Шаблон блокировки подготавливает транзакцию и выполняет ее; маршрутизатор вне цепочки передает данные между цепочками, а SDK запрашивает транзакцию в блокчейне.
Как NXTP выполняет транзакции
Все транзакции на NXTP проходят три этапа:
Аукцион маршрута (Route auction): это маршрут, который пользователи выбирают для своих транзакций. Существуют разные маршруты, по которым может следовать транзакция. Пользователь размещает запрос на аукционе, чтобы маршрутизатор сделал ставку, и выбирает маршрут, который он предпочитает. Система (маршрутизаторы) замораживает предложение — это означает, что осуществление транзакции ограничено определённым ценовым диапазоном и временным промежутком для её выполнения.
Подготовка: это этап, на котором транзакция проверяется перед отправкой. Этап подготовки включает в себя взаимодействие как между цепочкой отправителя, так и цепочкой получателя. Пользователи отправляют свои транзакции в контракт в цепочке на стороне отправителя, которая управляет транзакциями. Затем контракт получает замороженную заявку маршрутизатора, которая побуждает маршрутизатор отправить ту же транзакцию менеджеру транзакций (side chain) в цепочке на стороне получателя, после чего необходимая сумма откладывается и блокируется в качестве ликвидности. Этот этап гарантирует наличие у маршрутизатора стимула для выполнения транзакции.
Выполнение: это этап, на котором транзакция выполняется или возвращается, если она не завершена. После этапа подготовки в цепочке на стороне получателя пользователь отправляет подписанное сообщение ретранслятору (это может быть маршрутизатор), который ретранслирует подписанное сообщение менеджеру транзакций в цепочке на стороне получателя для завершения транзакции и получения средств, заблокированных роутером.
Маршрутизатор также отправляет то же сообщение в цепочку на стороне отправителя, чтобы завершить транзакцию и разблокировать исходную сумму.
Компоненты системы NXTP
Контракт: следует инструкциям, данным пользователями и маршрутизаторами системы, чтобы заблокировать или разблокировать средства.
Подграф: кэширует данные и события в блокчейне, чтобы обеспечить масштабируемость запросов.
TxService: осуществляет отправку транзакций, даже если это нужно сделать несколько раз.
Обмен сообщениями: отвечает за всё, что связано с данными сообщений через NAT.
Маршрутизатор: он получает информацию из подграфа, а также данные об обмене сообщениями и отправляет транзакцию в TxService для отправки в блокчейн.
SDK: создает транзакцию и получает необходимую информацию для запуска транзакции на стороне пользователя.
Важность модели NXTP
Работает только с данными в сети.
Нет двойного обеспечения; следовательно, обслуживание транзакций становится проще.
Данные никогда не могут быть рассинхронизированы.
Не предоставляет данных о состоянии браузера.
И сторона получателя, и сторона отправителя могут одновременно разблокировать средства, что предотвращает утечку ликвидности.
Легкий доступ с автоматическими маркет-мейкерами и аукционами.
Существует возможность использования маршрутизатора без сохранения состояния (fully-stateless router).
Существует большая устойчивость к сбоям при нестандартных событиях в сети.
Платформа проста в сборке и удобна в использовании.
Недостатки модели NXTP
Не работает с автономными данными; следовательно, мы не можем использовать его для пакетных условных переводов в масштабируемых микроплатежах.
Несмотря на то, что он обладает устойчивостью к сбоям, маршрутизатор все же должен вернуть свои средства в течение определенного периода времени.
Блокчейны, поддерживаемые NXTP
Основная сеть:
Ethereum
Binance Smart Chain
Arbitrum One
Polygon
xDai
Optimism
Fantom Opera
Тестовая сеть:
Goerli
Rinkeby
Ropsten
Kovan
BSC testnet
Polygon Mumbai
Arbitrum RinkArby
Avalanche Fuji
Заключение
Connext — это система функциональной совместимости на основе Ethereum, которая отличается высокой эффективностью использования капитала и минимальным доверием (т.е отсутствием третьей стороны при взаимодействии между блокчейнами). Протокол не использует никаких новых механизмов делегации средств пользователя, поскольку его алгоритмы предполагают отсутствие третьей стороны при осуществлении транзакций. Никакая другая интероперабельная система на основе Ethereum не имеет таких возможностей и преимуществ как Connext.
Connext — это протокол, который легко использовать в любом блокчейне, совместимом с виртуальной машиной Ethereum. Он также поддерживает блокчейны несовместимые с EVM, хотя для взаимодействия с таким блокчейном требуется переписать транзакцию и портировать контракт.
