Техническое введение в сеть Axelar

Anna Anna4ubarova
5 min readJan 17, 2022

Что такое сеть Axelar?

Сеть Axelar — это децентрализованная машина, отвечающая за упрощение межцепочечных запросов. Сеть поддерживает несколько ключевых протоколов, таких как Cross-Chain Gateway Protocol (CGP). CGP лежит в основе системы и позволяет нам легко подключать новые цепи без ограничений на правила консенсуса и передавать информацию между ними. В этой статье мы рассмотрим, как работает CGP, и погрузимся в некоторые детали стека. Но сначала давайте попробуем понять, что привело нас к этой архитектуре.

Для начала, вот ключевые компоненты сети Axelar:
●Консенсус
●Пороговая криптография
●Шлюзовые контракты
●Валидаторы
●Демоны кроссчейна (также известные как ретрансляторы)

Почему сеть Axelar нуждается в консенсусе для обработки межцепочечных запросов?

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

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

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

Зачем сети Axelar нужна пороговая криптография?

Шлюзы Axelar коллективно управляются валидаторами Axelar с помощью пороговой криптографии. То есть, большинство валидаторов должны согласиться и коллективно одобрить любую транзакцию, которая будет выполнена через шлюзы. Это похоже на то, как большинство валидаторов должны согласовать переходы состояний в стандартных блокчейнах для авторизации передачи базовых активов от одного пользователя к другому. Результатом соглашения является подписанная компактная транзакция. Наличие одной подписи (коллективно созданной большинством валидаторов), санкционирующей транзакции, позволяет нам сохранять небольшие транзакции, поддерживать низкие комиссии и исключить любые требования со стороны цепочек сетевых соединений Axelar (например, поддержку мультиподписи, лимиты транзакций, легкие клиенты и т.д.). Многие пороговые протоколы (например, ECDSA, используемый сегодня в Bitcoin) предполагают наличие надежного широковещательного канала и одноранговых частных каналов между сторонами. Именно здесь консенсус также оказывается весьма кстати :)

Должен ли каждый валидатор запускать узлы всех других цепочек?

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

Какие типы команд поддерживает сеть?

✓Генерирование новой пары ключей цепочки. Распределенный пороговый протокол выполняется среди всех валидаторов для генерации главной пары ключей для цепочки, которая будет соединена с протоколом Axelar.

✓Развертывание нового шлюзового контракта на новую цепочку. После этого события, при условии, что достаточное количество валидаторов может проверять транзакции на этой цепочке, она становится связанной через инфраструктуру Axelar со всеми остальными цепочками. (Для сети Bitcoin вместо этого используются пользовательские скрипты и система управления UTXO. Подробнее об этом позже).

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

✓Верифицировать депозиты на исходной цепи X. Это запускает протокол консенсуса второго уровня поверх сети Axelar для завершения депозита на исходной цепи. По сути, все валидаторы запрашивают свои конечные точки RPC, чтобы проверить, является ли транзакция “окончательной” в соответствии с некоторыми правилами (для цепей PoW она должна быть достаточно глубокой в цепи, для цепей PoS с мгновенной окончательностью — ну, вы получаете мгновенную окончательность).

Как растет состояние в сети Axelar?

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

Что нужно для поддержки новой цепи на Axelar?

Контракты шлюза Axelar необходимо перенести на язык смарт-контрактов этой платформы. Контракты являются “универсальными”, поскольку они не зависят от консенсуса или состояния каких-либо других цепей. Например, в основном одни и те же контракты повторно используются во всех цепочках EVM. Далее, определенный минимальный порог валидаторов сети Axelar должен работать на узлах, чтобы иметь возможность проверять запросы в/из контрактов шлюза. Порог является настраиваемым параметром системы и будет установлен на основе экспериментов в тестовой сети.

Как передается информация между различными блокчейнами?

Когда транзакция в цепочке A достигает контракта шлюза, ее необходимо ретранслировать в сеть Axelar. Ретрансляторы или межсетевые демоны/процессы отвечают за мониторинг этих шлюзовых контрактов и, увидев входящий запрос, пересылают его в сеть Axelar. Впоследствии валидаторы будут запрашивать свои конечные точки RPC для цепочки A, голосовать за транзакцию, запускать внутренний переход состояния для обработки транзакции.

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

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

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

Что нужно для мониторинга работоспособности сетевых узлов и валидаторов Axelar?

Информация о состоянии сети может быть получена путем:

a) Мониторинга журналов, испускаемых узлами Axelar;

b) Запроса состояния бухгалтерской книги;

c) Наблюдения за событиями, испускаемыми узлами Axelar и шлюзовыми контрактами;

d) Подписка на метрики, предоставляемые через Prometheus.

Какие интересные события можно наблюдать?

●Многосторонние вызовы генерации ключей, созданные ключи, неудачные попытки.
●Многосторонние запросы на подписание.
●Учетные записи ключей и шлюзов, развернутые в каждой цепочке.
●Активные валидаторы, их доля, делегации, пропускают ли они производство блоков, голосуют ли по событиям из внешней цепи или участвуют в церемониях генерации/подписания ключей.
●Статус валидаторов в сети: например, если валидатор хочет покинуть сеть, он сначала должен “отменить регистрацию” и подождать, пока его доля не будет выведена из системы. После того, как их акции будут выведены из системы, они могут разблокировать связь.

Как я могу принять участие в проекте?

Мы расширяем экосистему операторов узлов, поставщиков инфраструктуры кошельков и мониторинга, разработчиков и нанимаем на различные технические и экосистемные роли (https://axelar.network/careers).

Кроме того, вы можете связаться с разработчиками в Discord и следить за нашими социальными каналами:

https://twitter.com/axelarcore
https://t.me/axelarcommunity
https://medium.com/axelar
https://www.linkedin.com/company/axelarnetwork/
https://www.youtube.com/channel/UCf8GFg58fdp1iZwLAOV1Tgg
https://community.axelar.network/

Статья переведена пользователем Annanas763536#8119

--

--