Что такое параллелизация?
Параллелизация или параллелизм предполагает параллельную обработку данных на многих вычислительных узлах с последующим объединением полученных результатов.
Эта концепция, в частности, применяется для повышения производительности блокчейн-систем. В контексте последних она означает параллельное исполнение транзакций — вместо последовательной обработки проходит множество операций одновременно.
Разработчики Sei предложили упрощенную аналогию:
Consider this simple scenario to understand the power of parallelization:
— Sei 🔴💨 (@SeiNetwork) January 30, 2024
It’s a hot day, you want a Pepsi but you need to queue with these Fanta guys 🙁
Normally, you’d have to wait in the same long line to quench your thirst. But, if there were multiple machines serving one… pic.twitter.com/IHj0FzXD9J
«Сегодня жаркий день. Ты хочешь Pepsi, но тебе приходится стоять в очереди с этими любителями Fanta. Чтобы утолить жажду, обычно и приходится стоять в столь длинной очереди. Но если бы было несколько автоматов, подающих каждый из напитков, процесс был бы параллельным!».
По их словам, в настоящее время все EVM-сети работают «согласно первому сценарию».
«При последовательном исполнении каждая транзакция должна быть подтверждена всей сетью, что приводит к значительному потреблению энергии и большим усилиям майнеров или валидаторов», — говорится в блоге Suipiens.
Таким образом, параллелизация избавляется от «очереди» и делает возможным одновременное распределение транзакций по узлам сети и их валидацию.
В завершение этого процесса сеть приходит к «однородному» состоянию, достигая консенсуса между различными нодами.
«Параллельный» подход оптимизирует использование ресурсов сети. При этом обработка транзакций ускоряется за счет распределения процессов среди узлов и их подгрупп.
«Доказано, что это значительно улучшает общую пропускную способность системы. Реализующие распараллеливание проекты утверждают, что достигают 100-кратного прироста TPS в сравнении с сетями, которые обрабатывают транзакции последовательно», — отметил аналитик CoinGecko Джоэл Агбо.
Какие есть подходы к параллелизации?
Есть две основные модели:
- оптимистическая параллелизация;
- распараллеливание доступа к состоянию.
Рассмотрим вкратце каждый из подходов.
Оптимистическая параллелизация
При таком подходе сеть пропускает этап сортировки и приступает к одновременной обработке данных. Этот метод предполагает, что транзакции не связаны между собой.
В случае некорректного исполнения сеть «возвращается» для внесения корректировок. Если вокруг транзакций существуют дополнительные зависимости, они будут исполнены снова с правильными данными.
Параллелизация доступа к состоянию
При реализации этой модели первым шагом является сортировка транзакций. Последние группируются в соответствии с влиянием, которое они оказывают на состояние сети, например, на связанные и несвязанные.
Связанные транзакции взаимодействуют с одним и тем же контрактом или одной и той же учетной записью в сети.
Несвязанные могут включать однонаправленные транзакции, которые взаимодействуют с разными контрактами.
Сеть обрабатывает несвязанные транзакции одновременно, экономя время и затраты пользователей. В свою очередь, связанные транзакции повторно координируются перед их обработкой.
При сортировке может учитываться еще один критерий — плата за газ. Транзакции с более высокой комиссией могут исполняться параллельно, что положительно сказывается на пользовательском опыте с точки зрения скорости обработки.
Как работает параллельное исполнение транзакций?
Как уже говорилось, параллельное исполнение предполагает одновременную обработку нескольких транзакций. Этот метод кардинально отличается от традиционного последовательного подхода, обеспечивая повышенную эффективность и масштабируемость.
Рассмотрим упрощенно алгоритм работы параллелизации:
- определение независимых транзакций. Система выявляет несвязанные операции — те, которые не взаимодействуют с одними и теми же данными или состоянием. Например, затрагивающие различные смарт-контракты Solana-транзакции могут обрабатываться параллельно;
- одновременное исполнение. Как только независимые транзакции определены, они исполняются одновременно узлами сети. Такая параллельная обработка значительно сокращает время подтверждения (это, в частности, заметно на примере работы технологии Sealevel от Solana);
- управление зависимостями и конфликтами. Система должна справляться с различными сложностями при обработке потока транзакций, обеспечивая целостность данных и надежность блокчейна.
Какие преимущества у «параллельного» подхода к масштабированию?
Перечислим основные плюсы параллелизации транзакций.
Повышение производительности. Разделение задач и их распределение по многим узлам не только позволяет системе обрабатывать транзакции быстрее, но и открывает возможности горизонтального масштабирования.
Сеть может увеличивать доступные ресурсы за счет привлечения большего числа нод в периоды повышенной ончейн-активности и возвращаться к обычному состоянию в периоды относительного спокойствия на рынке. Такая гибкость в контексте масштабирования держит сеть «в форме» при резких изменениях транзакционного спроса.
Уменьшение расходов на газ. Параллелизация экономит не только время, но и средства, необходимые для оплаты операций в сети.
Транзакции распределяются по различным подгруппам нод. Это значит, что на каждую из операций приходится меньшая комиссия в сравнении с «последовательным» вариантом.
Более высокая скорость обработки также означает меньшее число транзакций в очереди и незначительную конкуренцию при их подтверждении. Соответственно, для каждой из операций требуется невысокая комиссия.
Скорость транзакций. Распределяя задачи по нескольким узлам, сеть экономит много времени при исполнении транзакций. Блокчейны с поддержкой параллелизации достигают многократного прироста TPS в сравнении с системами, использующими модель последовательной обработки.
Какие подводные камни у параллелизации?
Хотя параллельная обработка транзакций и повышает производительность сети, эффективно реализовать этот механизм непросто. Основные сложности связаны с необходимостью сортировки транзакций и постоянного урегулирования множества состояний.
В случае с оптимистической параллелизацией сеть может столкнуться с проблемами при обработке связанных транзакций. Например, есть вероятность множества переводов на один и тот же аккаунт с различных адресов. Сеть должна урегулировать все эти транзакции, гарантируя корректность балансов на каждом из соответствующих кошельков.
«Выявление этих зависимостей — колоссальная задача, учитывая нынешнюю взаимосвязанность приложений», — отметили эксперты Suipiens.
Чтобы решить эту проблему, работающие по модели параллельного исполнения сети могут задействовать планировщики. Последние гарантируют исполнение зависимых транзакций лишь после завершения остальных операций.
Модели на основе распараллеливания доступа к состоянию решают эту задачу «со старта». Но узлам приходится иметь дело с быстрым потоком информации и необходимостью регулярной синхронизации с остальной частью сети.
«Сложность управления и координации нескольких транзакций одновременно может истощить сетевые ресурсы. Особенно это касается узлов, перед которыми стоит задача быстрого обновления и проверки состояния транзакций. Эта сложность увеличивает риск ошибок и потенциальных уязвимостей безопасности», — отметил руководитель отдела исследований Datawallet Энтони Бьянко.
Команда экспертов во главе с журналистом Колином Ву пришла к выводу, что причиной периодических сбоев Solana является неспособность сети справиться с растущим объемом транзакций.
Какие есть EVM-совместимые блокчейн-проекты на основе параллелизации?
Ethereum Virtual Machine — это виртуальная машина, которая исполняет код в сети второй по капитализации криптовалюты. Она является частью протокола и выполняет смарт-контракты, написанные на Solidity или других языках программирования, совместимых с Ethereum. EVM также обеспечивает проведение операций с токенами и другие функции, связанные с децентрализованными приложениями (dapps).
С помощью самой популярной виртуальной машины разработчики могут легко портировать dapps без необходимости написания кода с нуля. Соответственно, поддерживающие параллелизацию EVM дают возможность развертывать приложения в высокопроизводительных блокчейнах, не внося какие-либо существенные изменения.
Рассмотрим вкратце некоторые подобные проекты.
Sei Network
Sei — блокчейн, разработанный специально для сектора децентрализованных финансов, в частности, обменных и торговых платформ. В его основе лежат Tendermint Core и Cosmos SDK.
Система поддерживает параллелизацию — ордера с независимых рынков могут исполняться одновременно.
В ноябре команда Sei Network анонсировала вторую версию сети, которая станет «первым параллелизированым блокчейном» с поддержкой EVM. Обновление предполагает модернизацию системы, работающей по «оптимистической» модели. Открывается возможность переноса смарт-контрактов Ethereum на Sei и использования их внутри сети вместе с протоколами на Cosmwasm.
Для реализации EVM-совместимости команда проекта применяет технологию Geth — наиболее часто используемого клиента второй по капитализации криптовалюты для обработки транзакций.
С точки зрения производительности Sei V2 обеспечит пропускную способность в 28 300 транзакций в секунду, а время создания блока займет 390 мс.
В Sei V2 появится дата-структура SeiDB, которая призвана улучшить механизмы хранения данных на платформе. Согласно заявлению разработчиков, технология предотвратит «раздувание состояния» и упростит синхронизацию с нодами.
Monad
Это EVM-совместимый блокчейн первого уровня с поддержкой 10 000 TPS.
Monad работает по модели «оптимистической» параллелизации. Для предотвращения некорректного исполнения операций система использует статический анализ кода.
Платформа работает на базе алгоритма консенсуса MonadBFT.
По словам разработчиков, Monad устраняет разрыв между децентрализованными и традиционными платформами благодаря «суперскалярному, конвейерному исполнению и оптимизированной архитектуре».
Neon EVM
Это первая «параллельная» EVM на блокчейне Solana, сочетающая в себе сильные стороны обеих технологий — высокую совместимость и значительную пропускную способность.
По информации на сайте проекта, комиссия за отправку токенов или их своп составляет всего $0,003. Блокчейн способен обрабатывать более 2000 транзакций в секунду.
Какие еще проекты поддерживают параллелизацию?
Помимо EVM-совместимых проектов, есть и другие платформы с поддержкой параллелизации.
Solana
Проект является одним из первопроходцев концепции параллельного исполнения транзакций. Команда Solana разрабатывает масштабируемый блокчейн-протокол для создания децентрализованных приложений и смарт-контрактов.
Сооснователь проекта Анатолий Яковенко назвал параллелизацию одной из восьми ключевых особенностей, способствующих высокой пропускной способности блокчейна.
В основе Solana виртуальная машина Sealevel. Она параллельно обрабатывает транзакции, которые горизонтально масштабируются на графических процессорах и твердотельных накопителях.
Транзакции заранее сообщают, какое состояние они будут читать и писать в процессе выполнения. Sealevel находит не перекрывающие друг друга транзакции в блоке и планирует их выполнение.
«Параллельная среда исполнения может обрабатывать десятки тысяч смарт-контрактов, используя все доступные валидатору ядра. Это существенно экономит время, поскольку каждая транзакция проверяется максимально быстро», — отметил Джоэл Агбо.
Sui
Sui — это высокопроизводительный блокчейн первого уровня, который разрабатывает компания Mysten Labs для обслуживания децентрализованных приложений, чувствительных к задержкам.
Команда Sui использует наработки Diem — несостоявшейся блокчейн-платформы от корпорации Meta. При написании кода использовалась модифицированная версия языка Move.
В процедуре консенсуса задействованы уникальные протоколы Narwhal и Bullshark, которые позволяют выполнять вычисления параллельно и привносят значительные возможности масштабирования.
Процедура обработки транзакций зависит от того, касается ли она объекта с одним владельцем (любые виды активов) или «общего объекта» (к примеру, публичные смарт-контракты).
К первому типу относятся переводы монет, эмиссия NFT и голосования. Такие транзакции обрабатываются по упрощенной процедуре Fast Pay, основанной на механизме Byzantine Consistent Broadcast.
В этом процессе нет поиска консенсуса между валидаторами, что значительно сокращает время обработки транзакции.
Разработчики утверждают, что система способна справляться с потоком в 10 000–290 000 TPS.
Aptos
Проект позиционируется как гибкая, легкообновляемая под постоянно меняющийся ландшафт рынка Web3 платформа. Как заявлено в white paper, Aptos представляет собой уникальную комбинацию консенсуса, нового дизайна смарт-контрактов, безопасности, производительности и децентрализации.
Разработчики утверждают, что платформа способна обеспечивать 160 000 TPS. Задержка между отправкой и исполнением составляет менее одной секунды. Во многом эти показатели достигаются благодаря особой структуре системы параллельного исполнения транзакций.
В Aptos задействована «оптимистическая» модель, где несвязанные операции обрабатываются параллельно. При этом система способна автоматически обнаруживать связанные транзакции после их исполнения.
Взаимодействие пользователей, приложений и смарт-контрактов в сети обеспечивает виртуальная машина Move VM, которая должна составить конкуренцию «монополии» Ethereum Virtual Machine. По словам команды Pontem, которая занимается развитием Move, виртуальная машина Aptos способна стать стандартом для интеграции приложений из Cosmos, Solana, Polkadot и даже Ethereum.
Блокчейн-платформа работает на базе алгоритма консенсуса AptosBFT. Для создания смарт-контрактов используется язык программирования Move.
Автор: Алекс Кондратюк