Блокчейн

Cosmos: IBC и модульный блокчейн

Представьте: вы хотите создать свой блокчейн. На Ethereum вы пишете смарт-контракт - и делите ресурсы с тысячами других приложений, подчиняетесь чужим правилам газа, чужим валидаторам, чужим обновлениям. А что если вы могли бы получить собственный блокчейн с собственными правилами за несколько недель - и при этом он не был бы изолированным островом, а свободно общался с 50+ другими цепочками без посредников-мостов? Именно это обещает Cosmos, и сегодня мы разберём, как эта архитектура работает изнутри.

  • **dYdX v4** покинул StarkWare (ZK-rollup на Ethereum) ради собственной Cosmos-цепочки - и получил ~2000 TPS с in-memory orderbook и полным контролем над MEV-политикой, невозможным ни на одном L2
  • **Celestia** использует CometBFT для консенсуса модульного data availability layer - фундамент нового поколения rollup-архитектур, где исполнение и доступность данных разделены
  • **50+ цепочек** соединены через IBC без единого моста-посредника - в отличие от классических мостов (Ronin: -$625M, Wormhole: -$326M), IBC использует криптографическую верификацию через light clients

Предварительные знания

  • Tendermint and Cosmos Consensus

Cosmos SDK: модульный фреймворк

В уроке про Tendermint мы увидели, как ABCI отделяет консенсус от бизнес-логики. Но сам по себе ABCI - это лишь интерфейс: CheckTx, DeliverTx, BeginBlock, EndBlock. Писать блокчейн напрямую через ABCI - всё равно что писать веб-приложение напрямую на сокетах: можно, но зачем? **Cosmos SDK** - это фреймворк, который превращает набор ABCI-вызовов в полноценную модульную архитектуру с готовыми компонентами.

**Cosmos SDK написан на Go** и следует принципу "batteries included". Из коробки доступны модули: `bank` (переводы токенов), `staking` (делегирование и валидаторы), `gov` (on-chain голосование), `auth` (аккаунты, подписи, fee), `distribution` (распределение наград), `slashing` (наказание за простой и double sign). Разработчик комбинирует нужные модули и добавляет свои.

Центральная абстракция Cosmos SDK - **Keeper**. Каждый модуль имеет свой Keeper, который инкапсулирует доступ к хранилищу (KV-store) и бизнес-логику. Keeper'ы общаются друг с другом через явные зависимости: модуль `staking` получает ссылку на `bank` Keeper, чтобы списывать и начислять токены при делегировании. Это предотвращает хаотичные зависимости - каждый модуль видит ровно то, что ему нужно.

**BeginBlocker** и **EndBlocker** - это хуки, которые каждый модуль регистрирует. BeginBlocker модуля `slashing` проверяет, кто из валидаторов пропустил подпись блока, и наказывает за простой. EndBlocker модуля `staking` обновляет набор валидаторов - новые делегации, unbonding, jailing. Порядок вызова модулей задаётся разработчиком в `app.go` и критически важен: нельзя начислять staking-награды до того, как `distribution` модуль их рассчитает.

**Ignite CLI** (ранее Starport) - scaffolding-инструмент, который генерирует работающий блокчейн за минуты. Команда `ignite scaffold chain mychain` создаёт проект с настроенными модулями, protobuf-определениями, REST/gRPC API и CLI. `ignite scaffold module trading` добавляет новый модуль. `ignite scaffold message create-order pair price amount` генерирует Message, Handler, Keeper-метод и protobuf-типы. Разработчику остаётся заполнить бизнес-логику.

Почему Keeper модуля staking получает bankKeeper как интерфейс, а не как прямую ссылку на bank.Keeper?

IBC: Inter-Blockchain Communication

Экосистема из сотен блокчейнов бесполезна, если они не могут общаться. Традиционные мосты (bridge) решают эту задачу через **доверенных посредников**: мультисиг-кошельки, оракулы, MPC-группы. Результат - десятки взломов на миллиарды долларов: Ronin ($625M), Wormhole ($326M), Nomad (190M). **IBC** решает проблему иначе: никаких посредников, только криптографическая верификация через light clients.

**IBC - это не мост.** Мост - это конкретная реализация с доверенными операторами. IBC - это **протокол**, стандартизированный набор правил, по которым цепочки верифицируют состояние друг друга. Каждая цепочка запускает light client партнёрской цепочки и самостоятельно проверяет Merkle-доказательства. Никакой третьей стороне доверять не нужно.

**Light client** - основа безопасности IBC. Цепочка A хранит light client цепочки B: последний подтверждённый header, набор валидаторов, их voting power. Когда relayer приносит пакет из B, цепочка A не доверяет relayer'у - она проверяет Merkle-доказательство в header'е, подписанном 2/3+ валидаторов цепочки B. Именно **instant finality** Tendermint делает это возможным: достаточно одного header'а, не нужно ждать 6 подтверждений как в Bitcoin.

**Relayer** - это off-chain процесс (Hermes, Go Relayer), который сканирует события в одной цепочке и отправляет соответствующие транзакции в другую. Критически важно: relayer **не является доверенной стороной**. Он не может подделать пакет - цепочка-получатель верифицирует Merkle-доказательство самостоятельно. Relayer - просто "курьер", который доставляет конверт. Если один relayer злонамерен, любой другой может доставить тот же пакет.

**ICS-27 (Interchain Accounts)** - расширение IBC, позволяющее одной цепочке контролировать аккаунт на другой. Пользователь на Cosmos Hub может через ICA создать позицию на Osmosis, проголосовать на Juno, застейкать токены на Stride - не покидая исходную цепочку. Это фундамент для **interchain composability**: протоколы на разных цепочках могут взаимодействовать программно, как смарт-контракты внутри одного EVM.

Relayer в IBC обнаруживает, что может подделать пакет на перевод 1,000,000 ATOM. Может ли он это сделать?

CometBFT: эволюция движка

В уроке bc-18 мы разобрали Tendermint BFT как консенсус-протокол. Но с 2022 года экосистема прошла через ребрендинг и существенные технические изменения. **Tendermint Core** переименован в **CometBFT** после реструктуризации компании Tendermint Inc. Это не просто смена названия - CometBFT получил активную разработку и важные улучшения, которые решают проблемы оригинального Tendermint.

**Зачем переименование?** Компания Tendermint Inc. (позже All in Bits) владела товарным знаком "Tendermint". Конфликты внутри компании привели к тому, что Interchain Foundation (ICF) форкнула проект под именем CometBFT, чтобы обеспечить независимость от корпоративных решений. Технически CometBFT - это продолжение Tendermint Core с полной обратной совместимостью.

Ключевое улучшение - **ABCI 2.0** (также ABCI++). Оригинальный ABCI имел ограничение: proposer формировал блок из mempool без участия приложения. Приложение видело транзакции только при DeliverTx, когда блок уже был предложен. ABCI 2.0 добавляет два новых метода: **PrepareProposal** и **ProcessProposal**, позволяя приложению контролировать содержимое блока.

**Instant finality** - фундамент, на котором строится IBC. В Bitcoin транзакция финализируется вероятностно: 6 подтверждений (~60 минут) для разумной уверенности. Ethereum после The Merge финализирует за 2 эпохи (~13 минут). В CometBFT блок **финален в момент коммита** - через 6-7 секунд. Это принципиально для IBC: light client может безопасно принять один header, не ожидая дополнительных подтверждений. Поэтому нет "7-дневного периода ожидания" как в Optimistic Rollups.

ПараметрCometBFT (Cosmos)Ethereum PoSSolana (Tower BFT)
Финальность~6-7 сек (мгновенная)~13 мин (2 эпохи)~12 сек (confirmation)
Время блока~6-7 сек12 сек400 мс
Валидаторы~100-175~900,000~1,500
ЛидерRound-robin по stakeRandom (RANDAO)PoH schedule
При >1/3 offlineHalt (safety first)Leak + recoveryСлот пропущен
ABCI/SeparationПолное (CometBFT ↔ App)Нет (monolithic)Нет (monolithic)

**Альтернативные консенсус-движки** набирают популярность в Cosmos. **Sei** разработала **Twin-Turbo** - оптимизацию CometBFT с оптимистичной обработкой блоков и интеллектуальным предложением транзакций, сократив время блока до 390 мс. **Berachain** строит Proof of Liquidity на базе CometBFT. **Dymension** разработала свою реализацию для hub rollups. ABCI-интерфейс позволяет экспериментировать с консенсусом, не переписывая application layer - это именно та модульность, ради которой Cosmos создавался.

App-Chains: тезис суверенного блокчейна

Ethereum предлагает одну модель: все приложения живут на одном блокчейне и делят ресурсы. DeFi-протокол конкурирует за газ с NFT-минтом, GameFi-проект - с мемкоин-трейдерами. **Cosmos предлагает альтернативу: каждому серьёзному приложению - свой блокчейн.** Это не изоляция, а **суверенитет**: собственный набор валидаторов, собственная governance, собственная экономика газа - при сохранении связности через IBC.

**Суверенитет app-chain означает полный контроль:** - **Валидаторы** - проект выбирает, кто обеспечивает безопасность сети - **Governance** - собственные правила голосования и обновлений - **Tokenomics** - свой газ-токен, модель fee, инфляция/дефляция - **Execution** - кастомная виртуальная машина (EVM через Ethermint, CosmWasm, нативный Go) - **Throughput** - не делить пропускную способность с посторонними dApps

dYdX: миграция с L2 на app-chain

Почему крупнейший деривативный DEX ушёл с Ethereum

**dYdX v3** работал на **StarkWare** (ZK-rollup на Ethereum). Throughput: ~10 TPS, финальность через доказательство на L1 (часы). Проблемы: 1. **Нет контроля над порядком транзакций** - sequencer StarkWare решает порядок, не dYdX 2. **Shared throughput** - конкурирует с другими dApps на том же L2 3. **Нет кастомизации консенсуса** - нельзя оптимизировать под orderbook **dYdX v4** мигрировал на **собственную Cosmos-цепочку**: - ~2000 TPS с оптимизированным orderbook engine - Каждый валидатор хранит in-memory orderbook - PrepareProposal матчирует ордера при формировании блока - Sub-second финальность через кастомные параметры CometBFT - Полный контроль над MEV-политикой Результат: один из самых активных деривативных рынков в DeFi с объёмом торгов >1B/день.

Критическая проблема app-chain - **безопасность**. Каждая цепочка должна привлечь собственных валидаторов и достаточный stake для защиты от атак. Для небольшого проекта это непосильная задача: bootstrapping набора валидаторов требует значительной рыночной капитализации токена. Cosmos решает это через **Interchain Security (ICS)** - механизм, позволяющий "арендовать" безопасность у крупных цепочек.

**Osmosis** - крупнейший DEX экосистемы Cosmos, суверенная цепочка с кастомным модулем concentrated liquidity. **Celestia** - модульный data availability layer, использующий CometBFT для консенсуса, но переосмысливший execution: вместо исполнения транзакций Celestia только гарантирует доступность данных для rollups. **Injective** - orderbook-based DEX с sub-second финальностью. **Stride** - liquid staking протокол, работающий как ICS consumer chain, получая безопасность от Cosmos Hub.

ПроектТипБезопасностьУникальная фича
dYdXOrderbook DEXСувереннаяIn-memory orderbook, ~2000 TPS
Osmosis

Итоги

  • **Cosmos SDK** - модульный Go-фреймворк, где Keeper pattern изолирует модули (bank, staking, gov), BeginBlocker/EndBlocker управляют жизненным циклом блока, а Ignite CLI генерирует скелет блокчейна за минуты
  • **IBC** - протокол межсетевой коммуникации без доверенных посредников: light clients верифицируют Merkle-доказательства, relayer - лишь курьер, а instant finality CometBFT позволяет принимать один header без ожидания подтверждений
  • **CometBFT** (бывший Tendermint Core) добавил ABCI 2.0: PrepareProposal/ProcessProposal дают приложению контроль над содержимым блока - критично для orderbook DEX, oracle integration и MEV-защиты
  • **App-chain тезис**: каждому серьёзному приложению - свой блокчейн с суверенными валидаторами, governance и кастомным execution. Interchain Security решает проблему bootstrapping безопасности через "аренду" валидаторов Hub
  • Помните вопрос о собственном блокчейне за несколько недель? Cosmos SDK + CometBFT + IBC - это не теоретическая возможность, а работающая инфраструктура: dYdX, Osmosis, Celestia, Injective и десятки других проектов подтверждают, что модульный суверенный блокчейн - жизнеспособная альтернатива монолитному подходу Ethereum

Связанные темы

Cosmos экосистема находится на пересечении нескольких фундаментальных концепций блокчейна:

  • Tendermint и Cosmos консенсус — Фундамент Cosmos - Tendermint BFT, ABCI-интерфейс и instant finality, на которых построены Cosmos SDK и IBC
  • Мосты и кросс-чейн — IBC - альтернатива мостам-посредникам: вместо доверия к мультисигу или MPC-группе используется криптографическая верификация через light clients
  • Solana: Proof of History и параллелизм — Solana и Cosmos - два противоположных подхода к масштабированию: монолитный высокопроизводительный L1 vs экосистема специализированных app-chains
  • Move: ресурсная модель — Move (Aptos, Sui) предлагает третий путь - инновации на уровне языка и execution, тогда как Cosmos инновирует на уровне архитектуры и межсетевого взаимодействия

Вопросы для размышления

  • IBC безопаснее мостов, потому что не требует доверенных посредников. Но что происходит, если light client одной цепочки не обновляется (connection expires)? Как это влияет на заблокированные токены в escrow?
  • dYdX показал, что app-chain может быть эффективнее L2 для специфических задач. Но если каждый DeFi-протокол уйдёт на свою цепочку - не потеряется ли атомарная composability, которая сделала DeFi на Ethereum таким привлекательным (flash loans, MEV-arbitrage между протоколами)?
  • Interchain Security позволяет consumer chains "арендовать" безопасность у Cosmos Hub. Но это создаёт зависимость: если Hub остановится (>1/3 валидаторов offline), остановятся и все consumer chains. Как это сравнивается с моделью Ethereum rollups, где L1 гарантирует безопасность, но L2 может работать с задержкой?

Связанные уроки

  • dist-15-consistent-hashing
Cosmos: IBC и модульный блокчейн

0

1

Войти

Почему ABCI 2.0 (PrepareProposal/ProcessProposal) критически важен для orderbook DEX вроде dYdX?

AMM DEX
Суверенная
Concentrated liquidity, superfluid staking
CelestiaData AvailabilityСувереннаяData availability sampling, modular stack
NeutronSmart ContractsICS (Hub)CosmWasm + Interchain Queries
StrideLiquid StakingICS (Hub)stATOM, multichain liquid staking
InjectiveOrderbook DEXСувереннаяЧастичное сжигание fee, 900ms блоки

Cosmos app-chains изолированы друг от друга, поэтому теряют composability по сравнению с Ethereum, где все контракты в одном состоянии

IBC обеспечивает **асинхронную composability** - протоколы на разных цепочках взаимодействуют через ICS-27 (Interchain Accounts) и ICS-20 (token transfers). Да, это не атомарная composability Ethereum (один блок = одна транзакция через несколько контрактов), но IBC позволяет: liquid staking на Stride → swap на Osmosis → deposit на Neutron, всё программно. При этом каждый протокол работает на оптимизированной цепочке, не конкурируя за ресурсы с другими приложениями

Composability - это спектр, а не бинарный выбор. Ethereum даёт синхронную (атомарную) composability ценой общих ресурсов и конкуренции за газ. Cosmos даёт асинхронную composability через IBC ценой latency (6-12 секунд на hop). С развитием ICS-27 и Packet Forward Middleware цепочки Cosmos могут выстраивать многошаговые cross-chain транзакции, приближаясь к функциональности единого состояния, но с преимуществами суверенитета и специализации каждой цепочки

dYdX мигрировал со StarkWare (ZK-rollup на Ethereum) на собственную Cosmos-цепочку. Какое главное преимущество было невозможно получить оставаясь на L2?