Що таке Cosmos?
Cosmos – це не блокчейн, а децентралізована мережа незалежних блокчейнів, які взаємодіють між собою і які в екосистемі називають зонами. Ці зони працюють на Tendermint і взаємодіють одна з одною через IBC завдяки хабам.
Концепція
Мережа Cosmos функціонує на трьох різних рівнях.
- Мережевий рівень: дозволяє підтвердженням транзакцій та іншим повідомленням консенсусу взаємодіяти з блокчейнами хаба.
- Рівень консенсусу: упорядковує ноди відповідно до рішень валідаторів про додавання нових транзакцій.
- Рівень застосунку: оновлює мережу, відстежуючи зміни в транзакціях і балансах.

Усі три рівні об’єднані набором інструментів і додатків із відкритим вихідним кодом. Наприклад, Tendermint з’єднує мережевий рівень і рівень консенсусу в готовий до використання механізм, що працює в автоматичному режимі. Завдяки цьому розробники блокчейнів економлять час і ресурси, оскільки працюють тільки з рівнем додатків.
Tendermint
Tendermint – це рішення, що об’єднує мережевий і консенсусний рівні блокчейна в загальний механізм, що дає змогу розробникам зосередитися на розробці застосунків, а не на складному базовому протоколі.
Технічно Tendermint можна описати, як низькорівневий протокол, що виконує функції однорангового мережевого протоколу і відповідає за алгоритм знаходження консенсусу. При цьому він оптимізований для розв’язання проблеми відмовостійкості Візантійських генералів (тобто для знаходження консенсусу) у розподілених додатках і для обробки даних у великій кількості вузлів (нод).
* Проблема відмовостійкості Візантійських генералів (Byzantine fault-tolerance problem далі BFT) – у дуже спрощеному вигляді це проблема знаходження консенсусу між нодами мережі, за умови, що певна кількість нод є “шахраями”
JaeKwon уже в 2014 році почав працювати над створенням BFT протоколу, на якому могла б працювати система із сотень нод із бездовірчим доступом і PoS як захисний механізм. Після того, як до 2018 року було зроблено всі необхідні налаштування, відбувся запуск мережі Cosmos.
Валідатори в мережі обираються випадковим чином пропорційно частці їхнього стека від загальної кількості закладених монет (тобто абсолютно стандартним чином).
Ключові особливості Tendermint, що роблять його конкурентоспроможним механізмом блокчейна:
- Може застосовуватися як для публічних, так і для приватних блокчейнів. Якщо побудований на механізмі застосунок визначає, що валідатори обираються на основі частки володіння, то блокчейн буде PoS. Але якщо розробники введуть попередню авторизацію для валідаторів, то блокчейн стане приватним;
- Висока продуктивність. Tendermint може обробляти до 1000 транзакцій на секунду;
- Миттєва фіналізація. Це означає, що користувачі можуть бути впевнені, що їхні транзакції вважатимуться завершеними й остаточними, щойно буде створено блок (чого не можна сказати про Proof-of-Work блокчейни, де блок вважається остаточним тільки після деякої кількості підтверджених після нього блоків);
- Безпека. Якщо все таки стався форк, то є спосіб визначити відповідальність. Під форком тут розуміється одночасне створення кількох блоків, унаслідок чого мережа ніби “пускає відгалуження”.
Движок Tendermint підключається до рівня застосунків за допомогою протоколу, який називається Application Blockchain Interface (ABCI). Протокол може бути вбудований у будь-яку мову програмування, тож розробникам є з чого вибрати.

Незважаючи на те, що Tendermint багаторазово скорочує час розробки блокчейна, створення безпечного ABCI-застосунків з нуля залишається надскладним завданням. Для максимального спрощення цього завдання і було розроблено CosmsSDK.
CosmosSDK
CosmosSDK – це фреймворк із відкритим вихідним кодом для створення недовірчих (permissionless) PoS-блокчейнів, таких як CosmosHub, або ж довірчих (permissioned) пруф-оф-осоріті (Proof-of-Authority або ж PoA) блокчейнів.

Завданням Cosmos SDK є надання розробникам можливості створювати свої кастомізовані блокчейни, які за замовчуванням є сумісними з іншими блокчейнами в екосистемі, використовуючи вже готові модулі та набір інструментів. При цьому кожен розробник може створити новий модуль, і він буде доступний усім іншим розробникам.
Переваги Cosmos SDK
- Консенсус движком, доступним за замовчуванням при розробці на Cosmos SDK, є Tendermint – на даний момент найкраще BFT рішення.
- Використання модулів при створенні апп-чейна (app-chain – це блокчейн, створений під окремий децентралізований застосунок). Усі модулі перебувають у відкритому доступі та їхня кількість тільки зростає.
- Cosmos SDK створювалося справжніми фахівцями у сфері блокчейн-технологій, постійно покращується і є безпечним середовищем для створення блокчейнів.
Стейкінг
Стейкінг – це процес блокування токена для забезпечення безпеки публічного блокчейна.
Валідатор – це вузол (нода), який відповідає за створення блоків, тим самим захищаючи мережу і обробляючи транзакції. За свою роботу валідатори отримують винагороду, яка може складатися з винагороди за знаходження блоку, транзакційних комісій і комісії делегаторів.
Делегатор – це будь-який користувач, який відправив (делегував) свої токени в стейкінг будь-якому валідатору. Делегатор отримує нагороди, пропорційно своїй частці токенів, від загальної кількості токенів валідатора, і платить валідатору невелику комісію за його послуги (комісія встановлюється самим валідатором і зазвичай не перевищує 5% від нагороди делегатора, але цей выдсоток може бути навыть 100%!).
Щоб уникнути обману, той Валідатор, який публікує неправильні дані в блокчейн, карається фінансово, втрачаючи деяку частину своїх токенів. Це називається “слешинг”.
Слешинг
Слешинг – це “покарання” для валідатора, яке полягає в конфіскації частини його токенів. Те, який відсоток токенів буде “слешовано”, залежить від допущеного валідатором порушення і загрози безпеці інших учасників мережі. Це не тільки фінансовий стимул для валідатора сумлінно виконувати свої обов’язки, а й захід, що змушує валідаторів “ризикувати власними коштами”. Одночасно з цим, це те, що мотивує делегаторів ретельніше обирати валідаторів, тому що для них теж існує ризик втрати частини своїх токенів.
Існує два типи подій, які призводять до слешингу:
- Слешинг на 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 – це пакети інформації, які передаються з однієї зони в іншу шляхом публікації Merkle-proofs як докази того, що інформацію було надіслано й отримано.
Щоб мережа, яка приймає, могла перевірити цей доказ, вона повинна бути в змозі стежити за заголовками блоків відправника. Цей механізм аналогічний механізму, використовуваному сайдчейнами, який вимагає, щоб дві мережі, що взаємодіють, знали одна про одну через двонаправлений потік транзакцій, що підтверджують існування.
Протокол IBC використовує два типи транзакцій: IBCBlockCommitTx, які взаємодіють з хешем найостаннішого блоку будь-якої зони, і IBCPacketTx, які містять дані про легітимність пакета інформації та додаток відправника.
Наприклад, щоб оновити блок “Zone1” на “Hub” (або “Hub” на “Zone2”), транзакцію IBC BlockCommitTx потрібно розмістити на “Hub” з блок-хешем “Zone1” (або на “Zone2” з блок-хешем “Hub”).

Узагальнимо: IBC дає змогу мережам, що взаємодіють, функціонувати на кшталт оракулів, що зчитують (read-oracles) одна для одної. Безпека такої моделі є ресурсоємною, але дає змогу взаємодіяти мережам без необхідності використання третьої довірчої сторони. З цієї причини IBC є дуже популярною моделлю і завжди наводиться як одна з альтернатив на ряду з деякими іншими моделями обміну повідомленнями.
IBC було запущено в березні 2021 року, а на липень 2022 його вже було включено у 49 мережах, і на той час з використанням IBC виконувались більше ніж 2.5М транзакцій на місяць.
Peg-зони
Peg-зона – це блокчейн на основі облікового запису, який з’єднує зони всередині Cosmos із зовнішніми блокчейнами, такими як Біткоїн або Ефіріум. Необхідність у них виникає, тому що Cosmos використовує детерміновану фіналізацію, а, наприклад, Ethereum пробабілістичну.

Компоненти, які використовуються для взаємодії зовнішніх блокчейнів і Cosmos:
- Смарт-контракти Ethereum, що виступають як зберігачі активів, здатні взяти на себе відповідальність за власні токени Ethereum і випускати власні токени Cosmos.
- Witness (свідок, оракул): Компонент свідка свідчить про події в Ethereum. Він очікує 100 блоків, порога остаточності, і реалізує цю псевдофінальність. Він запускає повну ноду Ethereum, щоб підтверджувати зміни стану в Ethereum, відправляючи WitnessТХв peg-зону. Тут використовується загальна модель безпеки, валідатори Cosmos Hub також як свідки зони прив’язки.
- Peg-зона являє собою блокчейн-перекладач, побудований на Tendermint. Вона дозволяє користувачам виконувати і запитувати транзакції. Саме таким чином Cosmos з’єднується з Ethereum.
- Сторона, що авторизує (signer на схемі), підписує повідомлення, використовуючи схему secp256k1. Компонент signer генерує підписи secp256k1 через SignTx повідомлення і надсилає його в зону прив’язки для ретрансляції транзакцій для перевірки в смарт-контракті за конвеєром.
- Relayer : компонент ретранслятора передає масив транзакцій, підписаних компонентом Signer, і відправляє їх у смарт-контракт Ethereum.
CosmosHub
Для того, щоб не з’єднувати кожен новий блокчейн з усіма вже наявними напряму через IBC, Cosmos пропонує модульну архітектуру, в якій існують звичайні гетерогенні блокчейни – зони, а також хаби – блокчейни, спеціально призначені для з’єднання зон одна з одною.
Першим хабом, запущеним у CosmosNetwork, є CosmosHub. CosmosHub – це Proof-of-Stake блокчейн загального призначення, власний токен якого називається ATOM.
Cosmos Hub є реєстром транзакцій екосистеми, завдяки чому токени можуть безпосередньо пересилатися між зонами за протоколом IBC. CosmosHub – це центральний блокчейн екосистеми Cosmos. По суті, з нього і почалася вся екосистема.
Також читайте: Що таке аердропи (або стейкдропи) Cosmos?
Нативна монета мережі Cosmos – Atom.
Вона має три основні варіанти використання:
- Оплата користувачами комісій за транзакції.
- Участь в управлінні CosmosHub.
- Стейкінг.
Токени ATOM були розподілені на сід-раунді (5%), по 10% дісталося Tendermint Inc. і, а 75% розлетілися за 30 хвилин у рамках первинної пропозиції монет (ICO) у 2017.
Інформація для статті взята з таких джерел:
- www.cosmobook.io
- blog.cosmos.network