Написал: zkSync
Составил: Shenchao TechFlow
TLDR
Обновление: Эра zkSync переходит на новую систему проверки Boojum без необходимости регенерации.
Производительность: Boojum демонстрирует лучшую в своем классе производительность аттестации, дополняя секвенсор zkSync Era, который уже может обрабатывать более 100 TPS.
Децентрализация: пруверам Boojum требуется всего 16 ГБ оперативной памяти, что обеспечивает будущую крупномасштабную децентрализацию пруверов.
Миссия zkSync — продвигать личную свободу для всех, делая цифровую собственность общедоступной путем создания надежной, безопасной, не требующей разрешений, доступной, простой в использовании, отказоустойчивой и бесконечно масштабируемой сети блокчейнов.
В рамках этой миссии альфа-версия zkSync Era была представлена публике чуть более трех месяцев назад, и реакция была потрясающей. Основные моменты сети:
Общая заблокированная стоимость TVL составляет 577 миллионов долларов США (Источник: L2Beat);
23 750 000 транзакций за последние 30 дней – больше, чем любой L2 (источник: L2Beat);
9735 проверенных смарт-контрактов с исходным кодом.
В марте 2023 года была запущена платформа zkSync Era на базе SNARK, использующая проверенную в боевых условиях схемную структуру, которая поддерживает zkSync Lite в основной сети уже почти три года. Однако мы знали, что это не будет окончательная версия системы проверки эпохи zkSync, и поэтому разработали систему так, чтобы мы могли вносить в нее фундаментальные изменения без регенерации. Это означает, что мы можем развертывать значительные криптографические обновления, не мешая разработчикам и пользователям.
За кулисами мы долгое время работали над криптографическим обновлением. Сегодня мы рады объявить о первом обновлении: эпоха zkSync переходит на новую систему проверки подлинности STARK под названием «Boojum».
Знакомьтесь, Буджум
Boojum — это библиотека арифметики и ограничений, которую мы разработали на основе Rust и используем для реализации zkSync Era и ZK Stack, обновленной версии схемы ZK.
Что такое Буджум?
Особенности Буджума:
PLONK Арифметизация: в контексте протоколов с нулевым разглашением арифметизация — это процесс преобразования общих вычислений в математическую форму. Как и текущая система доказательства, система обновлений по-прежнему использует арифметику в стиле PLONK. При таком подходе схемы ZK писать проще, чем некоторые альтернативы, что упрощает разработку, аудит, обслуживание и обновление системы.
Мощная схема обязательств. В основе Boojum лежит схема обязательств FRI, которая является ключевым компонентом, позволяющим нам фиксировать ограниченные полиномы и впоследствии эффективно доказывать, что заявленное (полиномиальное) открытие действительно является полиномом низкой степени.
Эффективность системы: хотя генерацию свидетелей иногда упускают из виду, когда люди говорят о производительности проверяющих, в текущих версиях системы доказательств мы достигли точки, когда оптимизированные проверочные устройства на графическом процессоре настолько эффективны, что время генерации свидетелей примерно такое же, как и время генерации доказательств. . С помощью Boojum мы обеспечиваем автоматическое распараллеливание (если позволяет граф зависимостей) генерации свидетелей, сохраняя при этом простоту определения функций генерации свидетелей.
Легко расширить: базовая абстракция системы ограничений очень лаконична, но позволяет пользователям добавлять собственные типы вентилей различными способами, например, добавляя к ним некоторые специализированные полиномы или повторно используя так называемые «общие столбцы». Интерфейс расширения предоставляет возможность автоматически генерировать средства проверки, средства проверки и рекурсивные средства проверки после того, как пользователи определят простую геометрию для своей схемы. Это обеспечивает очень эффективный процесс разработки; если пользователь меняет структуру схемы и выбирает другой тип шлюза, он может просто снова вызвать интерфейс, и он заново сгенерирует ключи и обеспечит использование правильного средства проверки и проверки.
Одиночный стек: с помощью Boojum все вышеперечисленное можно сделать, используя только стандартные идиоматические выражения Rust, используя выразительную мощь его системы типов. Вычислительно-интенсивные части средства проверки графического процессора написаны на CUDA C++, но для композиции мы предоставляем привязки Rust.
Boojum по умолчанию использует простые поля размером 2 ^ 64 - 2 ^ 32 + 1 (называемые «полем Златовласки») и предоставляет реализации соответствующих примитивов привязки полей, таких как хеш-функция Poseidon2, и таблицы обновления на основе таблиц поиска. стандартных криптографических примитивов, таких как SHA256, Keccak256 и Blake2s.
Важно отметить, что на последнем этапе мы обернем доказательство STARK непрозрачным SNARK на основе спаривания и проверим этот SNARK на Ethereum. Это доказательство намного меньше и его проверка обходится дешевле; этот шаг снижает стоимость системы доказательства и, следовательно, самой транзакции.
Почему стоит выбрать Буджум?
При разработке Boojum на это решение повлияли два ключевых фактора: (1) надежность мирового класса и (2) снижение требований к оборудованию для децентрализации.
Производительность мирового уровня
Текущая система на основе SNARK, хотя и эффективна на данный момент, не масштабируется для крупномасштабных транзакций, близких к реальному времени, в ZK Stack. Будущая цель zkSync Era, работающей как Hyperchain, — поддерживать эти системы в ближайшие несколько лет. Наше видение этих систем заключается в том, что доказательства можно генерировать и проверять дешево и быстро, обеспечивая быструю окончательность и совместимость между гиперцепями.
Производительность системы подтверждения напрямую влияет на комиссию, которую пользователи платят за свои транзакции, и эти затраты со временем должны приближаться к нулю. Текущая версия системы подтверждения достаточно эффективна, чтобы создать zkEVM и обработать миллионы транзакций всего за несколько месяцев, но с Boojum мы можем добиться еще большего!
Чтобы измерить время генерации доказательств в сети (а также другие ключевые показатели, связанные с производительностью), мы сотрудничали с Celer, чья команда имеет обширный опыт сравнительного анализа и анализа нескольких систем доказательств. На изображении ниже вы можете видеть, что Boojum хорошо работает на большинстве профилированных систем. Результаты говорят сами за себя: наша реализация демонстрирует эффективность проверки мирового класса и, насколько нам известно, является самой быстрой системой проверки, используемой в настоящее время в производстве.
Для справедливого сравнения Celer провел эти тесты на проверочном устройстве на базе ЦП, но наша система основной сети использует проверочное устройство на базе графического процессора, которое работает быстрее.
Переход на систему проверки на основе STARK представляет собой значительное улучшение производительности и поможет обеспечить завершенность и поддержку с низкой задержкой для повышения уровня активности в эпоху zkSync и других систем на базе ZK Stack.
Сокращение требований к децентрализованному оборудованию
Эти результаты производительности особенно впечатляют, если учесть, что это не единственный показатель, который мы оптимизируем — мы хотим улучшить производительность системы, одновременно снизив требования к оборудованию для ее работы.
Обычно используемые в настоящее время системы проверки, включая нашу существующую систему, предъявляют более высокие требования к оборудованию. Наша текущая система доказательства работает на наборе графических процессоров A100, каждый из которых имеет 80 ГБ оперативной памяти. Потребность в дорогих и мощных машинах представляет собой серьезное препятствие на пути к нашей цели: будущему децентрализованной генерации доказательств, управляемой пользователем. Для достижения этой цели недостаточно сделать генерацию доказательств несанкционированной; пользователям также не нужна дорогая машина с сотнями ГБ оперативной памяти для участия.
Это еще одна область, в которой мы добились чрезвычайно впечатляющего прогресса! Для нашего средства проверки графического процессора для Boojum требуется всего 16 ГБ ОЗУ, и этот низкий порог входа является важным шагом в будущее, которое мы видим. Доказательство на базе ЦП также доступно всего с 64 ГБ ОЗУ, мы хотим уменьшить его до 32 ГБ и в полной мере использовать преимущества современных многоядерных процессоров.
Наконец, секвенсор zkSync Era Rust уже может обрабатывать более 100 транзакций в секунду (TPS). Внедрение новой системы проверки не только повышает производительность, но и снижает требования к оборудованию, что делает ее идеальным дополнением к секвенатору. Улучшения производительности, обеспечиваемые Boojum, означают, что система может быстрее проверять транзакции, а снижение требований к оборудованию улучшает доступ сети к более дешевым машинам для большей горизонтальной масштабируемости.
Путешествие Буджума по основной сети
Команда потратила несколько месяцев на разработку этого обновления, и мы очень рады, что достигли стадии тестирования системы в основной сети. Мы также хотели поделиться некоторыми из наших историй.
Обновите эпоху zkSync
Во-первых, конструкция zkSync Era позволяет нам со временем обновлять каждый компонент, и система сертификации не является исключением.
Подобно Ethereum, мы используем древовидную структуру данных Меркла для хранения информации о состоянии сети. Поскольку мы доказываем утверждение о состоянии системы, эта информация необходима для доказательства системы. Для этого дерева Меркла (и способа взаимодействия с ним системы доказательства) ключевым проектным решением является использование неалгебраической хэш-функции, в частности Blake2s. Если бы мы оптимизировали только простоту генерации доказательства, мы бы использовали алгебраическую хэш-функцию (например, Poseidon2), но этот выбор связал бы наблюдаемое состояние с параметрами системы доказательства, такими как выбор простых полей. Любое обновление системы доказательств требует полной регенерации состояния.
Путь Boojum от дизайна до обзора
Около месяца назад мы начали разрабатывать полную и комплексную версию реализации нашей новой системы доказательств. Учитывая сложность этого изменения и критичность корректности системы, мы инициировали серию внутренних и внешних аудитов.
В то время схемы zkEVM и арифметическая библиотека Boojum все еще находились в стадии активной разработки, но мы работали с внешними аудиторами безопасности, чтобы сосредоточиться на раннем выявлении потенциальных проблем с надежностью наших основных схем и компонентов Boojum. Мы тесно сотрудничали, чтобы предоставить им полный доступ к исходному коду и документации, а они проверяли и тестировали схемы zkEVM и гаджеты Boojum, используя как автоматические, так и ручные методы тестирования.
Boojum: от обзора к тестированию
Это подводит нас к следующему шагу в нашем поэтапном развертывании: теневому режиму основной сети! Мы рады сообщить, что теперь мы используем новую систему доказательств параллельно с существующей системой доказательств, хотя Boojum в настоящее время находится только в стадии бета-тестирования. Мы начали генерировать и проверять «теневые доказательства» для блоков основной сети.
Эти теневые доказательства не требуются для основной версии zkSync Era — они по-прежнему будут определяться существующей системой доказательств. Мы просто проверяем эти теневые доказательства для дальнейшего тестирования и оптимизации системы, но используя реальные производственные данные о деятельности пользователей zkSync Era.
Boojum: От теста к основной сети
Как и во всем, что мы делаем, безопасность всегда превыше всего. Мы рассмотрим возможность перехода только тогда, когда будем полностью удовлетворены результатами тестирования новой системы, и поделимся более подробной информацией в ближайшие недели и месяцы. Мы также планируем провести дальнейшие аудиты и оценки безопасности, чтобы приблизить это впечатляющее обновление к полному развертыванию и поэтапно отказаться от текущей системы аттестации.
Мы считаем, что Boojum — это следующий шаг на пути к тому, чтобы zkEVM стал более безопасным, масштабируемым и эффективным.
