Параллельное выполнение: следующее поколение блокчейнов

Продвинутый5/10/2024, 10:43:24 AM
Исследовательский институт Shoal Research проанализировал текущие связанные проекты в параллельной области блокчейн, включая прогресс Solana (SVM), параллельный EVM (Sei, Monad) и MoveVM (Aptos, Sui, Movement), а также проанализировал стоящие перед этой отраслью вызовы и возможности.

Прелюдия

1.0 Транзакции блокчейна

Блокчейны - это виртуальные машины, программная модель вычислений, которая работает поверх распределенной сети физических компьютеров, к которой может присоединиться любой, но контролировать ее одиночной сущности крайне сложно. Концепция блокчейна была впервые изложена в знаменитой белой книге Биткоина Сатоши Накомото в 2008 году, как основная инфраструктура, обеспечивающая криптографически обеспеченные платежи между равными. Транзакции для блокчейнов - это то же самое, что журналы для социальных медиа и интернет-компаний; они служат записями активности для этой конкретной сети, ключное отличие заключается в том, что транзакции в блокчейне неизменны и часто общедоступны.

Но что такое точно транзакция?

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

Пример транзакции, которую может наблюдать любой пользователь в блокчейн-эксплорере, например, SeiTrace

1.1 Как работают транзакции в блокчейне

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

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

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

1.1.1 Mempool

Пул памяти, или mempool, является общей чертой конструкций блокчейна, реализованных традиционными сетями блокчейна, такими как Bitcoin и Ethereum. Mempool'ы просто являются буферными зонами, или 'залами ожидания', для ожидающих транзакций, которые еще не были добавлены в блок и выполнены.

Для лучшего понимания мы можем изложить жизненный цикл транзакции на блокчейне, использующем мемпул;

  1. Пользователь инициирует и подписывает транзакцию.
  2. Специализированные узлы, участвующие в сети блокчейн, проверяют содержимое транзакции на законность и наличие соответствующих параметров.
  3. После проверки транзакция направляется в общий пул памяти наряду с другими ожидающими транзакциями.
  4. В конечном итоге, в зависимости от платы за газ, уплаченной за транзакцию по сравнению с другими транзакциями в мемпуле, ожидающая транзакция нашего пользователя выбирается вместе с кластером других ожидающих транзакций для формирования следующего блока в блокчейне. На этом этапе наш статус транзакции будет выглядеть как «Успешная».
  5. После того как пройдет определенное время или достигнет порог на основе блоков, сам блок фиксируется, и транзакция становится неизменным журналом, записанным в блокчейн, который может быть скомпрометирован только в случае атаки 51%, что в противном случае является чрезвычайно сложной задачей.

1.1.2. Нет Mempool (Solana)

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

Давайте пройдем по жизненному циклу транзакции на блокчейне без пула памяти:

  1. Пользователь инициирует и подписывает транзакцию для используемого им приложения.
  2. Приложение направляет информацию о транзакции на сервер удаленного вызова процедур (RPC).
  3. Поставщик RPC отправляет транзакцию текущему назначенному производителю блоков и следующим трём производителям; это предосторожно в случае, если текущий лидер не может выполнить транзакцию вовремя. Solana использует расписание лидеров слотов, которое помогает RPC маршрутизировать транзакции проще.
  4. Производитель блоков затем отправляет подписанную транзакцию узлам консенсуса для верификации.
  5. Узлы консенсуса голосуют, чтобы проверить содержимое транзакции, и после завершения статус транзакции направляется обратно к RPC > приложению > пользователю как «успешная» или «не удалось».
  6. Подобно блокчейнам на основе мемпула, сам блок финализируется после того, как прошло определенное время или достигнут порог на основе блоков.

1.2 Последовательное выполнение

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

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

Параллельное выполнение

2.0 Что такое Параллельное выполнение?

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

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

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

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

Для более простого аналога. рассмотрите эффективность продуктового магазина с несколькими кассовыми рядами для покупателей по сравнению с одним для всех.

Почему параллельное выполнение важно?

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

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

Как работает параллельное выполнение?

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

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

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

Состояние параллельного выполнения сегодня

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

3.1 Виртуальная машина Solana (SVM)

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

Один из ключевых компонентов, обеспечивающих высокую скорость и пропускную способность Solana, - Sealevel, среда параллельного выполнения смарт-контрактов сети. В отличие от среды на основе EVM и WASM, Sealevel использует многопоточную архитектуру, что позволяет обрабатывать несколько транзакций одновременно в пределах мощности ядра валидатора.

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

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

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

Благодаря своей параллельной архитектуре Solana может обрабатывать большое количество транзакций и все равно выполнять их быстро, обеспечивая транзакции почти мгновенную окончательность. Сегодня Solana обрабатывает от 2 000 до 10 000 транзакций в секунду (TPS) в среднем. Более того, сферы применения SVM медленно, но верно расширяются, поскольку команды, такие как Eclipse, запускают инфраструктуру Layer 2, которая стремится использовать SVM в качестве среды выполнения.

3.2 Параллельная EVM

Параллельный EVM описывает новую среду исполнения для блокчейнов, которая направлена на то, чтобы принести «лучшее из обоих миров» из дизайнов Solana и Ethereum, со скоростью и производительностью Solana, а также безопасностью и ликвидностью Ethereum. Обрабатывая транзакции параллельно, а не последовательно, как в традиционной схеме EVM, параллельные EVM позволяют разработчикам создавать приложения в высокопроизводительной сети, используя при этом подключения к ликвидности EVM и инструментам разработчика.

3.2.1 Сеть Sei

Сеть Sei - это совместимый с EVM, открытый исходный блокчейн уровня 1, в котором размещается разнообразие децентрализованных приложений, построенных вокруг высокой производительности. Sei была создана с учетом обеспечения быстрой скорости по низкой стоимости для пользователей и разработчиков, и параллельное выполнение является ключевым компонентом обеспечения этой производительности и UX. В настоящее время Sei обеспечивает время подтверждения блока 390 мс и обработала более 1,9 млрд транзакций на своей Тихоокеанской основной сети.

Изначально Sei использовал детерминированную параллельную модель выполнения, в рамках которой умные контракты заранее объявляют свой необходимый доступ к состоянию для того, чтобы система могла выполнять не конфликтующие транзакции одновременно. С началом их обновления V2, Sei переходит к оптимистичной параллельной модели, что означает, что все транзакции будут обрабатываться параллельно после подачи их в сеть (этап выполнения), а затем будут проверены на наличие конфликтующей информации с предыдущими транзакциями (этап валидации). В случае двух или более конфликтующих транзакций, т.е. транзакций, пытающихся получить доступ к одному и тому же состоянию сети, Sei определяет эту точку конфликта, а затем повторно выполняет транзакции либо параллельно, либо последовательно в зависимости от характера конфликта.

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

Наконец, Sei также недавно объявила о запуске своего Parallel Stack, открытой среды для обеспечения масштабирования уровня 2, т.е. роллапов, с возможностью использовать и получать преимущества параллельного выполнения.

3.2.2 Монада

Monad - это предстоящий параллельный блокчейн уровня 1 с полной совместимостью байткода и RPC для приложений и инфраструктуры Ethereum. Через ряд инновационных технических реализаций Monad нацелен на обеспечение более интерактивных впечатлений, чем существующие блокчейны, сохраняя при этом более низкие транзакционные издержки за счет оптимизации производительности и переносимости, с временем блока 1 секунда и окончательностью до 10 000 TPS.

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

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

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

Для простой аналогии рассмотрим приготовление многоаспектного блюда (спагетти с фрикадельками). Процесс включает в себя 1) приготовление соуса, 2) приготовление фрикаделек и 3) приготовление пасты. Эффективный повар начнет с кипячения воды для пасты, затем приготовит ингредиенты для соуса, затем бросит пасту в уже кипящую воду, затем приготовит соус и, наконец, фрикадельки, в отличие от выполнения каждого шага по очереди, завершая одну задачу полностью перед переходом к следующей.

3.3 Переместить

Move - это язык программирования, изначально разработанный командой Facebook в 2019 году для своего теперь уже несуществующего проекта Diem. Move был разработан для обработки умных контрактов и транзакционных данных безопасным образом, устраняя векторы атак, характерные для других языков, такие как атаки рекурсии.

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

3.3.1 Aptos

Aptos - это блокчейн на основе Move, разработанный участниками бывшего проекта Diem, который реализует параллельное выполнение для создания высокопроизводительной среды для разработчиков приложений. Aptos использует Block-STM, измененную реализацию механизма контроля конкурентности Software Transactional Memory (STM).

Block-STM - это многопоточный параллельный исполнительный механизм, который позволяет оптимистичное параллельное выполнение. Транзакции предварительно упорядочены и стратегически упорядочены внутри блоков, что является ключом к эффективному разрешению конфликтов и повторному выполнению этих транзакций. Исследования, проведенные Aptos, показали, что теоретически Block-STM's параллелизация может поддерживать до 160 тыс. TPS.

3.3.2 Sui

Похоже на Aptos, Sui - это блокчейн уровня 1, разработанный бывшими членами проекта Diem, который использует язык Move. Однако Sui использует специальную реализацию Move, которая изменяет модель хранения и разрешения на активы изначального дизайна Diem. В частности, это позволяет Sui использовать модель хранения состояния для представления независимых транзакций в виде объектов. У каждого объекта есть уникальный идентификатор в среде выполнения Sui, и благодаря этому система легко идентифицирует не конфликтующие транзакции и обрабатывает их параллельно.

Подобно Solana, Sui реализует детерминированное параллельное выполнение, которое требует, чтобы транзакции заранее указывали, к каким счетам им необходим доступ.

3.3.3 Лаборатории движения

Что такое движение?

Movement создает набор инструментов разработчика и сервисов инфраструктуры блокчейна для обеспечения возможности легкого доступа разработчиков к преимуществам построения на Move. Действуя как поставщик услуг выполнения, подобный AWS, для разработчиков Move, Movement реализует параллелизацию в качестве основной концепции проектирования для обеспечения более высокой пропускной способности и общей эффективности сети. MoveVM является модульной средой выполнения, которая позволяет блокчейн-сетям расширять и настраивать свои возможности обработки транзакций по мере необходимости для поддержки увеличивающегося объема транзакций, укрепляя их способности обрабатывать и выполнять транзакции параллельно.

Архитектура MoveVM

Движение также запустит M2, ZK-rollup, который будет совместим с клиентами EVM и Move. M2 унаследует параллельный двигатель Block-STM и, как результат, ожидается достижение десятков тысяч TPS.

Заключительные мысли

4.1 Проблемы параллельных систем сегодня

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

  • Какие компромиссы сеть делает, чтобы обеспечить лучшую производительность через параллельное выполнение?
    • Меньшее количество валидаторов, обеспечивающих безопасность сети, позволяет ускорить процессы верификации и исполнения, но не приводит ли это к угрозе безопасности блокчейна в виде более легкой возможности сговора валидаторов против сети?
    • Есть ли значительное количество совмещенных валидаторов? Это общая стратегия для минимизации задержки как в криптографических, так и в не-криптографических системах, но что произойдет с сетью в случае компрометации конкретного центра обработки данных?
  • Для оптимистичных параллельных систем создает ли процесс повторного выполнения недопустимых транзакций узкое место при масштабировании сети? Как оценивается и тестируется эффективность этого процесса?

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

4.2 Перспективы / Возможности в будущем

История компьютеров показала нам, что параллельные системы обычно оказываются более эффективными и масштабируемыми со временем, чем последовательные системы. Рост параллельных блокчейнов после Solana подчеркивает, что эта концепция также применима к криптоинфраструктуре. Даже Виталик намекнул на параллелизациякак одно из потенциальных ключевых решений для улучшения масштабируемости EVM rollups недавно. В общем, рост принятия крипто/блокчейна требует систем, которые более оптимальны, чем то, что доступно сегодня, включая параллельные блокчейны. Недавние проблемы сети Solana подчеркнули, что есть много места для улучшения развития параллельных блокчейнов. Поскольку все больше команд стремятся выйти за пределы ончейн-фронтира и привлечь следующую массовую когорту пользователей и принятие к блокчейн-ориентированным приложениям и экосистемам, параллельные модели выполнения предоставляют интуитивную основу для создания систем, способных эффективно обрабатывать масштабы сетевой активности на уровне, соответствующем тому, что делают компании Web2 с легкостью.

Список литературы

Disclaimer:

  1. Эта статья перепечатана с [скоплениеПеренаправьте оригинальный заголовок «Параллельное выполнение: следующее поколение блокчейнов», все авторские права принадлежат оригинальному авторуПАУЛ ТИМОФЕЕВ, МАЙК ДЖИН, И ГЕЙБ ТРАМБЛ]. Если есть возражения к этому переизданию, пожалуйста, свяжитесь с Gate Учитькоманда, и они оперативно справятся с этим.

  2. Отказ от ответственности: мнения и взгляды, выраженные в этой статье, являются исключительно мнениями автора и не являются инвестиционным советом.

  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.

Параллельное выполнение: следующее поколение блокчейнов

Продвинутый5/10/2024, 10:43:24 AM
Исследовательский институт Shoal Research проанализировал текущие связанные проекты в параллельной области блокчейн, включая прогресс Solana (SVM), параллельный EVM (Sei, Monad) и MoveVM (Aptos, Sui, Movement), а также проанализировал стоящие перед этой отраслью вызовы и возможности.

Прелюдия

1.0 Транзакции блокчейна

Блокчейны - это виртуальные машины, программная модель вычислений, которая работает поверх распределенной сети физических компьютеров, к которой может присоединиться любой, но контролировать ее одиночной сущности крайне сложно. Концепция блокчейна была впервые изложена в знаменитой белой книге Биткоина Сатоши Накомото в 2008 году, как основная инфраструктура, обеспечивающая криптографически обеспеченные платежи между равными. Транзакции для блокчейнов - это то же самое, что журналы для социальных медиа и интернет-компаний; они служат записями активности для этой конкретной сети, ключное отличие заключается в том, что транзакции в блокчейне неизменны и часто общедоступны.

Но что такое точно транзакция?

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

Пример транзакции, которую может наблюдать любой пользователь в блокчейн-эксплорере, например, SeiTrace

1.1 Как работают транзакции в блокчейне

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

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

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

1.1.1 Mempool

Пул памяти, или mempool, является общей чертой конструкций блокчейна, реализованных традиционными сетями блокчейна, такими как Bitcoin и Ethereum. Mempool'ы просто являются буферными зонами, или 'залами ожидания', для ожидающих транзакций, которые еще не были добавлены в блок и выполнены.

Для лучшего понимания мы можем изложить жизненный цикл транзакции на блокчейне, использующем мемпул;

  1. Пользователь инициирует и подписывает транзакцию.
  2. Специализированные узлы, участвующие в сети блокчейн, проверяют содержимое транзакции на законность и наличие соответствующих параметров.
  3. После проверки транзакция направляется в общий пул памяти наряду с другими ожидающими транзакциями.
  4. В конечном итоге, в зависимости от платы за газ, уплаченной за транзакцию по сравнению с другими транзакциями в мемпуле, ожидающая транзакция нашего пользователя выбирается вместе с кластером других ожидающих транзакций для формирования следующего блока в блокчейне. На этом этапе наш статус транзакции будет выглядеть как «Успешная».
  5. После того как пройдет определенное время или достигнет порог на основе блоков, сам блок фиксируется, и транзакция становится неизменным журналом, записанным в блокчейн, который может быть скомпрометирован только в случае атаки 51%, что в противном случае является чрезвычайно сложной задачей.

1.1.2. Нет Mempool (Solana)

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

Давайте пройдем по жизненному циклу транзакции на блокчейне без пула памяти:

  1. Пользователь инициирует и подписывает транзакцию для используемого им приложения.
  2. Приложение направляет информацию о транзакции на сервер удаленного вызова процедур (RPC).
  3. Поставщик RPC отправляет транзакцию текущему назначенному производителю блоков и следующим трём производителям; это предосторожно в случае, если текущий лидер не может выполнить транзакцию вовремя. Solana использует расписание лидеров слотов, которое помогает RPC маршрутизировать транзакции проще.
  4. Производитель блоков затем отправляет подписанную транзакцию узлам консенсуса для верификации.
  5. Узлы консенсуса голосуют, чтобы проверить содержимое транзакции, и после завершения статус транзакции направляется обратно к RPC > приложению > пользователю как «успешная» или «не удалось».
  6. Подобно блокчейнам на основе мемпула, сам блок финализируется после того, как прошло определенное время или достигнут порог на основе блоков.

1.2 Последовательное выполнение

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

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

Параллельное выполнение

2.0 Что такое Параллельное выполнение?

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

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

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

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

Для более простого аналога. рассмотрите эффективность продуктового магазина с несколькими кассовыми рядами для покупателей по сравнению с одним для всех.

Почему параллельное выполнение важно?

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

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

Как работает параллельное выполнение?

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

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

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

Состояние параллельного выполнения сегодня

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

3.1 Виртуальная машина Solana (SVM)

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

Один из ключевых компонентов, обеспечивающих высокую скорость и пропускную способность Solana, - Sealevel, среда параллельного выполнения смарт-контрактов сети. В отличие от среды на основе EVM и WASM, Sealevel использует многопоточную архитектуру, что позволяет обрабатывать несколько транзакций одновременно в пределах мощности ядра валидатора.

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

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

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

Благодаря своей параллельной архитектуре Solana может обрабатывать большое количество транзакций и все равно выполнять их быстро, обеспечивая транзакции почти мгновенную окончательность. Сегодня Solana обрабатывает от 2 000 до 10 000 транзакций в секунду (TPS) в среднем. Более того, сферы применения SVM медленно, но верно расширяются, поскольку команды, такие как Eclipse, запускают инфраструктуру Layer 2, которая стремится использовать SVM в качестве среды выполнения.

3.2 Параллельная EVM

Параллельный EVM описывает новую среду исполнения для блокчейнов, которая направлена на то, чтобы принести «лучшее из обоих миров» из дизайнов Solana и Ethereum, со скоростью и производительностью Solana, а также безопасностью и ликвидностью Ethereum. Обрабатывая транзакции параллельно, а не последовательно, как в традиционной схеме EVM, параллельные EVM позволяют разработчикам создавать приложения в высокопроизводительной сети, используя при этом подключения к ликвидности EVM и инструментам разработчика.

3.2.1 Сеть Sei

Сеть Sei - это совместимый с EVM, открытый исходный блокчейн уровня 1, в котором размещается разнообразие децентрализованных приложений, построенных вокруг высокой производительности. Sei была создана с учетом обеспечения быстрой скорости по низкой стоимости для пользователей и разработчиков, и параллельное выполнение является ключевым компонентом обеспечения этой производительности и UX. В настоящее время Sei обеспечивает время подтверждения блока 390 мс и обработала более 1,9 млрд транзакций на своей Тихоокеанской основной сети.

Изначально Sei использовал детерминированную параллельную модель выполнения, в рамках которой умные контракты заранее объявляют свой необходимый доступ к состоянию для того, чтобы система могла выполнять не конфликтующие транзакции одновременно. С началом их обновления V2, Sei переходит к оптимистичной параллельной модели, что означает, что все транзакции будут обрабатываться параллельно после подачи их в сеть (этап выполнения), а затем будут проверены на наличие конфликтующей информации с предыдущими транзакциями (этап валидации). В случае двух или более конфликтующих транзакций, т.е. транзакций, пытающихся получить доступ к одному и тому же состоянию сети, Sei определяет эту точку конфликта, а затем повторно выполняет транзакции либо параллельно, либо последовательно в зависимости от характера конфликта.

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

Наконец, Sei также недавно объявила о запуске своего Parallel Stack, открытой среды для обеспечения масштабирования уровня 2, т.е. роллапов, с возможностью использовать и получать преимущества параллельного выполнения.

3.2.2 Монада

Monad - это предстоящий параллельный блокчейн уровня 1 с полной совместимостью байткода и RPC для приложений и инфраструктуры Ethereum. Через ряд инновационных технических реализаций Monad нацелен на обеспечение более интерактивных впечатлений, чем существующие блокчейны, сохраняя при этом более низкие транзакционные издержки за счет оптимизации производительности и переносимости, с временем блока 1 секунда и окончательностью до 10 000 TPS.

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

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

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

Для простой аналогии рассмотрим приготовление многоаспектного блюда (спагетти с фрикадельками). Процесс включает в себя 1) приготовление соуса, 2) приготовление фрикаделек и 3) приготовление пасты. Эффективный повар начнет с кипячения воды для пасты, затем приготовит ингредиенты для соуса, затем бросит пасту в уже кипящую воду, затем приготовит соус и, наконец, фрикадельки, в отличие от выполнения каждого шага по очереди, завершая одну задачу полностью перед переходом к следующей.

3.3 Переместить

Move - это язык программирования, изначально разработанный командой Facebook в 2019 году для своего теперь уже несуществующего проекта Diem. Move был разработан для обработки умных контрактов и транзакционных данных безопасным образом, устраняя векторы атак, характерные для других языков, такие как атаки рекурсии.

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

3.3.1 Aptos

Aptos - это блокчейн на основе Move, разработанный участниками бывшего проекта Diem, который реализует параллельное выполнение для создания высокопроизводительной среды для разработчиков приложений. Aptos использует Block-STM, измененную реализацию механизма контроля конкурентности Software Transactional Memory (STM).

Block-STM - это многопоточный параллельный исполнительный механизм, который позволяет оптимистичное параллельное выполнение. Транзакции предварительно упорядочены и стратегически упорядочены внутри блоков, что является ключом к эффективному разрешению конфликтов и повторному выполнению этих транзакций. Исследования, проведенные Aptos, показали, что теоретически Block-STM's параллелизация может поддерживать до 160 тыс. TPS.

3.3.2 Sui

Похоже на Aptos, Sui - это блокчейн уровня 1, разработанный бывшими членами проекта Diem, который использует язык Move. Однако Sui использует специальную реализацию Move, которая изменяет модель хранения и разрешения на активы изначального дизайна Diem. В частности, это позволяет Sui использовать модель хранения состояния для представления независимых транзакций в виде объектов. У каждого объекта есть уникальный идентификатор в среде выполнения Sui, и благодаря этому система легко идентифицирует не конфликтующие транзакции и обрабатывает их параллельно.

Подобно Solana, Sui реализует детерминированное параллельное выполнение, которое требует, чтобы транзакции заранее указывали, к каким счетам им необходим доступ.

3.3.3 Лаборатории движения

Что такое движение?

Movement создает набор инструментов разработчика и сервисов инфраструктуры блокчейна для обеспечения возможности легкого доступа разработчиков к преимуществам построения на Move. Действуя как поставщик услуг выполнения, подобный AWS, для разработчиков Move, Movement реализует параллелизацию в качестве основной концепции проектирования для обеспечения более высокой пропускной способности и общей эффективности сети. MoveVM является модульной средой выполнения, которая позволяет блокчейн-сетям расширять и настраивать свои возможности обработки транзакций по мере необходимости для поддержки увеличивающегося объема транзакций, укрепляя их способности обрабатывать и выполнять транзакции параллельно.

Архитектура MoveVM

Движение также запустит M2, ZK-rollup, который будет совместим с клиентами EVM и Move. M2 унаследует параллельный двигатель Block-STM и, как результат, ожидается достижение десятков тысяч TPS.

Заключительные мысли

4.1 Проблемы параллельных систем сегодня

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

  • Какие компромиссы сеть делает, чтобы обеспечить лучшую производительность через параллельное выполнение?
    • Меньшее количество валидаторов, обеспечивающих безопасность сети, позволяет ускорить процессы верификации и исполнения, но не приводит ли это к угрозе безопасности блокчейна в виде более легкой возможности сговора валидаторов против сети?
    • Есть ли значительное количество совмещенных валидаторов? Это общая стратегия для минимизации задержки как в криптографических, так и в не-криптографических системах, но что произойдет с сетью в случае компрометации конкретного центра обработки данных?
  • Для оптимистичных параллельных систем создает ли процесс повторного выполнения недопустимых транзакций узкое место при масштабировании сети? Как оценивается и тестируется эффективность этого процесса?

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

4.2 Перспективы / Возможности в будущем

История компьютеров показала нам, что параллельные системы обычно оказываются более эффективными и масштабируемыми со временем, чем последовательные системы. Рост параллельных блокчейнов после Solana подчеркивает, что эта концепция также применима к криптоинфраструктуре. Даже Виталик намекнул на параллелизациякак одно из потенциальных ключевых решений для улучшения масштабируемости EVM rollups недавно. В общем, рост принятия крипто/блокчейна требует систем, которые более оптимальны, чем то, что доступно сегодня, включая параллельные блокчейны. Недавние проблемы сети Solana подчеркнули, что есть много места для улучшения развития параллельных блокчейнов. Поскольку все больше команд стремятся выйти за пределы ончейн-фронтира и привлечь следующую массовую когорту пользователей и принятие к блокчейн-ориентированным приложениям и экосистемам, параллельные модели выполнения предоставляют интуитивную основу для создания систем, способных эффективно обрабатывать масштабы сетевой активности на уровне, соответствующем тому, что делают компании Web2 с легкостью.

Список литературы

Disclaimer:

  1. Эта статья перепечатана с [скоплениеПеренаправьте оригинальный заголовок «Параллельное выполнение: следующее поколение блокчейнов», все авторские права принадлежат оригинальному авторуПАУЛ ТИМОФЕЕВ, МАЙК ДЖИН, И ГЕЙБ ТРАМБЛ]. Если есть возражения к этому переизданию, пожалуйста, свяжитесь с Gate Учитькоманда, и они оперативно справятся с этим.

  2. Отказ от ответственности: мнения и взгляды, выраженные в этой статье, являются исключительно мнениями автора и не являются инвестиционным советом.

  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.

Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500