Kakarot: введение в первый модульный zkEVM
Краткое введение: Kakarot - это zkEVM типа 3 (скоро будет типа 2.5), построенный поверх CairoVM. Проект, начавшийся в октябре 2022 года, ставил перед собой несколько целей: открытый исходный код с первого дня, приветствие вкладов, и самое амбициозное - создание zkEVM менее чем в 10 000 строк кода. Мы достигли этой цели всего за шесть месяцев. Мы выпустим тестовую сеть в конце лета 2023 года.
В конце статьи имеется глоссарий, в котором можно найти информацию о EVM, zkRollups и zkEVM.
Неполное пособие по CairoVM
CairoVM - это виртуальная машина, обеспечивающая доказуемое исполнение. Она служит основой для Starknet, валидатора достоверности общего назначения уровня 2 (L2) в экосистеме Ethereum. Способность CairoVM представлять исполнение в виде полиномов позволяет доказать каждую транзакцию в Starknet с помощью STARK. Это требует от разработчиков создания децентрализованных приложений (dApps) на Cairo, соответствующем языке программирования.
По словам команды, стоящей за проектом Cairo, Лиора Голдберга, Шахара Папини и Михаила Рябцева:
Мы представляем Cairo, практически эффективную архитектуру процессора, полную по Тьюрингу и совместимую со STARK . Мы описываем единственный набор полиномиальных уравнений для утверждения, что выполнение программы на этой архитектуре является допустимым. При наличии утверждения, которое необходимо доказать, Cairo позволяет написать программу, которая описывает это утверждение, вместо того, чтобы писать набор полиномиальных уравнений.
Вывод: Программы, написанные на языке Cairo, являются доказуемыми, что позволяет использовать преимущество, меняющее игру: написание доказуемых программ на языке высокого уровня. В результате разработчикам, желающим использовать свойство масштабируемости криптографии с нулевым знанием, больше не нужно писать схемы.
Итак, приведет ли переписывание виртуальной машины Ethereum (EVM) на языке Cairo к созданию zkEVM?
Призыв Шахара (Shahar) к оружию или как все начиналось
Шахар Папини, один из изобретателей Cairo, написал в Твиттере 20 июля 2022 года:
Перевод: Кто хочет помочь мне создать первый в истории zkEVM, поверх Cairo? Тем не менее, я был на POC в местном филиале некоторое время назад, и мне кажется, что это вполне осуществимо.
Идея была проста: EVM - это зрелая, четко определенная архитектура VM. 142 опкода, 9 прекомпиляций и демократический процесс обновления этих опкодов или прекомпиляций. Если собрать его в Cairo, то можно ли получить zkEVM "бесплатно", т.е. получить масштабируемое свойство нулевого знания как прямое следствие? Предупреждение о спойлере: да.
После этого идея получила распространение в сообществе Starknet. Абдель, руководитель команды исследователей Starkware и член основной команды разработчиков Ethereum, приступил к ее реализации в октябре 2022 года. Примерно в то же время сообщество строителей с открытым исходным кодом Starknet, собранное вместе с помощью Onlydust, параллельно начало реализовывать аналогичный проект. Первый поглотил второй во время StarknetCC в Лиссабоне.
К концу 2022 года в "Kakarot" было внедрено 100% опкодов EVM
Дом хакеров в Лиссабоне, одна неделя самоотверженной работы и около десяти человек, собирающих zkEVM. Родилась основная команда Kakarot. Мы поняли, что это осуществимо и мощно. Наивная реализация zkEVM уместилась менее чем в 5 000 строк кода. Никаких схем, никаких полиномов. Только высокоуровневый, выразительный код.
С помощью Starknet Foundation и Onlydust мы отправились в это приключение. Нашими ценностями были открытый исходный код, открытый вклад и техническая стратегия, определяемая сообществом. Clément и я возглавили и координировали эти усилия. Сегодня у Kakarot более 40 уникальных участников. Несмотря на то, что Kakarot создается для кристаллизации усилий по созданию zkEVM производственного класса, наши ценности остаются неизменными: открытый исходный код навсегда и открытость для внешних вкладов (+ вознаграждение за вклад - присоединяйтесь к нам!).
По состоянию на май 2023 года, Kakarot достиг 100% эквивалентности байткода (что соответствует типу 3 zkEVM) и реализовал 8 из 9 прекомпиляций EVM. Скоро он будет иметь все девять, таким образом, достигнув типа 2.5, согласно типологии Виталика. В результате dApps, написанные на Solidity или любом другом языке с поддержкой EVM, могут быть развернуты на Kakarot без необходимости внесения каких-либо изменений в существующий код.
Что дальше? Ставка на два направления: Принести EVM в Starknet и создать продукт zkEVM-Rollup-as-a-Service
Когда мы проанализировали рынок, то заметили, что по сравнению с другими zkEVM, Kakarot является аутсайдером - команда из менее чем 10 человек со значительно меньшим бюджетом и брендом. Развертывание в качестве универсального zkEVM L2 казалось рискованным. Итак, какие еще стратегии представляются разумными? Привнести совместимость EVM в Starknet и использовать фрактальное масштабирование.
Мы твердо верим, что Cairo окажется лучшим инструментом для проектирования с zero-knowledge в ближайшие годы. Мы также считаем, что EVM останется наиболее распространенным уровнем абстракции для разработчиков. Именно поэтому мы обеспечиваем совместимость EVM в Starknet. Вскоре команды смогут развертывать свои Solidity dApp в Starknet через Kakarot.
Более того, мы считаем, что цепочки приложений (или L3 для конкретных приложений) появятся раньше, чем ожидают люди. Хорошим примером является набирающий обороты стек OP. Используя модульную природу Kakarot (небольшая и гибкая кодовая база, адаптируемая к любой Cairo chain), мы получили возможность создать инструмент zkRollup-as-a-service.
Один клик: zkEVM развертывается как L3 поверх Starknet для конкретного приложения. Среда EVM, низкий уровень газа и быстрое выполнение. Криптографическая безопасность.
Чтобы взглянуть на наш стек, посмотрите на Madara, секвенсор Starknet на базе Substrate. Madara + Kakarot = zkEVM L3s на базе Substrate и CairoVM!
Контекст и глоссарий
- EVM (виртуальная машина Ethereum): EVM - это полная по Тьюрингу виртуальная машина, которая выполняет смарт-контракты на блокчейне Ethereum. Она служит средой выполнения для этих контрактов, обрабатывает инструкции и управляет состоянием сети. Разработчики могут писать смарт-контракты на таких языках, как Solidity, которые затем компилируются в байткод EVM и выполняются виртуальной машиной;
- zkRollups: zkRollups - это решения второго уровня масштабирования для сетей блокчейн, в частности Ethereum. Они объединяют несколько транзакций в одно доказательство, которое затем публикуется в основной цепи. Благодаря использованию доказательств с нулевым знанием, zkRollups позволяет увеличить пропускную способность и снизить стоимость транзакций при сохранении высокого уровня безопасности и децентрализации;
- zkEVM (Zero-Knowledge Ethereum Virtual Machine): zkEVM - это реализация EVM, которая включает в себя системы доказательства нулевого знания. Она позволяет выполнять смарт-контракты с повышенной масштабируемостью (а иногда и конфиденциальностью) за счет использования криптографии для доказательства правильности транзакций.
Спасибо, что читаете! Если вы хотите присоединиться к нашему сообществу, напишите мне в Twitter @ETazou.
Присоединяйтесь к нашему GitHub, у нас много репозиториев для изучения! Главный из них - Kakarot (реализация Cairo 0.x). У нас также есть открытое сообщество Telegram: https://t.me/KakarotZkEvm.