Подробное подтверждение технических характеристик Rollup и Cairo VM

Источник: Эффективное масштабирование Ethereum, компиляция: китайское сообщество Starknet.

обзор

  • Validity Proof Rollup — это наиболее потенциальный способ увеличить пропускную способность Ethereum безопасным и децентрализованным способом; zkEVM и Cairo VM (CVM) — это две виртуальные машины (VM), используемые в типе Validity Proof Rollup.
  • zkEVM ориентирован на совместимость с Ethereum в ущерб производительности и масштабируемости.
  • Виртуальная машина Cairo, принятая Starknet, отдает предпочтение производительности и масштабируемости, а не совместимости.

Роллапы были горячей темой в этом году при масштабировании Ethereum. Среди различных типов Rollup мы считаем, что Validity Proof Rollup (далее именуемый VR или zk-rollup) является наиболее многообещающим решением для расширения пропускной способности Ethereum безопасным и децентрализованным способом. Ядром этой схемы расширения является использование доказательств достоверности для проверяемых вычислений. Вот как это работает:

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

Подробные технические характеристики Rollup и Cairo VM для подтверждения достоверности

Подтверждение достоверности накопительного пакета

Обратите внимание: накопительные пакеты с доказательством валидности часто ошибочно называют накопительными пакетами с нулевым разглашением (zkRollup), что не соответствует действительности. В сводном пакете большинства доказательств достоверности не используются доказательства с нулевым разглашением и они не используются для обеспечения конфиденциальности. Таким образом, более точным является термин «свертка подтверждения действительности».

виртуальная машина вне сети

Прежде чем идти дальше, нам нужно ответить на первый вопрос: что такое виртуальная машина (ВМ)? Короче говоря, виртуальная машина — это среда, в которой могут работать программы, например операционная система Windows, работающая на Mac. Виртуальная машина переходит между состояниями после выполнения вычислений на некотором входе. Виртуальная машина Ethereum (EVM) — это виртуальная машина, которая запускает смарт-контракты Ethereum.

Виртуальная машина с нулевым разглашением (zkVM) — это среда выполнения программы, которая вместе с выходными данными программы генерирует легко проверяемые доказательства достоверности. Доказательство валидности используется для подтверждения того, что программа была выполнена правильно. Когда используется термин «zkEVM», он обычно относится к накопительному пакету, который запускает виртуальную машину Ethereum (EVM) и может свидетельствовать о выполнении EVM. Эта терминология может ввести в заблуждение, поскольку сама EVM не может генерировать эти доказательства; вместо этого доказательства создаются отдельным механизмом проверки, который использует результат выполнения EVM в качестве отправной точки. Кроме того, все приведенные выше доказательства относятся к действительности и не имеют ничего общего с конфиденциальностью. Поэтому, если быть точным, его нельзя назвать доказательством с нулевым разглашением. Для согласованности в этой статье по-прежнему используется традиционный термин «zkEVM».

Хотя все накопительные пакеты Proof-of-Validity нацелены на масштабирование Ethereum с помощью Proof-of-Validity, разные схемы делают разные выборы того, как виртуальная машина выполняет транзакции вне сети. Многие доказательства достоверности Rollup решил воспроизвести дизайн EVM (отсюда и название «свертка zkEVM»), пытаясь воспроизвести Ethereum на свертке L2. Starknet использует Cairo VM (CVM), совершенно новую виртуальную машину, предназначенную для оптимизации эффективности подтверждения достоверности.

Вышеупомянутые два метода имеют свои преимущества и недостатки, а также компромиссы, но zkEVM жертвует производительностью ради совместимости с Ethereum, в то время как Cairo VM ставит производительность выше совместимости и отдает приоритет масштабируемости.

Понять, как работает zkEVM

zkEVM — это накопительный пакет проверки подлинности, предназначенный для полного представления опыта Ethereum в блокчейне L2. Цель состоит в том, чтобы воспроизвести среду разработки Ethereum в Rollup. С zkEVM разработчикам не нужно корректировать код или отказываться от исходных инструментов EVM (и смарт-контрактов) при написании или переносе смарт-контрактов в решения расширения.

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

Доказуемость EVM

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

  • **EVM использует модель на основе стека, в то время как достоверность оказывается более эффективной для модели на основе регистров. **Стековая природа EVM усложняет доказательство правильности ее выполнения и обеспечивает прямую поддержку ее родной цепочки инструментов.
  • **Схема хранилища Ethereum в значительной степени зависит от деревьев Keccak и больших деревьев Merkle Patricia, оба из которых не подходят для доказательства недействительности и несут огромную нагрузку на доказательство. **Например, Keccak очень быстр для архитектур x86 (обычно используется для запуска EVM), но для проверки требуется 90 000 шагов (требуются специальные встроенные модули). В то время как Pedersen (хеш-функция с нулевым разглашением) требует всего 32 шага. Даже при рекурсивном сжатии использование Keccak в zkEVM по-прежнему потребляет много ресурсов прувера, и в конечном итоге затраты ложатся на пользователя.

Поэтому различные типы zkEVM предназначены для обеспечения разных уровней поддержки инструментов Ethereum, но чем выше совместимость zkEVM с Ethereum, тем ниже производительность. (см. в конце статьи дополнительные типы zkEVM)

Подробные технические характеристики Rollup и Cairo VM для подтверждения достоверности

Понять, как работает Cairo-VM

При разработке решения zkEVM было потрачено много времени на то, чтобы «сделать EVM пригодным для развертывания с подтверждением валидности», отдавая предпочтение совместимости, а не долгосрочной производительности и масштабируемости. Есть еще один вариант: принять новую выделенную виртуальную машину и добавить дополнительный слой для поддержки инструментов Ethereum. Это шаг, который делает Starknet, запустив в ноябре 2021 года накопительный пакет проверки подлинности без разрешения. Starknet — это первый накопительный пакет с доказательством валидности, который реализует платформу смарт-контрактов общего назначения в полностью компонуемой сети.

Starknet использует Cairo-VM (CVM) и создает одноименный язык высокого уровня Cairo. Cairo-VM предназначен для эффективного создания доказательств правильности выполнения программы.

С Cairo (VM и язык программирования) можно:

  1. Доказательство эффективности оптимизации, каждая инструкция имеет допустимое алгебраическое выражение
  2. Современный Rust-подобный язык для написания доказуемых программ
  3. Промежуточные выражения (Sierra) между языком высокого уровня Cairo и сборкой Cairo (инструкции VM), которые могут эффективно выполнять код Cairo.

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

Каир и плюрализм кодирования

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

Язык Cairo был разработан для упрощения этой задачи, чтобы StarkEx мог легко добавлять функциональные возможности и сложную бизнес-логику. Каирские программы компилируются в алгебраический машинный код, последовательность чисел, выполняемую одной фиксированной виртуальной машиной. В Cairo сложный процесс создания математических ограничений, описывающих вычисления (очень сложный для проверки достоверности), абстрагируется и выражается в виде фиксированного набора ограничений (всего менее 50 ограничений). Это позволяет разработчикам расширять приложения с помощью доказательств достоверности путем написания кода с использованием знакомого синтаксиса без понимания базовой математики и инфраструктуры.

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

  • **Локальное кодирование в Cairo:**Cairo 1.0 вдохновлен Rust, который больше соответствует привычкам разработчиков и безопаснее.Написание логики программы становится проще и менее подвержено ошибкам.
  • **Совместимость с Solidity: **Разработчики Solidity могут писать код, поддерживающий Cairo VM. Этот подход обеспечивает опыт разработчиков, аналогичный Ethereum, и поддерживает миграцию смарт-контрактов Solidity в Starknet. Существует два способа реализации миграции:
  • **Перевод: **Перевод — это процесс преобразования исходного кода одного языка программирования в другой язык. Команда Nethermind создала транспилятор Warp для переноса кода Solidity в Cairo. Warp делает смарт-контракты Solidity переносимыми в Starknet, фактически превращая его в четвертый тип zkEVM. В настоящее время он используется для перевода и развертывания контрактов Uniswap с минимальными изменениями.
  • zkEVM в Starknet: виртуальную машину Cairo можно использовать для подтверждения выполнения другой виртуальной машины. Kakarot — это zkEVM, написанный в Каире, который можно использовать для запуска смарт-контрактов Ethereum в Starknet. Cairo VM и zkEVM не конкурируют, чем выбирать между двумя, лучше иметь оба!

Хотя Cairo не существует уже давно, согласно рейтингу TVL, Cairo является четвертым по популярности языком программирования смарт-контрактов с оценкой более 350 миллионов долларов.

Подведем итог

zkEVM стремится воспроизвести среду разработки Ethereum в Rollup и позволить разработчикам использовать знакомые инструменты Ethereum. Но этот подход ограничивает возможности доказательства достоверности и требует больших ресурсов.

Виртуальная машина Cairo, предназначенная для подтверждения достоверности, не подпадает под ограничения EVM. Cairo VM поддерживает Cairo 1.0. Вдохновленный языком Rust, Cairo 1.0 больше соответствует привычкам разработчиков и безопаснее, образуя мощный инструмент, предназначенный для использования STARK для доказательства эффективности расширения Ethereum.

Приятно видеть, как Каир развивается каждую неделю, а возможности для таких разработчиков, как Kakarot zkEVM и Warp, растут. Мы твердо верим, что с запуском децентрализованных приложений Starknet, демонстрирующих мощь Cairo, в будущем в Cairo появятся выдающиеся проекты, которых раньше никто не видел.

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

тип zkEVM

Виталик делит zkEVM на четыре основных типа:

  • **Полный Ethereum-эквивалент первой категории: **Не меняет никакую часть экосистемы Ethereum.
  • ** Второй тип полностью эквивалентного EVM: ** может быть совместим с существующими приложениями dApp и вносить некоторые коррективы в структуру Ethereum для ускорения генерации доказательств.
  • **Третья категория примерно эквивалентна EVM: **Поддержка большинства опкодов EVM, удаление некоторых функций, которые сложно реализовать в zkEVM (таких как прекомпиляция и хеш-функции).
  • **Четвертый тип эквивалентного языка высокого уровня: **Используйте Solidity/Vyper для написания кода смарт-контракта и перевода его на допустимый, удобный для проверки язык.
Посмотреть Оригинал
Содержание носит исключительно справочный характер и не является предложением или офертой. Консультации по инвестициям, налогообложению или юридическим вопросам не предоставляются. Более подробную информацию о рисках см. в разделе «Дисклеймер».
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить