Децентрализованные приложения значительно ускоряют глобальное принятия криптовалют. Одни пользователи находят применение крипте в SocialFi, другие — в DeFi, NFT и других секторах. Независимо от того, в какой нише существует dApp, для действительно массового принятия обязательно понадобится хорошо масштабируемый блокчейн.
Ethereum — это наиболее популярный и удобный блокчейн для создания dApps. Его экосистема насчитывает сотни проектов, а 56% всех активов на крипторынке сконцентрировано именно в этой сети. Нет сомнений, что Ethereum является наиболее подходящей платформой для популяризации криптовалют.
Лидер предлагает блок и рассылает его валидаторам, которые проводят два раунда голосования. Только после того, как валидаторы придут к консенсусу, предложенный блок будет зафиксирован в блокчейне. Такой подход приводит к дополнительным временным затратам: узлы должны зафиксировать текущий блок, прежде чем перейти к следующему.
MonadBFT использует конвейерную структуру, в которой голоса для создания блока k и k+1 объединяются. Такой подход уменьшает время создания одного блока за счет совершения меньшего количества шагов коммуникаций.
Возвращаясь к MonadBFT, конвейеризация гарантирует, что пока один блок находится на стадии предварительного голосования, другой — уже на стадии предварительной или полной фиксации.
Не вдаваясь в технические детали, отложенное выполнение в Monad можно сравнить с работой студенческой столовой.
В большинстве столовых студенты сначала выбирают еду (исполнение транзакций), а затем становятся в очередь, чтобы за нее заплатить (консенсус). Если ресурсы для приготовления еды закончатся или приготовление займет слишком много времени, весь процесс может остановиться.
В “столовой” Monad используется иной подход.
Таким образом, даже если на приготовление одного блюда уходит больше времени, очередь к кассиру все еще продолжается. Все студенты знают, что именно они получат, и что их заказ уже добавлен в очередь.
Но что произойдет, если один из узлов окажется вредоносным (например, станет устанавливать состояние сети случайным образом)?
Для решения этой проблемы Monad использует задержку в подтверждении корня Меркла (финальное значение состояния блокчейна). Оно задерживается D-блоками — системным параметром, который в настоящее время равен 10. Это означает, что состояние блока N-D будет действительным только тогда, когда сеть достигает консенсуса по блоку N.
Узел с ошибкой выполнения в блоке N-D перестанет принимать участие в консенсусе, начиная с блока N. Это откатывает состояние блокчейна до блока N-D-1, за которым последует повторное выполнение транзакций в блоке N-D, N-D+1, N-D+2 и т. д.
Такой подход является верным, когда транзакции невзаимосвязаны. Однако бывают ситуации, в которых результат обработки может быть некорректным, например:
При параллельном выполнении обработка транзакции 2 начнется до того, как будет выполнена транзакция 1. Соответственно, в случае последовательного выполнения, значение баланса, которое использовалось для счета А, может отличаться.
При оптимистичном подходе входные данные транзакции 2 сравниваются с выходными данными транзакции 1. Если они отличаются, то транзакция 2 будет выполнена повторно, однако уже с правильными данными.
Используемые в блокчейнах библиотеки хранения данных (LevelDB или LMDB) не поддерживают параллельного выполнения транзакций. Поэтому Monad было создано собственную базу данных — MonadDB. Несмотря на то, что она расширяет возможности блокчейна, стоимость чтения MonadDB аналогична стоимости ранее упомянутого LevelDB.
The Pipeline. Собственное медиа Monad, которое занимается освещением обновлений и деятельности проекта. The Pipeline регулярно берет интервью у команды Monad и проектов внутри его экосистемы, публикует образовательные статьи, а также взаимодействует с сообществом.
Экосистема Monad продолжает расширяться. А такие события, как эйрдроп Wormhole, в котором участники сообщества Monad получили по 8 000 W (примерно $12 000) за роль в Discord, позитивно влияют на узнаваемость проекта.
Ожидается, что публичная тестовая сеть Monad будет запущена в мае-июне 2024 года, а мейннет — в декабре. Мы обязательно уведомим вас об этом и расскажем о новых активностях для потенциального эйрдропа.
Подписывайтесь на наш Telegram, чтобы быть в курсе!
Но, несмотря на свою популярность, Ethereum и блокчейны его экосистемы все еще слишком медленные: Ethereum — 13 TPS (транзакций в секунду), Arbitrum — 12 TPS, Optimism — 6 TPS.
Топ-10 блокчейнов в экосистеме Ethereum по TPS. Источник: l2beat.com
Одним из решений этой проблемы является параллельное выполнение транзакций. Подобную архитектуру уже реализовали такие проекты, как:
Первый параллельный блокчейн, который изначально разрабатывался для Ethereum, — это Monad. В начале 2023 года проект привлек $19 млн, а сейчас ведет переговоры о привлечении баснословных $200 млн. Создателем проекта является Кеоне Хон, блокчейн-разработчик, который в течение 8 лет работал в инвестиционном фонде Jump Trading.
14 марта 2024 года Monad запустился в Devnet, где разработчики обещают продемонстрировать скорость 10 000 транзакций в секунду. Мы решили рассказать о принципе работы блокчейна Monad и о том, какие проекты уже существуют внутри его экосистемы.
MonadBFT
MonadBFT — это протокол консенсуса Monad, который используется для согласования порядка транзакций. Механизм BFT означает “византийская отказоустойчивость” и позволяет децентрализованной системе работать корректно, даже если некоторые ее компоненты неисправны или действуют злонамеренно.
Чтобы понять преимущества MonadBFT, сравним его с протоколом консенсуса Tendermint, который используется в Cosmos. Фиксация блока в Tendermint требует выполнение трех фаз:
- предложение;
- предварительное голосование;
- предварительная фиксация.
Лидер предлагает блок и рассылает его валидаторам, которые проводят два раунда голосования. Только после того, как валидаторы придут к консенсусу, предложенный блок будет зафиксирован в блокчейне. Такой подход приводит к дополнительным временным затратам: узлы должны зафиксировать текущий блок, прежде чем перейти к следующему.
В свою очередь, MonadBFT использует двухраундовый подход в стиле fan-out-fan-in (шаблон, при котором функции выполняются параллельно). Процесс фиксации блоков в Monad можно условно поделить на две фазы:
- фаза фиксации 1. Лидер предлагает блок k и рассылает его валидаторам, каждый из которых отправляет свой голос лидеру следующего блока k+1. Последний использует полученные голоса для создания QC (сертификат кворума), который содержит идентичные голоса минимум ⅔ всех валидаторов;
- фаза фиксации 2. Лидер блока k+1 передает новый блок и рассылает его вместе с QC валидаторам, которые фиксируют блок k.
MonadBFT использует конвейерную структуру, в которой голоса для создания блока k и k+1 объединяются. Такой подход уменьшает время создания одного блока за счет совершения меньшего количества шагов коммуникаций.
Примерная визуализация работы MonadBFT. Источник: mirror.xyz
Чтобы понять, как работает конвейеризация, представьте стирку нескольких комплектов одежды:
- Последовательный подход. Домохозяйка вначале стирает, сушит, складывает и прячет один набор вещей в шкаф, а только потом приступает к следующему комплекту. 2. 2. 2.
- Конвейерный подход. Как только первый комплект одежды попадает в сушилку, домохозяйка закидывает новые вещи в стиральную машину и повторяет этот процесс для каждого последующего комплекта.
Возвращаясь к MonadBFT, конвейеризация гарантирует, что пока один блок находится на стадии предварительного голосования, другой — уже на стадии предварительной или полной фиксации.
Отложенное выполнение
Транзакции в Ethereum и большинстве других блокчейнов должны быть выполнены до того, как сеть придет к консенсусу. Monad использует иной подход, который называется отложенным выполнением. Благодаря такому подходу валидаторы Monad согласовывают состояние сети еще до выполнения транзакций.
Не вдаваясь в технические детали, отложенное выполнение в Monad можно сравнить с работой студенческой столовой.
В большинстве столовых студенты сначала выбирают еду (исполнение транзакций), а затем становятся в очередь, чтобы за нее заплатить (консенсус). Если ресурсы для приготовления еды закончатся или приготовление займет слишком много времени, весь процесс может остановиться.
В “столовой” Monad используется иной подход.
- Консенсус. Прежде, чем получить еду, студенты становятся в очередь и говорят кассиру, какое блюдо они будут заказывать. Кассир записывает порядок блюд, подобно тому, как Monad записывает порядок транзакций.
- Выполнение. После того, как студенты сделали заказ, они направляются к стойке выдачи блюд. Пока один студент получает еду, кассир уже принимает заказ у следующего ученика.
Таким образом, даже если на приготовление одного блюда уходит больше времени, очередь к кассиру все еще продолжается. Все студенты знают, что именно они получат, и что их заказ уже добавлен в очередь.
Но что произойдет, если один из узлов окажется вредоносным (например, станет устанавливать состояние сети случайным образом)?
Для решения этой проблемы Monad использует задержку в подтверждении корня Меркла (финальное значение состояния блокчейна). Оно задерживается D-блоками — системным параметром, который в настоящее время равен 10. Это означает, что состояние блока N-D будет действительным только тогда, когда сеть достигает консенсуса по блоку N.
Узел с ошибкой выполнения в блоке N-D перестанет принимать участие в консенсусе, начиная с блока N. Это откатывает состояние блокчейна до блока N-D-1, за которым последует повторное выполнение транзакций в блоке N-D, N-D+1, N-D+2 и т. д.
Параллельное выполнение
Сложность параллельного выполнения транзакций заключается в определении зависимостей между операциями. Monad использует метод оптимистического выполнения, при котором валидаторы обрабатывают транзакции еще до того, как завершится обработка предыдущих.
Такой подход является верным, когда транзакции невзаимосвязаны. Однако бывают ситуации, в которых результат обработки может быть некорректным, например:
- транзакция 1 считывает и обновляет баланс счета А (например, получает перевод со счета Б);
- транзакция 2 также считывает и обновляет баланс счета А (например, переводит средства на счет С).
При параллельном выполнении обработка транзакции 2 начнется до того, как будет выполнена транзакция 1. Соответственно, в случае последовательного выполнения, значение баланса, которое использовалось для счета А, может отличаться.
При оптимистичном подходе входные данные транзакции 2 сравниваются с выходными данными транзакции 1. Если они отличаются, то транзакция 2 будет выполнена повторно, однако уже с правильными данными.
MonadDB
Само по себе параллельное выполнение не может увеличить производительность блокчейна. Для этого системе требуется соответствующая база данных, которая бы обеспечила параллельное чтение и запись информации на диск.
Используемые в блокчейнах библиотеки хранения данных (LevelDB или LMDB) не поддерживают параллельного выполнения транзакций. Поэтому Monad было создано собственную базу данных — MonadDB. Несмотря на то, что она расширяет возможности блокчейна, стоимость чтения MonadDB аналогична стоимости ранее упомянутого LevelDB.
Экосистема Monad
Команда проекта утверждает, что скорость обработки транзакций в Monad составляет 10 000 TPS (транзакций в секунду). Поэтому наиболее очевидный вариант использования Monad — это торговые протоколы и, в частности, децентрализованные биржи. Кроме этого блокчейну можно найти применение в GameFi, NFT, оракулах и т. д.
Экосистема Monad. Источник: twitter.com
Elixir. С помощью Elixir пользователи предоставляют ликвидность для различных хранилищ, которые выступают маркетмейкерами на децентрализованных биржах. По состоянию на март 2024 года проект принимает участие в работе Bluefin, RabbitX и Vertex.
The Pipeline. Собственное медиа Monad, которое занимается освещением обновлений и деятельности проекта. The Pipeline регулярно берет интервью у команды Monad и проектов внутри его экосистемы, публикует образовательные статьи, а также взаимодействует с сообществом.
DeFi-протоколы, которые будут поддерживать Monad:
- Wormhole. Мультичейн-протокол, который позволяет обменивать активы из одного блокчейна и переводить в другой, включая Ethereum, Solana, Avalanche и другие;
- LayerZero. Протокол кроссчейн-переводов, токен которого является самым ожидаемым активом 2023-2024 года;
- iZUMi Finance. Мультичейновый DeFi-протокол, ежедневный объем торгов которого составляет $13,6 млн.
Экосистема Monad продолжает расширяться. А такие события, как эйрдроп Wormhole, в котором участники сообщества Monad получили по 8 000 W (примерно $12 000) за роль в Discord, позитивно влияют на узнаваемость проекта.
Заключение
Monad интересен не только с точки зрения технологии, но и ретроактивности. Проект подобного масштаба, вполне вероятно, может повторить успех Sei и Sui (относительно роста цены токена) и Wormhole (относительно эйрдропа).
Рост токена Sei и Sui. Источник: tradingview.com
По состоянию на март 2024 года Monad еще не был запущен публично. Поэтому единственное взаимодействие с проектом — это социальная активность. Обычный пользователь может:
- подписаться на сервер Discord. Изучите документацию и особенности работы Monad, чтобы помогать новичкам разобраться в проекте. За подобные действия команда может наградить вас соответствующей ролью;
- следить за Monad в X (ранее Twitter). Даже если активность в X не станет критерием эйрдропа, подписавшись на Monad, вы будете в курсе важных событий проекта;
- создавать контент для сообщества Monad. Вероятно, самый результативный способ заявить о себе и получить роль в Discord. Вы можете делать мемы, рисовать анимации, писать статьи и т. д.
Ожидается, что публичная тестовая сеть Monad будет запущена в мае-июне 2024 года, а мейннет — в декабре. Мы обязательно уведомим вас об этом и расскажем о новых активностях для потенциального эйрдропа.
Подписывайтесь на наш Telegram, чтобы быть в курсе!