February 12, 2023

Экосистема Cosmos и Cosmos Hub

Что такое Cosmos

Cosmos – это не блокчейн, а децентрализованная сеть независимых и взаимодействующих между собой блокчейнов, которые в экосистеме называют зонами. Эти зоны работают на Tendermint и взаимодействуют друг с другом через IBC благодаря хабам.

Концепция

Сеть Cosmos функционирует на трех разных уровнях.

1. Сетевой уровень: позволяет подтверждениям транзакций и другим сообщениям консенсуса взаимодействовать с блокчейнами хаба.

2. Уровень консенсуса: упорядочивает ноды в соответствии с решениями валидаторов о добавлении новых транзакций.

3. Уровень приложения: обновляет сеть, отслеживая изменения в транзакциях и балансах.

Все три уровня объединены набором инструментов и приложений с открытым исходным кодом. Например, Tendermint соединяет сетевой уровень и уровень консенсуса в готовый к использованию механизм, работающий в автоматическом режиме. Благодаря этому разработчики блокчейнов экономят время и ресурсы, поскольку работают только с уровнем приложений.

Tendermint

Tendermint – это решение, объединяющее сетевой и консенсусный уровни блокчейна в общий движок, что позволяет разработчикам сосредоточиться на разработке приложений, а не на сложном базовом протоколе.

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

*Проблема отказоустойчивости Византийских генералов (Byzantine fault-tolerance problem далее BFT) – в очень упрощенном виде это проблема нахождения консенсуса между узлами сети, при условии, что некоторое кол-во узлов являются “мошенниками”

JaeKwon уже в 2014 году начал работать над созданием BFT протокола, на котором могла бы работать система из сотен узлов с бездоверительным доступом и PoS в качестве защитного механизма. После того, как к 2018 году были сделаны все необходимые настройки, произошел запуск сети Cosmos.

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

** Если очень кратко, то Tendermint выполняет функцию протокола сетевого уровня, позволяет узлам (нодам) взаимодействовать друг с другом и приходить к консенсусу. В основе нахождения консенсуса лежит BFT модель, а безопасность обеспечивается механизмом PoS. Весьма детально и не очень сложно принцип и особенности работы Tendermint описываются тут.

Ключевые особенности Tendermint, делающие его конкурентоспособным механизмом блокчейна:

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

2. Высокая производительность. Tendermint может обрабатывать до 1000 транзакций в секунду;

3. Мгновенная финализация. Это означает, что пользователи могут быть уверены, что их транзакции будут считаться завершенными и окончательными, как только будет создан блок (чего нельзя сказать о Proof-of-Work блокчейнах, где блок считается окончательным только после некоторого количества подтвержденных после него блоков);

4. Безопасность. Если всё таки произошёл форк, то есть способ определить ответственность. Под форком здесь понимается одновременное создание нескольких блоков, в результате чего сеть как бы "пускает ответвление". Подробнее можно почитать тут.

Движок Tendermint подключается к уровню приложений с помощью протокола, который называется Application Blockchain Interface (ABCI). Протокол может быть встроен в любой язык программирования, так что разработчикам есть из чего выбрать.

Несмотря на то, что Tendermint кратно сокращает время разработки блокчейна, создание безопасного ABCI-приложения с нуля остаётся сложнейшей задачей. Для максимального упрощения данной задачи и был разработан CosmsSDK.

CosmosSDK

CosmosSDK - это фреймворк с открытым исходным кодом для создания бездоверительных (permissionless) PoS-блокчейнов, таких как CosmosHub, или же доверительных (permissioned) пруф-оф-осорити (Proof-of-Authority или же PoA) блокчейнов.

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

Преимущества Cosmos SDK

1. Консенсус движком, доступным по умолчанию при разработке на Cosmos SDK, является Tendermint – на данный момент лучшее BFT решение.

2. Использование модулей при создании апп-чейна (app-chain - это блокчейн, созданный под отдельное децентрализованное приложение). Все модули находятся в открытом доступе и их количество только растет.

3. Cosmos SDK создавалось настоящими специалистами в сфере блокчейн технологий, постоянно улучшается и является безопасной средой для создания блокчейнов.

Стейкинг

Стейкинг – это процесс блокировки токена для обеспечения безопасности публичного блокчейна.

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

Делегатор - это любой пользователь, который отправил (делегировал) свои токены в стейкинг любому валидатору. Делегатор получает награды, пропорционально своей доле токенов, от общего количество токенов валидатора, и платит валидатору небольшую комиссию за его услуги (комиссия устанавливается самим валидатором и обычно не превышает 5% от награды делегатора).

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

Ликвидный стейкинг в сети Cosmos мы вынесли отдельной публикацией, там еще одна небольшая простыня =) Ознакомиться с ней вы можете тут.

Слэшинг

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

Существует два типа событий, которые приводят к слешингу:

- Слешинг на 0,01% может произойти, если валидатор находится в автономном режиме слишком долго. Время простоя фиксируется, если валидатор не подписывает минимум 500 блоков из последних 10.000.

Кроме того, валидатор выпадает из консенсуса и не получает награды за блок как минимум на 10 минут (термин jail). После устранения проблем валидатор может повторно присоединиться к набору валидаторов, отправив unjail-транзакцию.

- Слешинг на 5% может произойти, если валидатор подписывает два разных блока одновременно. Эту неисправность труднее предвидеть, она возникает в результате плохой практики эксплуатации или откровенно злого умысла оператора ноды. Кроме 5% токенов, валидатор теряет право предлагать блоки и получать вознаграждение без возможности разблокировки (фактически удаляется из набора валидаторов навсегда). Все делегаторы данного узла получают возврат своих токенов, период анбонда (т.е. время возвращения токенов из стейкинга) составляет 21 день.

IBC

Протокол взаимодействия между блокчейнами (Inter-Blockchain Communication Protocol) или же IBC – это фреймворк, который позволяет зонам осуществлять кросс-чейн взаимодействие без установления доверительных допущений от третьей стороны (т.е. без использования мостов, например), его можно сравнить с TCP/IP протоколом в традиционных сетевых технологиях. Взаимодействующие сети договариваются доверять модели безопасности друг друга и использовать расшаренный стандарт обмена сообщениями для взаимодействия и верификации изменений состояния сети. Таким образом IBC модель наследует самую низкую из безопасностей сетей, участвующих в обмене сообщениями (*имеется ввиду, что, если, допустим, безопасность одной сети на 10/10, а второй на 8/10, то безопасность IBC модели будет тоже на 8/10).

Установление такого взаимодействия является ресурсоемким для обеих сетей. Когда одна сеть инициирует отправку сообщения в другую сеть, открытый ретранслятор (permissionless relayer, далее возможен вариант перевода "релэер", что одно и тоже) передает доказательство запроса сообщения в другую сеть. Сеть, принимающая сообщение, валидирует данное доказательство, использую для этого легкий клиент (light client), который считывает состояние отправляющей сети и записывает копию этого состояния в свой собственный реестр. Данный прямой процесс верификации гарантирует принимающей сети, что запрос действительно был достоверным, и только потом изменяется состояние самой принимающей сети.

Из-за оптимизации в сторону безопасности, IBC модель имеет несколько важных особенностей (необходимых компромиссов):

Принимающая сеть вынуждена предполагать, что транзакционный запрос был финализирован (finalized) в сети, отправляющей сообщение (запрос). Форки и реорганизация блоков, которые являются привычным делом для пробабилистической финализации (probabilistic finality, например, сеть эфира), разрушили бы основы модели безопасности IBC. Поэтому IBC совместима только с механизмами консенсуса, обладающими гарантией финальности, такими, как Tendermint. В качестве решения для установления порога финальности при взаимодействии с пробабилистической сетью могут использоваться так называемые «зоны привязки (pegzones)». Но такое решение усложняет систему и таким образом создает дополнительные векторы для атаки на нее.

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

Транзакционные издержки за передачу сообщений между сетями несут ретрансляторы, а не пользователи. Ретрансляторы часто управляются валидаторами, которые мотивированы поддерживать работу обеих (отправляющей и принимающей) сетей. Экономическая модель IBC делает рациональным координацию между различными ретрансляторами для того, чтобы в одно и тоже время только один ретранслятор обслуживал один IBC канал. Если возникает ситуация, когда ни один из ретрансляторов не обслуживает канал, то сообщение «застрянет» до тех пор, пока не появится обслуживающий ретранслятор. Хотя данный факт никак не влияет на безопасность ни принимающей, ни отправляющей сети, жизнеспособность IBC может быть временно снижена по этой причине. Для того, чтобы IBC обмен сообщениями полностью встал, нужно чтобы треть всех валидаторов перестала работать.

Схема работы IBC приведена на рисунке ниже (источник тут)

* Зелеными стрелочками показаны этапы проверки транзакции валидаторами, фиолетовыми - путь транзакции (или любого другого кросс-чейн сообщения)

По сути, транзакции IBC – это пакеты информации, которые передаются из одной зоны в другую путем публикации Merkle-proofs (подробнее тут) в качестве доказательства того, что информация была отправлена и получена.

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

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

Например, чтобы обновить блок "Zone1" на "Hub" (или "Hub" на "Zone2"), транзакция IBC BlockCommitTx должна быть размещена на "Hub" с блок-хэшем "Zone1" (или на "Zone2" с блок-хэшем "Hub"). (больше информации по транзакциям в whitepaper: тут)

Обобщим: IBC позволяет взаимодействующим сетям функционировать наподобие считывающих оракулов (read-oracles) друг для друга. Безопасность такой модели является ресурсоемкой, но позволяет взаимодействовать сетям без необходимости использования третьей доверительной стороны. По этой причине IBC является очень популярной моделью и всегда приводится в качестве одной из альтернатив на ряду с некоторыми другими моделями обмена сообщениями.

IBC был запущен в марте 2021 года, а на данный момент (июль 2022) он включен в 49 сетях, и в настоящее время с использованием IBC выполняется более 2.5М транзакций в месяц (посмотреть можно тут).

Peg-зоны

Peg-зона — это блокчейн на основе учетной записи, который соединяет зоны внутри Cosmos с внешними блокчейнами, такими как Биткоин или Эфириум. Необходимость в них возникает, т.к. Cosmos использует детерменированную финализацию, а, например, Ethereum пробабилистическую.

Компоненты, которые используются для взаимодействия внешних блокчейнов и Cosmos:

  1. Смарт-контракты Ethereum, выступающие в качестве хранителей активов, способных взять на себя ответственность за собственные токены Ethereum и выпускать собственные токены Cosmos.
  2. Witness (свидетель, оракул): Компонент свидетеля свидетельствует о событиях в Ethereum. Он ожидает 100 блоков, порога окончательности, и реализует эту псевдофинальность. Он запускает полную ноду Ethereum, чтобы подтверждать изменения состояния в Ethereum, отправляя WitnessTXв peg-зону. Здесь используется общая модель безопасности, валидаторы Cosmos Hub также в качестве свидетелей зоны привязки.
  3. Peg-зона представляет собой блокчейн-переводчик, построенный на Tendermint. Она позволяет пользователям выполнять и запрашивать транзакции. Именно таким образом Cosmos соединяется с Ethereum.
  4. Авторизующая сторона (signer на схеме) подписывает сообщения, используя схему secp256k1. Компонент signer генерирует подписи secp256k1 через SignTxсообщение и отправляет его в зону привязки для ретрансляции транзакций для проверки в смарт-контракте по конвейеру.
  5. Relayer : компонент ретранслятора передает массив транзакций, подписанных компонентом Signer, и отправляет их в смарт-контракт Ethereum.

Interchain Security (ICS)

Один из доводов, которые в спорах о том что лучше polkadot или cosmos, в пользу польки — наличие модели shared security (почитать можно тут). Кратко: все парачейны (так в польке называют блокчейны) используют общую безопасность, при этом Polkadot гарантирует безопасность всех блокчейнов в сети и что любые взаимодействия между ними выполняются корректно. Различия между традиционной изолированной безопасностью и общей безопасностью хорошо продемонстрирована на схеме. Слева модель с традиционной (изолированной) безопасностью — именно такая сейчас в Cosmos. Справа модель с общей безопасностью, как в Polkadot...и как будет в Cosmos.

У Cosmos на данный момент за безопасность (создание блоков) отвечают валидаторы каждой зоны по отдельности, но в 3м квартале 2022 планируется к введению технология Interchain Security (межблокчейновая безопасность). Это позволит пулу валидаторов, например, Cosmos Hub создавать блоки для молодой зоны, при этом механизмы наказаний за длительный автономный режим, либо за двойные блоки остаются как для "донорского" хаба, а атака на блокчейн становится экономически нецелесообразной (т.к. выше цена и количество застейканных токенов). Важными особенностями является то, что для расшеривания безопасности используется IBC, а ICS не обязателен для каждой зоны.

Несмотря на то, что введение технологии уже анонсировано, схем и деталей пока нет. Известно лишь то, что в первой версии будут использоваться все валидаторы донорского чейна, а далее включат возможность частичного донорства (https://github.com/cosmos/gaia/blob/main/docs/interchain-security.md).

CosmosHub

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

Первым хабом, запущенным в CosmosNetwork, является CosmosHub. CosmosHub — это Proof-of-Stake блокчейн общего назначения, собственный токен которого называется ATOM.

Cosmos Hub является реестром транзакций экосистемы, благодаря чему токены могут напрямую пересылаться между зонами по протоколу IBC. CosmosHub – это центральный блокчейн экосистемы Cosmos. По сути, с него и началась вся экосистема.

Ссылка на рисунок тут

Разработка началась аж в 2014 году, концепция Cosmos появилась в 2016 году, а уже 13 марта 2019 года CosmosHub вышел в мэйннет (есть даже запись трансляции запуска тут).

Нативная монета сети Cosmos – Atom.

Она имеет три основных варианта использования:

1. Оплата пользователями комиссий за транзакции.

2. Участие в управлении CosmosHub.

3.Стейкинг.

Токены ATOM были распределены на сид-раунде (5%), по 10% досталось Tendermint Inc. и, а 75% разлетелись за 30 минут в рамках первичного предложения монет (ICO) в 2017. Стоимость 1 Atom составила 10 центов, выручили 17 млн. Мы не будем высчитывать сколько и кому досталось токенов (хотя белой завистью радуемся за тех, кто сделал с 10 центов хотя бы 10 баксов и рука не дрогнула).

На данный момент общее предложение составляет 302347059 ATOM, максимальное предложение не ограничено. Это связано с тем, что вознаграждения TendermintCore выплачивается стейкерам новыми монетами. При этом уровень инфляции корректируется в режиме реального времени в зависимости от суммы монет в стейкинге и количества стейкеров. На момент написания этой статьи она составляла 12.4%. Актуальную инфу можно посмотреть в дашборде Bro’n’Bro.

Ссылки:

Cosmos whitepaper: тут

Tendermint: тут

IBC: тут

Peg-зоны: тут

Подробнее о слэшинге: тут и тут

Кошельки и дашборды экосистемы Cosmos

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

Кошельки

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

Keplr

Keplr быстро стал основным кошельком для экосистемы Cosmos, и стейкать с помощью кошелька и панели мониторинга Keplr очень просто (полное руководство). Keplr предлагает приложение для мобильного кошелька для iOS и Android, а также расширение для браузера, похожее на Metamask, которое является самым простым способом безопасно начать стейкать. В дополнение к браузерному расширению Keplr предоставляет простую панель мониторинга для просмотра доступных токенов, балансов застейканных монет и вознаграждений в более чем 20 сетях, которые он в настоящее время поддерживает. Cosmos chains также может интегрировать дашборд управления стейкингом, чтобы пользователи могли стейкать токены в своих собственных экосистемах.

В соответствии с дорожной картой в 2022 году, Keplr планирует несколько улучшений интерфейса, что сделает и без того один самых лучших пользовательских интерфейсов еще лучше. Например, одним из таких предстоящих улучшений является добавление раздела "валидаторы".

Выбор правильных валидаторов очень важен, и новички в Cosmos могут не знать, каких из них выбрать, поэтому Keplr хочет помочь валидаторам, которые активны, получить значительное количество голосов. Команда планирует сделать это, обновив страницу валидатора и предоставив полезные описания, благодаря которым пользователям (потенциальным делегаторам) будет легче определяться с выбором валидатора. Также будет реализована возможность общения между валидаторами и делегаторами, что должно простимулировать их более тесное взаимодействие. Различные ресурсы для стейкинга на Keplr можно найти здесь.

Подключить устройство Ledger можно по этой инструкции от производителя.

Cosmostation

Cosmostation - это решение, предоставляющее мобильный кошелек для удобного стейкинга прямо с вашего телефона, а также веб-кошелек, который позволяет подключать и подписывать транзакции с вашего аппаратного кошелька. Как давний инвестор в экосистему Cosmos, Cosmostation заработала прочную репутацию за предоставление отличной поддержки конечных пользователей с помощью таких проверенных продуктов, как Cosmos Explorer Mintscan. Cosmostation также поддерживает более 30 сетей, предоставляя пользователям множество вариантов использования.

Cosmostation также имеет множество руководств и ресурсов поддержки, которые помогут вам, если вы застряли. Видеоруководство по установке мобильного кошелька - тут. Видеоруководство, как стейкать с Cosmostation - тут.

Если вы хотите выбрать различных валидаторов, вы можете увидеть их историю, активность и время безотказной работы прямо из раздела валидаторов на Mintscan. Есть видеоруководство, как выбрать валидатора -тут и тут. В конце этого года Cosmostation запустит расширение для браузера. Чтобы начать стейкать через свой мобильный кошелек, скачайте Cosmostation для Android или iOS здесь.