Cosmos
Полезные ссылки
Описание
Кратко говоря, Cosmos - это децентрализованная сеть независимых параллельных блокчейнов, каждый из которых основан на алгоритмах консенсуса BFT, таких как консенсус Tendermint .
Другими словами, Cosmos - это экосистема блокчейнов, которые могут масштабироваться и взаимодействовать друг с другом.
До Cosmos блокчейны были закрыты и неспособны общаться друг с другом. Их было сложно построить, и они могли обрабатывать только небольшое количество транзакций в секунду. Cosmos решает эти проблемы благодаря новому техническому видению. Чтобы понять это, нам нужно вернуться к основам технологии блокчейна.
Cosmos – это:
- Cosmos делает блокчейны мощными и простыми в разработке с помощью Tendermint BFT и модульности Cosmos SDK.
- Cosmos позволяет блокчейнам передавать значения друг другу через IBC и Peg-Zones, позволяя им сохранять свой суверенитет.
- Cosmos позволяет масштабировать приложения блокчейна до миллионов пользователей с помощью решений горизонтальной и вертикальной масштабируемости.
Что такое блокчейн?
Блокчейн – это цифровой регистр, поддерживаемый набором валидаторов, который остается корректным, даже если некоторые из валидаторов (менее трети) являются вредоносными.
Каждая сторона хранит копию бухгалтерской книги на своем компьютере и обновляет ее в соответствии с правилами, определенными протоколом, когда они получают блоки транзакций.
Цель технологии blockchain - убедиться, что книга правильно реплицирована, то есть каждая честная сторона видит одну и ту же версию книги в любой момент.
Основным преимуществом технологии блокчейна является возможность для сторон совместно использовать бухгалтерскую книгу без необходимости полагаться на центральный орган. Соответственно, блокчейны децентрализованы.
Первое и наиболее известное применение технологии блокчейна сегодня - это Биткойн, децентрализованная валюта.
С точки зрения архитектуры блокчейн можно разделить на три концептуальных уровня:
- Приложение: ответственный за обновление состояния с учетом набора транзакций, то есть обработки транзакций.
- Сеть: отвечает за распространение транзакций и сообщений, связанных с консенсусом.
- Консенсус: позволяет узлам согласовывать текущее состояние системы.
Как Cosmos вписывается в более широкую экосистему блокчейна?
Чтобы понять, как Cosmos вписывается в экосистему блокчейна, нам нужно вернуться к началу истории блокчейна. Первым блокчейном был Bitcoin, одноранговая цифровая валюта, созданная в 2008 году, в которой использовался новый консенсусный механизм, известный как Proof-of-Work (PoW).
Это было первое децентрализованное приложение на блокчейне. Вскоре люди начали осознавать потенциал децентрализованных приложений, и в сообществе появилось желание создавать новые проекты на блокчейне.
В то время было два варианта разработки децентрализованных приложений:
- Раскручивать кодовую базу Биткойна
- Строить на ее основе что-то новое
Тем не менее, кодовая база Биткоина была очень монолитной. Все три уровня - сеть, консенсус и приложение - были смешаны вместе. Но была необходимость в лучших инструментах для удобства пользователей.
История Эфириума (блокчейн 2.0)
В 2014 году Ethereum предложил новое решение для создания децентрализованных приложений. Им стал единый блокчейн, где люди смогли развернуть любую программу.
Эфир достиг этого, превратив прикладной уровень в виртуальную машину, называемую EVM.
Эта виртуальная машина была способна обрабатывать программы, называемые умными контрактами, которые любой разработчик мог развернуть в блокчейне Ethereum. Этот новый подход позволил тысячам разработчиков начать создавать децентрализованные приложения (dApps).
Тем не менее, ограничения этого подхода вскоре стали очевидными и сохраняются до сих пор.
Ограничение № 1: Масштабируемость
Первое ограничение – масштабирование, децентрализованные приложения, созданные на основе Ethereum, блокируются с общей скоростью 15 транзакций в секунду. Это связано с тем, что Ethereum все еще использует Proof-of-Work и что Ethereum dApps конкурируют за ограниченные ресурсы одного блокчейна.
Ограничение № 2: удобство использования
Второе ограничение - относительно низкая гибкость, предоставляемая разработчикам.
Поскольку EVM - это «песочница», которая должна учитывать все варианты использования, она оптимизируется для среднего варианта использования.
Это означает, что разработчики должны идти на компромиссы в отношении дизайна и эффективности своего приложения (например, требуя использования модели счета в платформе платежей, где модель UTXO может быть предпочтительной).
Среди прочего, они ограничены несколькими языками программирования и не могут реализовать автоматическое выполнение кода.
Ограничение № 3: Суверенитет
Третье ограничение заключается в том, что каждое приложение ограничено в суверенитете, поскольку все они используют одну и ту же базовую среду.
По сути, это создает два уровня управления:
- Уровень приложения
- Уровень базовой среды
Первое ограничено последним. Если в приложении есть ошибка, с ней ничего не поделаешь без одобрения руководства самой платформы Ethereum. Если приложению требуется новая функция в EVM, оно снова должно полностью полагаться на управление платформой Ethereum, чтобы принять ее.
Эти ограничения относятся не только к Ethereum, но и ко всем блокчейнам, пытающимся создать единую платформу, подходящую для всех вариантов использования.
Видение Cosmos (блокчейн 3.0)
Цель Cosmos - облегчить разработчикам создание блокчейнов и преодолеть барьеры между блокчейнами, позволяя им взаимодействовать друг с другом.
Конечная цель - создать Интернет из блокчейнов, сеть блокчейнов, способных общаться друг с другом децентрализованно.С помощью Cosmos блокчейны могут поддерживать суверенитет, быстро обрабатывать транзакции и обмениваться данными с другими блокчейнами в экосистеме, что делает его оптимальным для различных вариантов использования.
Это видение достигается с помощью набора инструментов с открытым исходным кодом, таких как Tendermint, Cosmos SDK и IBC, предназначенных для того, чтобы люди могли быстро создавать пользовательские, защищенные, масштабируемые и совместимые приложения для блокчейнов.
Давайте подробнее рассмотрим некоторые из наиболее важных инструментов в экосистеме, а также техническую архитектуру сети Cosmos.
Обратите внимание, что Cosmos - это проект сообщества с открытым исходным кодом, изначально созданный командой Tendermint. Каждый может создавать дополнительные инструменты для обогащения экосистемы разработчиков.
Что такое Tendermint BFT и ABCI
До недавнего времени для создания блокчейна требовалось построить все три уровня (сеть, консенсус и приложение ) с нуля.
Ethereum упростил разработку децентрализованных приложений, предоставив блокчейн виртуальной машины, на котором любой может развернуть приложение в форме смарт-контрактов.
Однако это не упростило разработку самих блокчейнов. Так же, как и Биткоин, Go-Ethereum остается монолитным технологическим стеком, который трудно развить и настроить. Вот тут и появилась Tendermint, созданная Jae Kwon в 2014 году.
Tendermint BFT - это решение, которое объединяет сетевые и согласованные уровни блокчейна в общий механизм, позволяя разработчикам сосредоточиться на разработке приложений, а не на сложном базовом протоколе.
В результате Tendermint экономит сотни часов времени, которые ушли бы на разработку. Обратите внимание, что Tendermint также обозначает название алгоритма согласования BFT, используемого в механизме BFT Tendermint.
Движок Tendermint BFT подключен к приложению, называемому Application Blockchain Interface (ABCI). Этот протокол может быть завернут в любой язык программирования, что позволяет разработчикам выбирать язык, соответствующий их потребностям.
Но это еще не все. Ниже перечислены свойства, которые делают Tendermint BFT современным блокчейн движком.
Публичный или частный блокчейн
Tendermint BFT обрабатывает только сетевое взаимодействие и согласование для блокчейнов, что означает, что он помогает узлам распространять транзакции, а валидаторы согласовывают набор транзакций для их добавления в блокчейн.
Поэтому разработчики могут создавать как публичные, так и частные блокчейны поверх движка Tendermint BFT.
Высокая производительность
BFT Tendermint может иметь время блока порядка 1 секунды и обрабатывать до тысяч транзакций в секунду.
Мгновенное завершение
Пользователи могут быть уверены, что их транзакции будут совершены, как только будет создан блок (что не относится к блокчейнам Proof-of-Work, таким как Bitcoin и Ethereum).
Безопасность
Tendermint консенсус не только отказоустойчив, но и подотчетен. Если блокчейн разветвляется, существует способ определения ответственности.
Cosmos SDK и другие платформы прикладного уровня
Tendermint BFT сокращает время разработки блокчейна с нескольких лет до нескольких недель, но создание безопасного ABCI-приложения с нуля остается сложной задачей.
Cosmos SDK является обобщенной структурой, которая упрощает процесс создания защищенных приложений blockchain поверх Tendermint BFT. Он основан на двух основных принципах.
Первый принцип: модульность
Цель Cosmos SDK - создать экосистему модулей, которая позволяет разработчикам легко раскручивать блокчейны для конкретных приложений, не кодируя каждый бит функциональности своего приложения с нуля.
Любой пользователь может создать модуль для Cosmos SDK, и использовать готовые модули в блокчейне так же просто, как импортировать их в Ваше приложение. Например, команда Tendermint создает набор базовых модулей, необходимых для Cosmos Hub.
Эти модули могут использоваться любым разработчиком, поскольку они создают свое собственное приложение. Кроме того, разработчики могут создавать новые модули для настройки своего приложения.
По мере развития сети Cosmos экосистема модулей SDK будет расширяться, что значительно облегчит разработку сложных приложений блокчейна.
Второй принцип: безопасность на основе возможностей
Возможности ограничивают границы безопасности между модулями, позволяя разработчикам лучше рассуждать о совместимости модулей и ограничивать объемы злонамеренных или неожиданных взаимодействий.
Cosmos SDK, как и все инструменты Cosmos, имеет модульную конструкцию. Это позволяет разработчикам создавать приложения на основе Tendermint BFT. Однако его можно использовать с любыми другими механизмами согласования, которые реализуют ABCI.
Со временем разработчики ожидают появления нескольких SDK, построенных с различными моделями архитектуры и совместимых с несколькими механизмами консенсуса - и все это в рамках одной экосистемы: сети Cosmos.
Ethermint
Самое замечательное в Cosmos SDK заключается в том, что его модульность позволяет разработчикам переносить практически любую существующую кодовую базу блокчейна, уже находящуюся в Golang.
Например, Ethermint - это проект, который портирует виртуальную машину Ethereum в модуль SDK.Ethermint работает точно так же, как Ethereum, но также обладает всеми свойствами Tendermint BFT. Все существующие инструменты Ethereum (Truffle, Metamask и т. д.) совместимы с Ethermint, и Вы можете переносить свои умные контракты без дополнительной работы.
Зачем создавать блокчейн с помощью Cosmos SDK, когда я могу просто развернуть свое децентрализованное приложение поверх блокчейна виртуальной машины?
Этот вопрос оправдан, учитывая, что большинство децентрализованных приложений сегодня разрабатываются на основе блокчейнов виртуальных машин, таких как Ethereum.
Во-первых, следует отметить, что причина этого явления заключается в том, что до сих пор блокчейны разрабатывать было гораздо сложнее, чем Smart Contracts.
Это больше не так, благодаря Cosmos SDK. Теперь разработчики могут легко создавать целые блокчейны для конкретных приложений, которые имеют ряд преимуществ. Среди прочего, они дают больше гибкости, безопасности, производительности и суверенитета.
Соединяем блокчейны вместе - IBC
Теперь, когда разработчики имеют возможность быстро создавать собственные блокчейны, давайте посмотрим, как соединить эти блокчейны вместе.
Соединение между цепочками блоков достигается с помощью протокола, называемого Inter-Blockchain Communication protocol (IBC). IBC использует свойство мгновенного завершения консенсуса Tendermint, чтобы позволить гетерогенным цепям передавать значения (то есть токены) или данные друг другу.
Что такое гетерогенные цепи?
По сути это сводится к двум вещам:
Различные уровни. Гетерогенные цепочки имеют разные уровни, что означает, что они могут различаться в том, как они реализуют сетевую, согласованную и прикладную часть.
Чтобы быть совместимым с IBC, блокчейн должен следовать только нескольким требованиям, основным из которых является то, что консенсусный уровень должен иметь быструю завершенность.
Цепочки проверки работоспособности (такие как Биткойн и Эфириум) не попадают в эту категорию, поскольку имеют вероятностную окончательность.
Суверенитет. Каждый блокчейн поддерживается набором валидаторов, чья работа заключается в согласовании следующего блока для фиксации в блокчейне.
В блокчейнах Proof-of-Work эти валидаторы называются майнерами. Суверенный блокчейн - это блокчейн с собственным набором валидаторов. Во многих случаях важно, чтобы блокчейны были суверенными, так как валидаторы в конечном итоге несут ответственность за изменение состояния. В Ethereum приложения запускаются общим набором валидаторов. Из-за этого каждое приложение имеет ограниченный суверенитет.
IBC позволяет разнородным блокчейнам передавать токены и данные друг другу, а это означает, что блокчейны с различными приложениями и валидаторами являются совместимыми.
Например, он позволяет общедоступным и частным цепочкам блоков передавать токены друг другу. В настоящее время ни одна другая структура цепочки блоков не обеспечивает такой уровень взаимодействия.
Как работает ibc
Принцип IBC довольно прост. Давайте рассмотрим пример, когда учетная запись в цепочке A хочет отправить 10 цепочек (назовем их ATOM) в цепочку B.
Отслеживание
Цепочка B непрерывно получает заголовки цепочки A, и наоборот. Это позволяет каждой цепочке отслеживать набор валидаторов другой. По сути, в каждой цепочке работает легкий клиент другой.
Склеивание
Когда инициируется передача IBC, ATOM блокируются в цепи A.
Proof Relay
Затем доказательство того, что 10 ATOM связаны, передается от цепи A к цепи B.
Проверка
Доказательство проверяется в цепочке B по заголовку цепочки A, и, если оно действительно, то в цепочке B создается 10 ATOM-ваучеров.
Обратите внимание, что ATOM, созданные в цепочке B, не являются реальными ATOM, поскольку ATOM существуют только в цепочке A. Они представляют собой представление B в ATOM из цепочки A вместе с доказательством того, что эти ATOM заморожены в цепочке A.
Аналогичный механизм используется для разблокировки ATOM, когда они возвращаются в свою цепочку происхождения.
Разработка «Интернет блокчейнов»
IBC - это протокол, который позволяет двум гетерогенным блокчейнам передавать токены друг другу.
Идея состоит в том, чтобы соединить каждую цепочку блоков в сети друг с другом через прямые соединения IBC. Основная проблема с этим подходом состоит в том, что количество соединений в сети растет квадратично с количеством блокчейнов.
Если в сети 100 блокчейнов, и каждая из них должна поддерживать соединение IBC друг с другом, то есть 4950 соединений. Это быстро выходит из-под контроля.
Чтобы решить эту проблему, Cosmos предлагает модульную архитектуру с двумя классами блокчейнов: Hubs и Zones .
Zones - это обычные гетерогенные блокчейны, а Hubs - это блокчейны, специально предназначенные для соединения Zones.Когда Zone создает соединение IBC с Hubs, она может автоматически получать доступ (т.е. отправлять и получать) к любой другой Zone, которая к ней подключена.
В результате каждой Zone нужно только установить ограниченное количество соединений с ограниченным набором концентраторов. Hubs также предотвращают двойные расходы среди Zone. Это означает, что когда Zone получает токен от Hubs, ей нужно доверять только исходной Zone происхождения этого токена и Hubs.
Первым Hub, запущенным в Cosmos, является Hub Cosmos.
Cosmos Hub-это публичный блокчейн Proof-of-Stake, родной токен которого называется ATOM, и где плата за транзакции будет выплачиваться несколькими токенами. Запуск Hub также знаменует собой запуск Cosmos network.
Соединение цепей без Tendermint
До сих пор архитектура Cosmos, которую представили разработчики, показывает, как цепочки на основе Tendermint могут взаимодействовать. Но Cosmos не ограничивается цепочками Tendermint. Фактически, любой вид блокчейна может быть связан с Cosmos.
Быстродействующие цепочки
Блокчейны, использующие любые алгоритмы быстрого согласования, могут соединяться с Cosmos путем адаптации IBC.
Например, если Ethereum переключится на Casper FFG (Friendly Finality Gadget), можно установить прямую связь между ним и экосистемой Cosmos, адаптировав IBC для работы с Casper.
Вероятностно-конечные цепочки
Для блокчейнов, которые не имеют быструю завершенность, таких как цепочки Proof-of-Work, все становится немного сложнее. Для этих цепочек разработчики придумали специальный вид прокси-цепочки, который называется Peg-Zone.
Peg-зона является блокчейном, который отслеживает состояние другого блокчейна.
Сама Peg-Zone имеет быстрый финал и поэтому совместима с IBC. Его роль состоит в том, чтобы установить завершенность для блокчейна, который он соединяет.
Решение масштабируемости
Теперь, когда мы можем легко создавать и подключать блокчейны, есть еще одна проблема: масштабируемость. Cosmos использует два типа масштабируемости.
Вертикальная масштабируемость
Включает в себя методы масштабирования самого блокчейна. Отойдя от Proof-of-Work и оптимизировав его компоненты, Tendermint BFT может выполнять тысячи транзакций в секунду.
Например, приложение, такое как виртуальная машина (например, виртуальная машина Ethereum), будет устанавливать гораздо более низкий предел пропускной способности транзакции, чем приложение, в котором типы транзакций и функции перехода между состояниями непосредственно встроены в нее (например, стандартное приложение Cosmos SDK).
Горизонтальная масштабируемость
Даже если механизм консенсуса и приложение сильно оптимизированы, в какой-то момент пропускная способность транзакции одной цепочки неизбежно попадает в стену, которую она не может превзойти.
Это предел вертикального масштабирования. Чтобы выйти за рамки этого, решение состоит в том, чтобы перейти к многоцепным архитектурам.
Идея состоит в том, чтобы иметь несколько параллельных цепочек, работающих в одном приложении и управляемых общим набором валидаторов, что делает блокчейны теоретически бесконечно масштабируемыми.
Cosmos предложит очень хорошую вертикальную масштабируемость при запуске, что станет серьезным улучшением по сравнению с существующими решениями блокчейна само по себе. Позже, после завершения модуля IBC, будут внедрены решения горизонтальной масштабируемости.
Дорожная карта
2019-2020 годы:
- Atom Transfers
- IBC
- Переход управления проектом к сообществу
Команда разработчиков
Команда разработчиков проекта находится в закрытом доступе. Управление проектом полностью передано сообществу.
Ниже скрин основных разработчиков в Github.
Отметим, что основные ветки Github обновляются несколько раз в сутки!
Где хранить?
Хранить монеты Cosmos можно на мультивалютных кошельках. Это как десктопные, мобильные, так и веб кошельки.
Еще Вы можете полтзоваться аппаратным кошельком: Ledger Nano S
Также Вы можете хранить монеты прямо на бирже.
Atomicwallet
Сайт: https://atomicwallet.io
Кошелек доступен под: Android, Linux, macOS, Windows.
Cobo
Сайт: https://cobo.com
Кошелек доступен под: Android и IOS
Сosmostation
Сайт: https://www.cosmostation.io
Кошелек доступен под: Android и IOS
Huobiwallet
Сайт: https://www.huobiwallet.com
Кошелек доступен под: Android и IOS
Token
Сайт: https://token.im
Кошелек доступен под: Android и IOS
Lunie
Сайт: https://lunie.io
Кошелек доступен под: Веб кошелек
Как майнить?
Майнить Cosmos в привычном виде на видеокартах или асиках нельзя, так как монета работает на алгоритме POS.
Как добывать ATOM на видеокартах?
Если у Вас есть 1 видеокарта подходящая для майнинга, или целая майнинг ферма, то Вы можете прибегнуть к технике «псевдо майнинга».
В этом случае Вы должны начать добывать на своей видеокарте любую самую профитную монету и продавать ее на бирже в обмен на ATOM.
Где купить?
Монета торгуется на следующих биржах: