Технические основы Axelar Network

Ivan Staker
5 min readDec 7, 2021

Что такое Axelar Network?

Оригинальный пост — https://axelar.network/a-technical-introduction-to-the-axelar-network

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

Для начала, вот ключевые компоненты сети Axelar:

— Консенсус
— Пороговая криптография
— Контракты шлюза
— Валидаторы
— Кросс-чейн демоны (также известные как ретрансляторы)

Зачем Axelar Network использует консенсус для обработки кросс-чейн запросов?

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

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

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

Зачем Axelar Network пороговая криптография?

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

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

Нужно ли будет валидаторам запускать ноды используемых чейнов?

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

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

  • Создание новую пару ключей цепочки. Распределенный пороговый протокол выполняется среди всех валидаторов для генерации главной пары ключей для цепочки, которая будет взаимодействовать с протоколом Axelar.
  • Развертывание нового контракта на шлюз в новую цепочку. После этого события, если достаточное количество валидаторов может подтвердить транзакции в этой цепочке, она становится взаимосвязанной через инфраструктуру Axelar со всеми другими цепочками. [Для сети Биткойн вместо этого используются пользовательские скрипты и система управления UTXO. Подробнее об этом позже.]
  • Сгенерируйте адрес ссылки для транзакции из исходной цепочки X в целевую цепочку Y. Эта команда возвращает новый адрес, по которому могут быть выполнены транзакции, и впоследствии сеть будет чеканить и представлять их в целевой цепочке Y.
  • Проверьте депозиты в исходной цепочке X. Это запускает протокол консенсуса 2-го уровня поверх сети Axelar для завершения депозита в исходной цепочке. По сути, все валидаторы запрашивают свои конечные точки RPC, чтобы проверить, является ли транзакция «окончательной» в соответствии с некоторыми правилами (для цепочек PoW она должна быть достаточно глубокой в ​​цепочке, для цепочек PoS с мгновенной завершенностью вы получаете мгновенную завершенность) .

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

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

Как поддержать новый чейн в Axelar Network?

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

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

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

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

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

Как следить за состоянием ноды и валидаторов в Axelar Network?

За информацией о состоянии сети могут следить:

а) Мониторинг логов, отправляемых узлами Axelar,

б) Запрос состояния ledger,

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

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

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

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

Как присоединиться к проекту?

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

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

Twitter | Telegram | Medium | LinkedIn | YouTube | Форум

--

--

Ivan Staker

Professional validator, taking part in major testnets and running mainnets.