От Чжуолунь Сян и Александр Шпигельман
TL;DR: Zaptos - это новая параллельная архитектура блокчейна, разработанная для минимизации сквозной задержки при сохранении высокой пропускной способности блокчейна с конвейерной структурой. В геораспределенной сети из 100 валидаторов Zaptos достигает субсекундных задержек при пропускной способности 20 000 транзакций в секунду (TPS).
Более подробную информацию вы можете найти в статье Zaptos.
…
Задержка конечных транзакций в блокчейне, измеряемая с момента отправки транзакции до момента получения подтверждения о ее совершении, стала критически важной темой. Конечная задержка блокчейна при высокой пропускной способности особенно важна для массового внедрения чувствительных к задержке блокчейн-приложений, включая платежи, DeFi и игры.
Большинство исследований и инноваций в академической среде и индустрии Web3 направлены на повышение производительности византийских отказоустойчивых (BFT) механизмов консенсуса, таких как недавно созданные Shoal, Shoal++ и Mysticeti. Однако жизненный цикл транзакции включает в себя не только консенсус: общение между клиентами, полными узлами и валидаторами, выполнение блока, сертификацию конечного состояния выполнения, сохранение результатов в хранилище и передачу результатов обратно клиенту. На самом деле, современным системам консенсуса обычно требуется около 300-400 миллисекунд, чтобы упорядочить транзакцию при низкой нагрузке. Однако сквозная задержка даже самых быстрых блокчейнов составляет около 1 секунды и существенно возрастает при увеличении нагрузки.
Чтобы решить проблему уменьшения задержек в работе блокчейна, мы сосредоточили свои исследования на совершенствовании архитектуры. Сегодня мы представляем Zaptos, параллельную, конвейерную архитектуру, разработанную для минимизации сквозной задержки при сохранении высокой пропускной способности.
Zaptos выполняет этапы выполнения блока, сертификации его состояния и хранения под задержкой консенсуса в общем случае. Это означает, что к моменту заказа блока он уже был выполнен, его конечное состояние было сертифицировано и сохранено. В частности, сквозная задержка Zaptos в этом случае равна:
Задержка связи клиент-валидатор + задержка консенсуса
Поскольку задержка связи клиент-валидатор неизбежна, Zaptos достигает оптимальной сквозной задержки блокчейна, когда задержка консенсуса оптимальна.
…
Существующие архитектуры блокчейна
Существующие архитектуры блокчейн-конвейеров можно разделить на три основные категории по принципу взаимодействия между их этапами: соединенные консенсус-исполнение, исполнение-только-консенсус и консенсус-только-исполнение. В двух последних категориях консенсус и исполнение разделены как отдельные этапы.
Рисунок 1. Иллюстрация архитектуры конвейера с консенсусом и исполнением.
В архитектуре с соединением консенсус-исполнение этап консенсуса тесно интегрирован с исполнением блоков, что определяет новое состояние блокчейна во время консенсуса. Например, в протоколах, основанных на лидерах, валидаторы выполняют блок после предложения лидера и голосуют по полученному новому состоянию блокчейна как часть протокола консенсуса. Результатом этапа консенсуса является окончательно сформированное состояние. Среди сетей, использующих эту архитектуру, можно назвать Bitcoin, Ethereum PoS, Solana, Algorand, Cosmos, Redbelly, NEAR, XRP и Stellar.
Рисунок 2. Иллюстрация архитектуры конвейера «исполнение - консенсус».
Архитектура «исполнение - потом консенсус» впервые появилась в HyperLedger. Сначала валидаторы локально выполняют список транзакций, создавая результаты выполнения. Затем эти результаты подвергаются процессу консенсуса для согласования их порядка и, следовательно, нового состояния блокчейна.
Рисунок 3. Иллюстрация архитектуры конвейера «консенсус - исполнение». При интеграции с конвейерным протоколом консенсуса эта архитектура фактически становится конвейерной архитектурой Aptos.
В архитектуре «консенсус - исполнение» валидаторы сначала достигают консенсуса по новому блоку, расширяющему блокчейн. Затем происходит исполнение заказанного блока, в результате чего формируется обновленное состояние блокчейна. Чтобы получить публично проверяемое доказательство нового состояния блокчейна и избежать нарушения безопасности, вызванного недетерминированным исполнением, вводится этап сертификации перед фиксацией на хранение. Среди сетей, использующих эту архитектуру, можно назвать Aptos и Sui, а Avalanche реализует ее в настоящее время.
Архитектура блокчейна Aptos с конвейерной обработкой данных
Aptos - первый блокчейн, в котором с 2021 года используется конвейерная архитектура, позволяющая параллельно выполнять различные этапы разных блоков. Такая конструкция повышает производительность блокчейна за счет максимального использования ресурсов.
Архитектура
Рисунок 4. Иллюстрация конвейерной архитектуры Aptos. На рисунке показаны клиент C_i, полный узел F_i и валидатор V_i. Каждая рамка представляет собой этап в блокчейне, который блок транзакций должен пройти слева направо. Конвейер состоит из четырех этапов, включая консенсус (который состоит из распространения и упорядочивания), исполнение, сертификацию и фиксацию.
Мы описали текущую архитектуру Aptos, проследив жизненный цикл транзакции (txn). Клиент может отправить txn на полный узел, к которому он подключается (для защиты от DDoS). Полный узел, получив txn, пересылает его валидатору, к которому он подключается.
- Стадия консенсуса: Сначала валидаторы запускают протокол консенсуса, чтобы договориться о блоке, включающем txn. Этот процесс обычно включает два подэтапа: этап распространения, на котором валидаторы распределяют пакеты полезной нагрузки, и этап упорядочивания, на котором они достигают консенсуса относительно порядка блоков, содержащих метаданные для этих пакетов полезной нагрузки. Этот этап требует большой пропускной способности сети.
- Стадия выполнения: Валидатор выполняет блок, если существует упорядоченный неисполненный блок, такой, что его родительский блок был выполнен. Этот этап требует больших затрат процессора.
- Этап сертификации: После выполнения валидатор подписывает криптографический дайджест состояния выполнения и транслирует подпись. При получении кворума подписей на одно и то же состояние валидатор объединяет подписи для сертификации состояния. Этот этап не использует много вычислительных ресурсов и ресурсов полосы пропускания, но требует одного раунда для получения подписи от кворума валидаторов.
- Стадия фиксации: если новый сертифицированный блок является следующим по высоте, который должен быть зафиксирован, валидатор обновляет самую высокую зафиксированную высоту и состояние блокчейна, а затем сохраняет их в хранилище. На этом этапе происходит интенсивный ввод-вывод данных из хранилища. Когда фиксация завершена, валидатор отправляет новый зафиксированный блок на полный узел.
Полный узел, получив зафиксированный блок от валидаторов, убеждается, что состояние сертифицировано, и добавляет блок в свой конвейер. Конвейер полного узла похож на конвейер валидатора, но без этапа сертификации и консенсуса. Клиент может запросить, зафиксирован ли txn в блокчейне. Полный узел, получив запрос клиента о txn, ответит доказательством включения txn, если он зафиксирован в какой-то позиции в соответствии с последним состоянием блокчейна. Если клиент получает ответ в течение таймаута, он проверяет, что доказательство действительно для txn, и возвращает успех или неудачу, соответственно. При неудаче или таймауте клиент может повторно отправить транзакцию.
Конвейерная обработка
Рисунок 5. Иллюстрация конвейеризации последовательных блоков в архитектуре Aptos с конвейеризацией.
Как показано на рисунке, конвейерная конструкция позволяет достичь высокой пропускной способности блокчейна за счет полного использования различных ресурсов валидаторов и полных узлов. На Aptos валидатор может выполнять различные этапы последовательных блоков (например, для блоков B_1, B_2, B_3), и валидатор может параллельно выполнять этап фиксации (с интенсивным использованием ввода-вывода) для B_1, этап сертификации для B_2, этап исполнения (с интенсивным использованием процессора) для B_3 и этап консенсуса (с интенсивным использованием сети) для последующих блоков. На практике длительность этапов может варьироваться, но при условии, что параллельные этапы используют разные ресурсы, конвейер повышает пропускную способность за счет максимального использования ресурсов по сравнению с неконвейерными схемами.
Zaptos
Zaptos значительно снижает сквозную задержку конвейерной архитектуры Aptos за счет трех ключевых оптимизаций, сохраняя при этом свойство максимального использования ресурсов для достижения высокой пропускной способности.
Рисунок 6. Иллюстрация Zaptos.
- Оптимистичное выполнение: Эта оптимизация улучшает задержку конвейера как для валидаторов, так и для полных узлов за счет оптимистичного выполнения стадии исполнения. Когда любой валидатор получает предложение блока в консенсусе, он немедленно добавляет блок в конвейер, а не ждет, пока он будет заказан. Затем валидатор может спекулятивно выполнить блок после того, как родительский блок будет выполнен. Валидатор также отправляет предложение полному узлу, который подписывается на валидатор. Аналогично, полный узел выполняет оптимизацию для проверки доказательства состояния, полученного от валидатора.
- Оптимистичная фиксация: Вторая оптимизация сокращает время ожидания этапа фиксации как для валидаторов, так и для полных узлов, позволяя оптимистично фиксировать блоки в хранилище сразу после завершения этапа выполнения, но до сертификации состояния. Когда валидаторы удостоверяют состояние, для завершения этапа фиксации требуется лишь минимальное обновление. В случае, если opt-коммитированный блок в итоге не будет упорядочен консенсусом, opt-коммитированное состояние будет возвращено из хранилища для обеспечения согласованности данных.
- Сертификация состояния на основе консенсуса: Последняя оптимизация еще больше улучшает задержку конвейера валидаторов, позволяя валидаторам начинать этап сертификации выполненного блока раньше, а не ждать, пока блок будет заказан. Это позволяет валидаторам запускать этап сертификации параллельно с последним раундом консенсуса, эффективно сокращая задержку конвейера на один раунд в общем случае.
Благодаря этим ключевым оптимизациям Zaptos значительно снижает задержку конвейера и максимально использует ресурсы для достижения высокой пропускной способности.
Рисунок 7. Иллюстрация конвейеризации последовательных блоков в Zaptos. Левый рисунок иллюстрирует конвейеризацию, где валидатор также может конвейеризировать различные этапы последовательных блоков. Правый рисунок иллюстрирует зависимости между этапами последовательных блоков, например, этапы выполнения и фиксации блока B_2 также зависят от этапов выполнения и фиксации его родительского блока B_1, соответственно.
Оценка
Мы оцениваем сквозную производительность Zaptos с помощью геораспределенных экспериментов, используя Aptos в качестве высокопроизводительного базового уровня. Более подробную информацию об оценке можно найти в статье.
Мы использовали Google Cloud для имитации развертывания глобальной децентрализованной сети. Наш тестовый стенд состоит из 100 валидаторов и 30 полных узлов в 10 глобальных регионах, с характеристиками машин, аналогичными тем, которые используются в Aptos для квалификации в качестве товарного класса.
Пропускная способность и время ожидания
Рисунок 8. Производительность Zaptos и базового варианта (блокчейн Aptos) в общем случае.
На рисунке выше показана сквозная задержка блокчейна по отношению к графику пропускной способности Zaptos и Aptos. Как видно из рисунка, в обеих системах наблюдается постепенное увеличение задержки по мере роста нагрузки на систему и резкие скачки при достижении максимальной мощности. По сравнению с базовым вариантом, Zaptos значительно снижает задержку на 160 мс при низкой нагрузке и более чем на 500 мс при высокой нагрузке.
Примечательно, что Zaptos достигает субсекундной сквозной латентности блокчейна при 20 тыс. TPS при реализации производственного уровня, протестированной в реалистичной среде, подобной мэйннету. Это прорывное сочетание, редко встречающееся в существующих блокчейн-системах, которое раскрывает потенциал блокчейна для реальных приложений, требующих одновременно скорости и масштабируемости.
Разбивка задержки
Рисунок 9. Разбивка латентности для общего случая: Aptos Blockchain.
Рисунок 10. Распределение задержек в общем случае: Zaptos.
График распределения задержек показывает продолжительность каждого этапа конвейера для валидаторов и полных узлов. Для дальнейшего анализа производительности системы мы приводим подробную разбивку точек данных из графика «пропускная способность - задержка»:
- Сплошная задержка блокчейна Zaptos примерно равна задержке консенсуса, вплоть до 10 тыс. TPS. В этом диапазоне этапы opt-execution, certification и opt-commit как для валидаторов, так и для полных узлов эффективно «затеняются» в рамках этапа консенсуса. Это подтверждает разработку Zaptos как шаг к достижению оптимальной задержки блокчейна.
- С увеличением TPS этапы, не связанные с консенсусом, перестают быть полностью теневыми в рамках этапа консенсуса. В первую очередь это связано с увеличением подготовки к выполнению, необходимой для ожидания или выборки больших блоков, а также с увеличением продолжительности этапа opt-execution. Несмотря на частичное перекрытие этапов при максимальной пропускной способности, Zaptos значительно снижает задержку за счет теневой обработки большей части длительности этапов. Например, при 20 тыс. TPS Aptos демонстрирует общую задержку в 1,32 с (задержка консенсуса: 0,68 с; другие этапы: 0,64 с), тогда как Zaptos сокращает ее до 0,78 с (задержка консенсуса: 0,67 с; другие этапы: 0,11 с).
- Задержка распространения консенсуса остается узким местом сквозной задержки блокчейна при высокой нагрузке. Дальнейшее улучшение задержки распространения консенсуса представляет собой интересную задачу для будущей работы.
Заключение
Zaptos - это новая конвейерная архитектура блокчейна, разработанная для достижения низкой задержки и высокой пропускной способности за счет максимального использования ресурсов путем эффективной конвейеризации. Более подробную информацию вы можете найти в статье о Zaptos.