Как работает Monad: глубокое погружение в его инновационную архитектуру
2025-02-19
Монда монадаблокчейн-платформа, спроектированная для обеспечения высокой производительности без ущерба для децентрализации. Она разработана для поддержки беспрепятственного повторного внедренияEVM-эквивалентный байткод и продвинутые функции, такие как Cancun fork, что делает его полностью совместимым с опкодом и стандартами распределения газа Ethereum. С временем блока в 500 мс и достижением финальности в течение 1 секунды, дизайн Monad сосредоточен на эффективности, масштабируемости и глобально распределенной сети валидаторов.
Читать далее: Что такое Monad Airdrop?
Ключевые выводы:
- Совместимость с EVM и быстрая финальность:Monad поддерживает повторное развертывание байт-кода EVM и опкоды стандарта Ethereum, при этом создавая блоки каждые 500 мс и завершая в течение 1 секунды.
- Инновационный консенсус и исполнение:Его механизм консенсуса MonadBFT, асинхронное выполнение и оптимистичная параллельная модель выполнения обеспечивают высокую пропускную способность при умеренных аппаратных средствах.
- Эффективная передача данных и управление состоянием:Протокол RaptorCast и MonadDb оптимизируют пропускную способность сети и доступ к состоянию, обеспечивая быструю восстановление данных и снижение накладных расходов на хранение.
Параметры сети и резюме
Монадаработает на архитектуре, которая во многом отражает Ethereum — например, сопоставление opcode-to-gas и соответствие RPC — но при этом вносит несколько улучшений. Сеть поддерживает повторное развертывание байткода EVM без повторной компиляции, включает улучшения форка Канкун (TSTORE, TLOAD, MCOPY) и поддерживает высокий лимит газа на блок на своем тестнете. С созданием блоков каждые 500 мс и подтверждением финальности на блоке N+2, система построена для обработки больших объемов транзакций по мере масштабирования с начального набора из примерно 55 глобально распределенных валидаторов до более крупного пула.
Бережливость и децентрализация
В основе Monad лежит цель достичь высокой производительности с помощью эффективных алгоритмов, которые остаются доступными и децентрализованными. Платформа оптимизирована для работы на узлах с относительно скромными аппаратными требованиями — например, машина с 32 ГБ оперативной памяти, двумя SSD на 2 ТБ, пропускной способностью 100 Мбит/с и 16-ядерным процессором с тактовой частотой 4,5 ГГц может быть собрана примерно за $1500. Такой подход гарантирует, что высокопроизводительные вычисления не ограничиваются лишь избранными, а распределены по разнообразному глобальному набору валидаторов.
Структура узла
Каждый узел Monad состоит из трех основных компонентов:
- monad-bft:Обрабатывает процесс достижения консенсуса.
- monad-исполнение:Управляет выполнением транзакций и переходами состояний.
- monad-rpc:Обрабатывает операции чтения/записи пользователя.
Валидаторы, численностью от 100 до 200, активно участвуют в консенсусе, в то время как полные узлы без права голоса отслеживают сетевой трафик и выполняют каждую транзакцию для поддержания полной репликации состояния.
Механизм консенсуса: MonadBFT
MonadBFT является основой процесса консенсуса платформы. Обладая линейной сложностью коммуникации, он эффективно масштабируется, даже когда число валидаторов увеличивается. В идеальном сценарии «счастливого пути» лидер транслирует предложение блока всем узлам, которые затем отправляют аттестации следующему лидеру. Эти аттестации агрегируются в Quorum Certificate (QC) с использованием подписей BLS, что обеспечивает упрощенный подход «расширения и сужения», который гарантирует быстрое и надежное завершение блоков.
RaptorCast: Эффективное Распространение Блоков
Чтобы управлять значительным объемом данных, создаваемых высокой пропускной способностью транзакций, Monad использует протокол RaptorCast. Эта инновационная система использует кодирование с исправлением ошибок для разбивки больших блоков на более мелкие части. Каждая часть передается через двухуровневое дерево вещания: сначала принимается одним валидатором, а затем распространяется другим, что гарантирует возможность всех валидаторов эффективно восстанавливать исходный блок, даже при ограниченной пропускной способности передачи данных на стороне лидера.
Жизненный цикл транзакции
Транзакции на Monad следуют четко определенному процессу:
- Отправка:Пользователи отправляют транзакции на RPC-узел.
- Распространение:Узел RPC пересылает ожидающую транзакцию следующим трем запланированным лидерам.
- Включение:Лидеры добавляют транзакции в свои мемпулы и включают их в предложения блоков, основываясь на таких критериях, как плата за единицу газа.
- Завершение:Как только блок предложен и проверен сетью, достигается консенсус, и блок окончательно утверждается с использованием процесса MonadBFT.
Эта целевая стратегия пересылки минимизирует перегрузку сети, обеспечивая своевременную обработку транзакций.
Выбор лидера и эпохи
Во время каждой эпохи, которая длится примерно день, лидеры выбираются с помощью детерминированной псевдослучайной функции на основе весов ставок валидаторов. Изначально роли лидеров регулируются на тестовой сети, но механизмы ставок скоро позволят полностью децентрализованный процесс выбора лидеров. Веса ставок валидаторов фиксируются за одну эпоху до начала, что обеспечивает справедливость и предсказуемость в расписании лидеров.
Асинхронное выполнение
Monad отделяет консенсус от выполнения, используя асинхронное выполнение. В этой модели консенсус достигается до выполнения транзакций, что позволяет системе "конвейерить" эти процессы. Валидаторы проверяют правильность транзакций (подпись, nonce, стоимость данных), но откладывают полное выполнение до завершения блока. Это разделение освобождает значительное время выполнения, повышая общую пропускную способность.
Отложенный Merkle Root для проверки состояния
Из-за асинхронного выполнения предложения блоков в Monad сразу не включают корень Меркля состояния три. Вместо этого включается задержанный корень Меркля из нескольких предыдущих блоков (в настоящее время установлена задержка в три блока). Этот механизм обеспечивает безопасность, гарантируя, что если возникнут несоответствия из-за ошибок вычислений, узлы смогут их обнаружить, сравнив с их локальным состоянием после заранее установленной задержки.
Спекулятивное выполнение
Чтобы дальнейшим образом оптимизировать производительность, узлы занимаются спекулятивным исполнением. Хотя официально выполняются только блоки, завершённые два блока назад, узлы предварительно выполняют ожидающие транзакции из более новых блоков. Этот спекулятивный подход позволяет узлам поддерживать почти актуальное состояние, что, в свою очередь, способствует более быстрой симуляции транзакций и более плавному пользовательскому опыту.
Оптимистичное Параллельное Выполнение
Оптимистичное параллельное выполнение является ключевой инновацией в обработке транзакций Monad. Транзакции выполняются одновременно для создания «предварительных результатов», которые фиксируют чтение и запись слотов памяти. Эти результаты затем последовательно фиксируются, обеспечивая согласованность так, как если бы транзакции обрабатывались одна за другой. Этот метод позволяет выполнять большинство транзакций не более двух раз, даже при возникновении конфликтов, максимизируя тем самым эффективность без ущерба для точности.
MonadDb: Оптимизированное управление состоянием
MonadDb — это собственная база данных Monad, разработанная для хранения состояния в виде родного дерева Меркля. Избавившись от дополнительного уровня косвенных обращений, присутствующего в традиционных базах данных, MonadDb минимизирует операции ввода-вывода и ускоряет вычисление корня Меркля. Поддержка асинхронного ввода-вывода и параллельного поиска состояния идеально сочетается с оптимистичным параллельным выполнением, значительно снижая узкое место, обычно связанное с доступом к состоянию.
Начальная загрузка узла: Statesync и Blocksync
Учитывая высокую пропускную способность и длительную историю транзакций, новые узлы обычно инициализируют свое состояние, синхронизируясь с партнерами, а не воспроизводя каждый блок с создания. Monad использует statesync, при котором узел запрашивает последний снимок состояния у своих партнеров, и blocksync, который заполняет пропуски, получая недостающие блоки. Этот процесс обеспечивает возможность быстрого подключения новых узлов к сети с актуальным состоянием.
Часто задаваемые вопросы (FAQs)
Q1: Что делает механизм консенсуса Monad уникальным?
A1: MonadBFT выделяется своей линейной сложностью коммуникации и конвейерным подходом «расширение, сужение», который позволяет обеспечивать быстрое, масштабируемое согласие даже при большом количестве валидаторов.
Q2: Как Monad обеспечивает эффективное распространение блоков?
A2: Посредством протокола RaptorCast Monad использует кодирование с избыточностью для разделения блоков на более мелкие фрагменты, что снижает нагрузку на лидера при загрузке и обеспечивает надежную передачу по сети.
Q3: Какую роль играет MonadDb в системе?
A3: MonadDb оптимизирует хранение состояния за счет поддержки собственного дерева Меркла, что ускоряет поиск состояния, уменьшает количество операций ввода-вывода и дополняет оптимистичную модель параллельного выполнения платформы.
Disclaimer: De inhoud van dit artikel vormt geen financieel of investeringsadvies.
