BTC 68103.6$
ETH 2632.6$
Tether (USDT) 1$
Toncoin (TON) 5.21$
telegram vk Х
telegram vk Х
Russian English
"

Что такое Monad и почему она представляет собой значительный прогресс в технологии блокчейна

Дата публикации:19.07.2024, 13:16
827
827
Поделись с друзьями!

Ожидается, что запуск Monad в общедоступной тестовой сети состоится в конце 2024 года, а развертывание основной сети запланировано на начало 2025 года.

Monad — это параллельный проект виртуальной машины Ethereum (EVM), и, как и подобные проекты, такие как Aurora (построенный на протоколе Near) или Sei, он пытается распараллелить выполнение инструкций EVM, чтобы сеть могла обрабатывать несколько транзакций одновременно. Это дает возможность обрабатывать больший объем транзакций, увеличивает пропускную способность и снижает затраты.

Распараллеливание предполагает разбиение выполнения транзакций на более мелкие независимые задачи, которые можно обрабатывать одновременно. Monad представляет четыре оптимизации для улучшения консенсуса, выполнения и хранения данных: MonadBFT, отложенное выполнение, параллельное выполнение и MonadDb.

MonadBFT

MonadBFT — это конвейерный двухфазный византийский отказоустойчивый алгоритм, предназначенный для повышения масштабируемости и эффективности блокчейна. Это производная от алгоритма HotStuff, оптимизированная для работы в частично синхронных условиях.

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

Алгоритм HotStuff — это протокол консенсуса, разработанный для систем блокчейна для достижения византийской отказоустойчивости (BFT), которая представляет собой способность компьютерной системы продолжать работу, даже если некоторые из ее узлов действуют злонамеренно или неисправны.

Эта надежность достигается за счет серии раундов связи между узлами для согласования следующего блока в цепочке. HotStuff требует трех раундов связи для достижения консенсуса, что может стать узким местом для масштабируемости и эффективности. MonadBFT улучшает HotStuff, сокращая количество раундов связи, необходимых для достижения консенсуса, с трех до двух.

Механизм консенсуса работает поэтапно. Лидерный узел предлагает блоки, а валидаторы их проверяют. В каждом раунде лидер отправляет новый блок либо с сертификатом кворума (QC), либо с сертификатом тайм-аута (TC) для предыдущего раунда. Контроль качества является доказательством того, что блок был одобрен большинством валидаторов, что указывает на их согласие с действительностью блока.

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

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

Если валидаторы не получают действительный блок вовремя, они отправляют подписанные сообщения о тайм-ауте, которые могут быть агрегированы в TC. Этот TC затем отправляется непосредственно следующему лидеру. Блок считается завершенным, когда валидаторы видят два последовательных сертифицированных блока.

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

Модель конвейерной обработки MonadBFT.

Отложенное исполнение

Отложенное исполнение отделяет выполнение транзакции от консенсуса. В отличие от традиционных блокчейнов, таких как Ethereum, где узлы должны выполнять транзакции перед достижением консенсуса, консенсус MonadBFT фокусируется исключительно на порядке транзакций.

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

Таким образом, время блока может стать довольно продолжительным, а сложность вычислений, с которыми может справиться сеть, снижается. Механизм консенсуса MonadBFT определяет только порядок транзакций и позволяет выполнять их независимо после достижения консенсуса.

Чтобы гарантировать, что выполнение производится правильно, Monad задерживает согласование корня Меркла состояния с помощью D-блоков. D — общесистемный параметр, который в настоящее время ожидается равным 10.

Такая конструкция снижает риски, связанные с вредоносным узлом, который неправильно выполняет транзакции. Как только сеть достигает консенсуса по блоку N большинством в две трети голосов, она тем самым также соглашается с состоянием, представленным деревом Меркла в блоке ND.

Если какой-либо узел обнаруживает ошибку при выполнении блока ND, он голосует против предложения блока N. Это запускает откат к конечному состоянию блока ND-1 с последующим повторным выполнением транзакций из блока ND. Узел может проверять и корректировать результаты своего выполнения по сравнению с другими узлами в сети, проверяя свой собственный корень Меркла. Легкие узлы могут запрашивать у полных узлов доказательства Меркла значений переменных состояния.

Параллельное исполнение

Популярные блокчейны с параллельным исполнением либо детерминированы, либо оптимистичны.

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

Обзор блокчейнов параллельного исполнения.

Механизм выполнения Monad начинает обработку новых транзакций еще до завершения выполнения предыдущих транзакций, увеличивая общую пропускную способность.

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

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

Sei также использует оптимистическое распараллеливание, предполагая, что транзакции не будут конфликтовать, но использует особый подход к разрешению конфликтов. В процессе распараллеливания Sei отслеживает, какие части состояния изменяет каждая транзакция. Если она обнаруживает, что две транзакции конфликтуют, что означает, что они пытаются изменить одну и ту же часть состояния, система временно останавливает выполнение и последовательно повторно обрабатывает конфликтующие транзакции, аналогично Monad.

Однако использование анализатора статического кода в Monad позволяет более эффективно планировать транзакции, тем самым уменьшая вероятность конфликтов, тогда как Sei просто устраняет конфликты по мере их возникновения во время выполнения.

Оптимистическое выполнение также устраняет необходимость в сложных алгоритмах планирования и анализа зависимостей, которые необходимы для детерминистических методологий. В детерминированном подходе, используемом Sui и Solana,транзакции должны объявить, к каким частям состояния они будут иметь доступ, перед выполнением.

Это предварительное объявление позволяет системе планировать транзакции таким образом, чтобы избежать конфликтов во время выполнения. Основным преимуществом этого метода является предсказуемость: поскольку зависимости известны заранее, система может гарантировать, что транзакции не мешают друг другу, что приводит к согласованным и надежным результатам.

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

Необходимость анализа и планирования в реальном времени также усложняет задачу, поскольку система должна постоянно отслеживать и корректировать порядок выполнения, чтобы предотвратить конфликты.

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

Сравнение параллельных блокчейнов

Блокчейн Метод распараллеливания Метод консенсуса Требования к времени блока  Транзакций в секунду Аппаратные требования
Monad Оптимистичный MonadBFT 1 секунда 10 000+ TPS Multi-core CPUs (e.g., 16 cores), 64 GB RAM, SSDs
Solana Детерминистский Proof-of-history, proof-of-stake 0,4 секунды 65 000 TPS High-end multi-core CPUs (e.g., 32 cores),128 GB RAM, NVMe SSDs with high IOPS
Sei Оптимистичный Оптимистичное распараллеливание (TendermintBFT) 1-2 секунды 20 000+ TPS Moderate multi-core CPUs (e.g.8-16 cores), 32-64 GB RAM, SSDs
Sui Детерминистский Mystiseti (DAG-based) 0,39 секунды 100 000+ TPS multi-core CPUs (e.g.32 cores), 64 GB RAM, SSDs with good IOPS
Aptos Оптимистичный AptosBFT (Block-STM) 1 секунда 160 000+ TPS High-performance CPUs (32 cores), 64 GB RAM, SSDs with good IOPS

MonadDB

MonadDB — это специальная база данных, разработанная специально для оптимизации реализации параллельного выполнения. В традиционных блокчейнах, таких как Ethereum, доступ к вводу/выводу (I/O) становится серьезным узким местом, прежде всего потому, что эти системы полагаются на синхронные операции ввода/вывода.

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

Заключение

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

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

В сочетании со статическим анализом кода этот метод оптимизирует планирование транзакций и снижает вероятность конфликтов. По сравнению с другими параллельными проектами EVM, такими как Sei, и детерминистическими системами, такими как Sui и Solana, подход Monad сочетает в себе эффективность и сложность, обеспечивая надежное решение для больших объемов транзакций.

Внедрение MonadBFT, конвейерного двухфазного византийского отказоустойчивого алгоритма, дополнительно обеспечивает быструю финализацию блоков и безопасность сети.

Monad готовится к запуску своей публичной тестовой сети в конце 2024 года и развертыванию основной сети в начале 2025 года и позиционирует себя как грозного игрока в следующем поколении масштабируемых блокчейн-платформ.

 

Подписывайся на наш Telegram канал. Не трать время на мониторинг новостей. Только срочные и важные новости

https://t.me/block_chain24