Что такое параллельное выполнение транзакций (распараллеливание)?
Распараллеливание предполагает структурирование сети блокчейна для одновременной обработки нескольких транзакций, а не последовательно. Это обеспечивает масштабирование блокчейна, снижение затрат на газ и более высокую скорость обработки транзакций.
Ключевые идеи
Сети блокчейна утверждают, что достигают более высокой пропускной способности за счет параллельного выполнения транзакций (также известного как распараллеливание).
Распараллеливание работает за счет того, что сеть блокчейнов сортирует транзакции и выполняет их одновременно, используя все доступные сетевые ресурсы и маршрутизируя сеть через несколько состояний для достижения общего состояния, согласованного узлами сети для поддержания консенсуса. Это контрастирует с последовательным выполнением транзакций, используемым в старых сетях блокчейнов.
Параллельное выполнение транзакций — это растущая тенденция среди современных сетей блокчейнов с общей целью обеспечения более высокой скорости обработки транзакций и общего повышения эффективности. Некоторые из этих сетей включают Sui, Aptos, Monad и Polygon.
Старые сети блокчейнов обрабатывают транзакции последовательно, где каждая транзакция обрабатывается одна за другой. Однако по мере распространения технологии блокчейна спрос на обычные сети блокчейна растет пропорционально, что приводит к повышению платы за газ и перегруженности блокчейна. Чтобы удовлетворить спрос, сети блокчейнов экспериментируют с решениями масштабирования, такими как распараллеливание, Layer 2 и модульность.
В этой статье мы рассмотрим распараллеливание и то, как оно повышает общую гибкость сети блокчейнов и работает в синергии с другими решениями для создания эффективной и масштабируемой сети блокчейнов.
Параллельное выполнение транзакций и масштабирование блокчейна
Параллелизм — это концепция в области вычислений и компьютерного программирования. Она описывает концепцию разделения задач на части, которые можно обрабатывать одновременно. Эта идея лежит в основе распараллеливания в технологии блокчейна.
Распараллеливание также известно как параллельное выполнение транзакций. Этот подход к обработке транзакций структурирует сеть для одновременной обработки транзакций. То есть вместо последовательной обработки транзакций он обрабатывает несколько транзакций одновременно. Используя аналогию с очередью, распараллеливание позволяет избавиться от очереди и создать сценарий, в котором эти транзакции могут быть распределены по узлам сети и проверены одновременно. Специальный алгоритм маршрутизирует транзакции в сети через различные состояния, отражая эффект одновременно обрабатываемых транзакций. В конце каждого цикла этого алгоритма сеть достигает однородного состояния, достигая консенсуса между различными узлами.
«Рассмотрим простой сценарий, чтобы понять возможности распараллеливания. Сегодня жаркий день, вам хочется Пепси, но для этого придется стоять в очереди с ребятами, которых хотят Фанты. Обычно вам придется стоять в такой же длинной очереди, чтобы утолить жажду. Но если бы было несколько автоматов, подающих по одному напитку каждый, процесс распараллеливался бы! В настоящее время все блокчейны EVM в производстве работают по сценарию первой очереди», — иллюстрирует Sei проблему последовательных блокчейнов.
Параллельное выполнение транзакций оптимизирует использование ресурсов всей сети, тем самым ускоряя скорость обработки за счет одновременной обработки нескольких транзакций в сетевых узлах или подгруппах. Было показано, что это значительно улучшает общую пропускную способность сети. Сети, реализующие распараллеливание, утверждают, что их пропускная способность, например, в сто раз выше, чем у сети, которая обрабатывает транзакции последовательно. Как правило, они имеют в виду, что их сеть может обработать намного большее количество транзакций в секунду (TPS), чем последовательная.
Как работает параллельное выполнение транзакций
Существует две модели параллельного выполнения транзакций:
- Оптимистическое распараллеливание
- Распараллеливание доступа к состоянию
Оптимистическая параллелизация
В оптимистической модели параллельного выполнения сеть пропускает этап сортировки и приступает к одновременной обработке транзакций. Он предполагает, что транзакции в очереди независимы (несвязаны) и возвращается для внесения корректировок в случае неправильного выполнения. В этом случае, если вокруг транзакций существуют дополнительные зависимости, транзакция будет выполнена снова с правильными данными.
Распараллеливание доступа к состоянию
Первым шагом в модели параллельного выполнения с доступом к состоянию является сортировка транзакций. Сеть группирует транзакции в соответствии с влиянием, которое они оказывают на состояние сети. RPC подает в систему консенсуса несколько транзакций. Сеть соответствующим образом сортирует эти транзакции. Например, на связанные и несвязанные транзакции.
Связанные транзакции могут включать транзакции, которые взаимодействуют с одним и тем же смарт-контрактом или одной и той же учетной записью в сети. Несвязанные транзакции могут включать однонаправленные транзакции, которые взаимодействуют с разными контрактами. Сеть продолжает выполнять несвязанные транзакции одновременно, экономя время и затраты, в то время как связанные транзакции повторно координируются перед их обработкой.
Еще одним критерием, который можно использовать при сортировке транзакций, является комиссия за газ, уплачиваемая за каждую транзакцию. Транзакции с более высокой комиссией могут выполняться параллельно, что дает пользователю лучший опыт с точки зрения скорости обработки.
Преимущества распараллеливания
Теперь давайте рассмотрим некоторые преимущества параллельного выполнения транзакций.
Масштабируемость
Сети блокчейна сталкиваются с проблемами масштабирования, и именно здесь возникает необходимость распараллеливания. Разделяя задачи и распределяя их по узлам сети, алгоритм параллельной обработки не только позволяет сети обрабатывать их быстрее, но также позволяет сети масштабироваться горизонтально. Сеть может увеличить доступные ресурсы, подключая к обработке больше узлов в ситуациях с высоким спросом, а также вернуться к нормальному состоянию, когда спрос снижается. Возможность такого увеличения и уменьшения позволяет поддерживать сеть в форме по мере изменения условий спроса.
Снижение затрат на газ
Распараллеливание не только экономит время, но и другие затраты, такие как комиссии, уплачиваемые за транзакцию. Поскольку транзакции распределяются по разным подгруппам узлов, каждая транзакция взимает более низкую комиссию по сравнению с проверкой каждым узлом в сети, как видно из модели последовательной обработки транзакций.
Кроме того, более высокая скорость транзакций означает, что в очереди меньше транзакций и меньше конкуренции за проверку этих транзакций; поэтому за каждую транзакцию взимается более низкая комиссия.
Высокая пропускная способность сети (TPS)
Распределяя задачу по нескольким узлам, сеть экономит много времени при выполнении каждой транзакции. Сети блокчейна, реализующие распараллеливание, утверждают, что достигают в 100 раз большей пропускной способности (TPS), чем сети, использующие модель последовательной обработки. Например такие сети, как Solana, утверждают, что предлагают более 50 000 TPS, хотя зарегистрированная скорость может отличаться в зависимости от основных условий спроса.
Сложность – основная проблема параллельной обработки транзакций
Хотя параллельная обработка транзакций значительно повышает гибкость сети, она более сложна. Сложность связана с необходимостью сортировки транзакций, а также разрешения множества состояний, создаваемых во время каждого запуска.
В случае оптимистичного распараллеливания сеть может столкнуться с проблемами при обработке связанных транзакций. Например, может быть несколько переводов на один и тот же счет с разных адресов. Сеть должна разрешить эти транзакции, чтобы гарантировать точность балансов в каждом из этих кошельков. Чтобы обойти эту проблему, сети, использующие оптимистическую модель параллельной обработки транзакций, могут использовать планировщики, гарантирующие выполнение зависимых транзакций только после завершения предыдущих в связке.
Хотя модель доступа к состоянию решает эту проблему с самого начала, узлам приходится иметь дело с быстрым потоком информации и необходимостью регулярной синхронизации с остальной частью сети.
Теперь мы рассмотрим различные типы сетей параллельной обработки.
Параллелизованные EVM
Виртуальная машина Ethereum (EVM) — это первый экземпляр децентрализованной виртуальной машины, какой мы ее знаем сегодня. Это также самая популярная виртуальная машина, поскольку разработчики могут легко переносить популярные децентрализованные приложения без необходимости создавать их с нуля. Параллелизованные EVM привлекают разработчиков Ethereum, предлагая им возможность развертывать свой код на блокчейнах с более высокой пропускной способностью без необходимости внесения каких-либо изменений.
Вот несколько примеров распараллеленных EVM.
Sei Network
Sei — это сеть блокчейнов, разработанная специально для децентрализованных финансов с использованием ядра Tendermint и Cosmos SDK. Она предлагает параллельное исполнение, при котором ордера с независимых рынков могут обрабатываться одновременно (хотя ордера с одного и того же рынка по-прежнему обрабатываются последовательно). В публикации, сделанной в ноябре 2023 года, Sei поделилась своими планами по обновлению v2. Обновление V2 будет включать в себя модернизацию системы, обеспечивающую совместимость с EVM и оптимистичное распараллеливание. В Sei v2 протоколы EVM и не-EVM будут жить в одном блокчейне.
Monad
Monad — это EVM-совместимая блокчейн-сеть первого уровня. Она может похвастаться скоростью транзакций до 10 000 TPS и утверждает, что решает основные проблемы, мешающие сегодня работе сетей блокчейнов. Один из способов, с помощью которого Monad это делает, — оптимистичное параллельное выполнение. Чтобы избежать возможности некорректного выполнения, Monad использует статический анализатор кода, который прогнозирует необходимые транзакции, которые выполняются в первую очередь.
Polygon
Вдохновленная усилиями разработчиков блокчейна Aptos по распараллеливанию транзакций, Polygon еще в 2022 году поделилась своими планами по внедрению этой концепции в сеть POS Polygon. Однако Polygon назвал сортировку и выполнение связанных транзакций одной из проблем этой концепции. Чтобы преодолеть эту проблему, Polygon реализовал «подход с минимальными метаданными», который включает прикрепление метаданных к обнаруженным зависимым транзакциям после параллельного выполнения, что информирует валидаторов о том, как им следует обрабатывать эти транзакции и как они могут заполнять блоки для максимальной эффективности.
Neon EVM
Neon EVM (NEON) — это первая параллельная EVM, построенная на блокчейне Solana. Она сочетает в себе сильные стороны EVM и высокую пропускную способность блокчейна Solana благодаря технологии параллельного выполнения транзакций Solana. Это работает за счет использования прокси для переноса транзакций Ethereum в Neon EVM, размещенной на Solana, и с помощью этой настройки транзакция анализируется в блокчейне Solana.
Другие сети параллельной обработки транзакций
Помимо проектов, пытающихся интегрировать параллельное выполнение транзакций в виртуальную машину Ethereum, существуют и другие сети параллельной обработки, в том числе:
Solana
Solana Network (SOL) — один из пионеров концепции параллельного выполнения транзакций. По словам соучредителя Solana Анатолия Яковенко, распараллеливание — одна из восьми ключевых функций, которые способствуют высокой пропускной способности блокчейна Solana. Солана использует SeaLevel, параллельную среду выполнения смарт-контрактов, которая может обрабатывать десятки тысяч контрактов, используя столько ядер, сколько доступно валидатору. Это существенно экономит время, поскольку каждая транзакция проверяется максимально быстро.
Распараллеливание Solana обеспечивается структурой смарт-контрактов и функцией учетных записей. Смарт-контракты Solana созданы для объявления состояний, с которыми они намерены взаимодействовать. Каждая программа заранее объявляет учетную запись, с которой она намерена взаимодействовать, что упрощает сортировку этих транзакций в соответствии с их состоянием доступа. Виртуальная машина планирует параллельное выполнение непересекающихся (несвязанных) транзакций.
Sui
Sui Network (SUI) вводит концепцию объектов и обхода консенсуса в дополнение к модели распараллеливания доступа к состоянию, которую он использует. Транзакции смарт-контрактов проводятся с эталонными объектами Sui, которые являются активами в блокчейне Sui. Каждая транзакция относится к простым или к сложным. К простым транзакциям относятся обычные транзакции, такие как передача активов, которые не связаны с общим объектом и выполняются мгновенно, без нарушения системы консенсуса.
Сложные транзакции требуют обширного взаимодействия со смарт-контрактами и включают общий объект. Такие транзакции сортируются по их влиянию на состояния сети, при этом несвязанные транзакции выполняются параллельно. Связанные транзакции выполняются последовательно. Используя этот подход, Sui утверждает, что достигает скорости транзакций от 10 000 TPS до 290 000 TPS в зависимости от спроса и состояния сети.
Aptos
Aptos (APT) утверждает, что выполняет транзакции со скоростью до 160 000TPS. Частично это связано со структурой системы параллельного выполнения транзакций. Aptos использует оптимистическую модель параллельного выполнения, в которой транзакции выполняются параллельно, предполагая, что они не связаны между собой. Хотя это и ускоряет процесс, одним из недостатков этого метода является то, что ошибки могут привести к повторному выполнению транзакции.
Однако Aptos утверждает, что ее система создана для автоматического обнаружения связанных транзакций после их выполнения. Сеть использует метод блочной памяти транзакций программного обеспечения (Block STM) для отслеживания изменений, внесенных каждой реакцией, и места, где эти изменения были сделаны. Для каждой связанной транзакции, которая выполнялась параллельно и давала неточный результат, результаты стираются и повторяются до тех пор, пока не будут получены точные результаты.
Заключение
Современные блокчейн-проекты направлены на повышение скорости обработки транзакций децентрализованными сетями без существенных компромиссов в области безопасности. Решения Layer 2, а теперь и распараллеливание являются основными разработками в этой области. Несмотря на сложность реализации, идея распараллеливания проста. В методе последовательных транзакций большая часть ресурсов сети блокчейна находится в неактивном состоянии, поскольку транзакции обрабатываются одна за другой. Распараллеливание позволяет избавиться от этой системы «очередей» и создать более турбулентный сценарий обработки, что обеспечивает большую скорость.
Уведомление о рисках
Эта статья предназначена только для образовательных целей и рассматривает распараллеливание на технологических основаниях, и ее не следует воспринимать как финансовый совет. Всегда проводите собственное исследование любых проектов и убедитесь, что вы понимаете связанные с ними риски, прежде чем инвестировать какой-либо капитал.