Validity Rollups — це найперспективніший спосіб збільшити пропускну здатність Ethereum у безпечний і децентралізований спосіб; zkEVM і Cairo VM (CVM) — це два типи віртуальних машин, які використовуються в Validity Rollups.
**Автор:**StarkWare
Компіляція: Bump Man
TL;DR
Validity Rollups — це найперспективніший спосіб збільшити пропускну здатність Ethereum у безпечний і децентралізований спосіб; zkEVM і Cairo VM (CVM) — це два типи віртуальних машин, які використовуються в Validity Rollups.
zkEVM зосереджується на сумісності з Ethereum за рахунок продуктивності та масштабованості.
Віртуальна машина Cairo, яка використовується в Starknet, надає пріоритет продуктивності та масштабованості над сумісністю.
Зведення — гаряча тема цього року, коли йдеться про масштабування Ethereum. Серед різних типів зведень ми вважаємо, що Validity Rollups (VR), також відомі як zk-rollups, є найперспективнішим способом підвищення пропускної здатності Ethereum у безпечний і децентралізований спосіб. В основі цього рішення для масштабування лежить перевірене обчислення з використанням доказів дійсності. Ось як вони працюють:
Замість обробки кожної транзакції в основній мережі Ethereum оператор переносить виконання транзакцій у середовище поза мережею. Це позаланцюжкове середовище діє як рівень 2, тобто рівень, який працює поверх Ethereum.
Після обробки великої кількості транзакцій оператори рівня 2 повертають результати для застосування до стану Ethereum разом із доказами дійсності для перевірки цілісності виконання поза ланцюгом. Це підтвердження гарантує, що всі транзакції в пакеті є дійсними та автономно перевіреними контрактом валідатора в мережі. Це дозволяє Ethereum застосувати результат до свого стану.
Зведені версії
*Примітка: зведені пакети перевірки часто неправильно називають зведеними пакетами з нульовим знанням, але це неточно. Більшість зведених пакетів перевірки не використовують ZKP і не використовуються з метою забезпечення конфіденційності. Тому більш точним є термін «Зведення перевірки». *
віртуальна машина поза мережею
Перш ніж рухатися далі, перше запитання, на яке ми маємо відповісти: що таке віртуальна машина (VM)? Простіше кажучи, це середовище, в якому можуть запускатися програми, як на Mac з операційною системою Windows. Він переходить між станами після виконання обчислень на деяких входах. Віртуальна машина Ethereum (EVM) — це віртуальна машина, яка запускає смарт-контракти Ethereum.
Віртуальна машина з нульовим знанням (zkVM) — це середовище виконання програми, яке разом із вихідними даними програми дозволяє генерувати докази дійсності, які можна легко перевірити. Це підтвердження дійсності доводить, що програма була виконана правильно. Коли використовується термін «zkEVM», він зазвичай відноситься до агрегації, яка використовує віртуальну машину Ethereum (EVM) і може засвідчити виконання EVM. Цей термін може вводити в оману, оскільки сам EVM не генерує ці докази; натомість докази генеруються окремим механізмом доказів, який починається з результатів виконання EVM. Крім того, ці докази стосуються достовірності, а не конфіденційності, тому вони не є доказами з нульовим знанням. Тим не менш, для послідовності в цій статті ми будемо дотримуватися традиційного терміну «зкЕВМ».
Хоча всі пакети Validity Rollup спрямовані на масштабування Ethereum за допомогою підтвердження дійсності, вони відрізняються вибором віртуальних машин для виконання транзакцій поза мережею. Багато Validity Rollups вирішують відтворити дизайн EVM (звідси термін «зведені zkEVM»), намагаючись відтворити Ethereum на L2. Starknet використовує новий тип віртуальної машини — Cairo VM (CVM), спеціально розроблений для оптимізації ефективності підтвердження дійсності.
Ці два методи мають свої переваги та недоліки, але zkEVM обмінює продуктивність на сумісність з Ethereum, тоді як Cairo VM надає перевагу продуктивності над сумісністю та масштабованістю.
підхід zkEVM
zkEVM — це зведений пакет перевірки, метою якого є повне перенесення досвіду Ethereum у блокчейни рівня 2. Він має на меті відтворити середовище розробника Ethereum як зведений пакет. Завдяки zkEVM розробникам не потрібно змінювати свій код або відмовлятися від своїх інструментів EVM (і смарт-контрактів) під час написання смарт-контрактів або перенесення смарт-контрактів на більш масштабовані рішення.
Головним недоліком цього підходу є те, що він зменшує потенціал масштабування доказів дійсності. Оскільки zkEVM націлений на сумісність з Ethereum, він повільніший і потребує більше ресурсів. На відміну від CVM, EVM не був розроблений з метою перевірки ефективності. Це обмежує використання оптимізацій, які можуть підвищити ефективність і масштабованість, що зрештою впливає на загальну продуктивність системи.
Доказовість EVM
Основна проблема підходу zkEVM корениться в початковому плані EVM - він не був розроблений для роботи в контексті підтвердження дійсності. У результаті спроби віддзеркалити його функціональність не вдається розкрити повний потенціал доказів дійсності, що призводить до неоптимального рівня ефективності. Ця неефективність зрештою знижує загальну продуктивність системи. Сумісність EVM з доказами дійсності перешкоджає:
EVM використовує модель на основі стека, тоді як Efficiency Proof є більш ефективним для моделі на основі реєстру. Природа EVM, що базується на стеку, ускладнює перевірку правильності його виконання та надання прямої підтримки рідного інструментального ланцюжка.
Схема сховища Ethereum значною мірою покладається на Keccak і велике Merkle Patricia Tree, обидва з яких є поганими для доказів дійсності та накладають велике навантаження на докази. Наприклад, Keccak дуже швидкий для архітектури x86 (на якій ми зазвичай запускаємо EVM), але для перевірки потрібно 90 тисяч кроків (вбудована спеціальна збірка). У той час як Педерсен (функція хешування, дружня до zk) вимагає 32 кроків. Навіть із рекурсивним стисненням використання Keccak у zkEVM означає багато ресурсів перевірки, які зрештою оплачуються користувачем.
Як наслідок, різні zkEVM розроблені для забезпечення різних рівнів підтримки інструментів Ethereum – чим більше zkEVM сумісний з Ethereum, тим нижча його продуктивність. (Щоб дізнатися більше про типи zkEVM, перейдіть до кінця статті.)
Підхід Cairo-VM
Рішення zkEVM витрачає багато часу на розробку, щоб «примусити EVM працювати для Validity Rollups», віддаючи пріоритет сумісності над довгостроковою продуктивністю та масштабованістю. Є ще один варіант: використати абсолютно нову виділену віртуальну машину та додати підтримку інструментів Ethereum зверху як додатковий рівень. Це підхід, застосований Starknet, зведеним пакетом перевірки без дозволу, запущеним у листопаді 2021 року. Starknet є першим Validity Rollup, який пропонує платформу смарт-контрактів загального призначення в повністю комбінованій мережі.
Starknet використовує однойменну мову високого рівня Cairo-VM (CVM). Cairo-VM — це віртуальна машина, розроблена для ефективної генерації доказів дійсності виконання програми.
Використовуючи Cairo (віртуальну машину та мову), ми маємо:
Доказ ефективності оптимізації - кожна інструкція має дійсне алгебраїчне представлення
Rust-подібна мова для написання перевірених програм
Проміжне представлення (Sierra) між Cairo високого рівня та збіркою Cairo (інструкції VM), що дозволяє ефективно виконувати код Cairo
Розробка нової мови дозволяє пристосувати її до конкретних потреб, які вона має задовольнити, і оснастити її функціями, які задовольняють раніше незадоволені потреби.
Каїр і плюралізм кодування
Щоб створити доказ дійсності певного обчислення, обчислення спочатку має бути виражено як ряд математичних обмежень, що описують обчислення. Процес може бути складним через проблему оптимізації обчислень для підвищення ефективності та потребу в спеціальних інструментах.
Мова Cairo спочатку була розроблена, щоб спростити це завдання та полегшити додавання функціональності та складної бізнес-логіки до StarkEx. Програми Cairo компілюються в алгебраїчний машинний код – послідовність чисел – який виконується фіксованою віртуальною машиною. За допомогою Cairo вся складність генерування математичних обмежень, що описують обчислення — складна проблема доказів дійсності — абстрагується та охоплюється фіксованим набором обмежень (загалом менше 50 обмежень). У результаті розробники можуть використовувати докази дійсності, щоб розширювати свої програми без необхідності розуміти базову математику та інфраструктуру, просто написавши код із використанням синтаксису, з яким вони знайомі.
Starknet — це інновації, і це відображено в його різноманітному підході до кодування. Здатність Cairo оптимально масштабуватися за допомогою STARK не обмежується лише тими, хто пише контракти в Каїрі. Розробники можуть вибрати метод, який їм найкраще підходить:
Напишіть код нативно в Cairo: з випуском Cairo 1.0 розробники тепер можуть використовувати ергономічну та безпечну мову Rust, яка робить написання логіки програм легшим і менш схильним до помилок.
Сумісність із Solidity: розробники Solidity можуть писати код, який може використовувати Cairo VM. Цей підхід забезпечує розробникам досвід, подібний до Ethereum, і робить розумні контракти Solidity переносимими на Starknet. Є два способи досягти цього:
Переклад: переклад відноситься до процесу перетворення вихідного коду, написаного однією мовою програмування, на іншу мову. Команда Nethermind створила транспілер Warp для транспіляції коду Solidity у Cairo. Warp робить смарт-контракти Solidity переносними на Starknet, фактично роблячи їх типом 4 zkEVM. Його використовували для перекладу та розгортання контрактів Uniswap з мінімальними змінами.
zkEVM на Starknet: віртуальну машину Cairo можна використовувати для підтвердження виконання іншої віртуальної машини. Kakarot — це zkEVM, написаний у Cairo, який можна використовувати для запуску смарт-контрактів Ethereum у Starknet. Cairo VM і zkEVM не є конкуруючими підходами, ми можемо мати як Cairo VM, так і zkEVM замість того, щоб вибирати між Cairo VM і zkEVM!
Незважаючи на короткий термін існування, Cairo є четвертою за популярністю мовою смарт-контрактів від TVL і отримала понад 350 мільйонів доларів фінансування.
Підведіть підсумки
zkEVM має на меті відтворити середовище Ethereum у зведеному вигляді та дозволити розробникам використовувати знайомі інструменти Ethereum. Однак цей підхід перешкоджає повному потенціалу доказів дійсності та може потребувати ресурсів.
Cairo VM розроблено для систем перевірки дійсності без обмежень EVM. Він підтримується новою, безпечною та ергономічною мовою програмування, натхненною Rust, під назвою Cairo 1.0, утворюючи потужний інструмент, спрямований на досягнення максимальної ефективності шляхом масштабування Ethereum за допомогою доказів STARK.
Було цікаво спостерігати, чого Cairo досягає щотижня, і зростання різноманітних варіантів для розробників, таких як Kakarot zkEVM і Warp. Оскільки Starknet dApp починає виробництво, демонструючи потужність Cairo, ми віримо, що в майбутньому його використовуватимуть для більш амбітних проектів.
Завдяки трьом напрямкам масштабування STARK, описаним вище, та іншим, які, без сумніву, будуть доступні в найближчі місяці, розробники тепер мають безпрецедентний контроль над масштабуванням блокчейну.
Переглянути оригінал
Контент має виключно довідковий характер і не є запрошенням до участі або пропозицією. Інвестиційні, податкові чи юридичні консультації не надаються. Перегляньте Відмову від відповідальності , щоб дізнатися більше про ризики.
Стаття, щоб зрозуміти роль Validity Rollups і Cairo VM
**Автор:**StarkWare
Компіляція: Bump Man
TL;DR
Зведення — гаряча тема цього року, коли йдеться про масштабування Ethereum. Серед різних типів зведень ми вважаємо, що Validity Rollups (VR), також відомі як zk-rollups, є найперспективнішим способом підвищення пропускної здатності Ethereum у безпечний і децентралізований спосіб. В основі цього рішення для масштабування лежить перевірене обчислення з використанням доказів дійсності. Ось як вони працюють:
Зведені версії
*Примітка: зведені пакети перевірки часто неправильно називають зведеними пакетами з нульовим знанням, але це неточно. Більшість зведених пакетів перевірки не використовують ZKP і не використовуються з метою забезпечення конфіденційності. Тому більш точним є термін «Зведення перевірки». *
віртуальна машина поза мережею
Перш ніж рухатися далі, перше запитання, на яке ми маємо відповісти: що таке віртуальна машина (VM)? Простіше кажучи, це середовище, в якому можуть запускатися програми, як на Mac з операційною системою Windows. Він переходить між станами після виконання обчислень на деяких входах. Віртуальна машина Ethereum (EVM) — це віртуальна машина, яка запускає смарт-контракти Ethereum.
Віртуальна машина з нульовим знанням (zkVM) — це середовище виконання програми, яке разом із вихідними даними програми дозволяє генерувати докази дійсності, які можна легко перевірити. Це підтвердження дійсності доводить, що програма була виконана правильно. Коли використовується термін «zkEVM», він зазвичай відноситься до агрегації, яка використовує віртуальну машину Ethereum (EVM) і може засвідчити виконання EVM. Цей термін може вводити в оману, оскільки сам EVM не генерує ці докази; натомість докази генеруються окремим механізмом доказів, який починається з результатів виконання EVM. Крім того, ці докази стосуються достовірності, а не конфіденційності, тому вони не є доказами з нульовим знанням. Тим не менш, для послідовності в цій статті ми будемо дотримуватися традиційного терміну «зкЕВМ».
Хоча всі пакети Validity Rollup спрямовані на масштабування Ethereum за допомогою підтвердження дійсності, вони відрізняються вибором віртуальних машин для виконання транзакцій поза мережею. Багато Validity Rollups вирішують відтворити дизайн EVM (звідси термін «зведені zkEVM»), намагаючись відтворити Ethereum на L2. Starknet використовує новий тип віртуальної машини — Cairo VM (CVM), спеціально розроблений для оптимізації ефективності підтвердження дійсності.
Ці два методи мають свої переваги та недоліки, але zkEVM обмінює продуктивність на сумісність з Ethereum, тоді як Cairo VM надає перевагу продуктивності над сумісністю та масштабованістю.
підхід zkEVM
zkEVM — це зведений пакет перевірки, метою якого є повне перенесення досвіду Ethereum у блокчейни рівня 2. Він має на меті відтворити середовище розробника Ethereum як зведений пакет. Завдяки zkEVM розробникам не потрібно змінювати свій код або відмовлятися від своїх інструментів EVM (і смарт-контрактів) під час написання смарт-контрактів або перенесення смарт-контрактів на більш масштабовані рішення.
Головним недоліком цього підходу є те, що він зменшує потенціал масштабування доказів дійсності. Оскільки zkEVM націлений на сумісність з Ethereum, він повільніший і потребує більше ресурсів. На відміну від CVM, EVM не був розроблений з метою перевірки ефективності. Це обмежує використання оптимізацій, які можуть підвищити ефективність і масштабованість, що зрештою впливає на загальну продуктивність системи.
Доказовість EVM
Основна проблема підходу zkEVM корениться в початковому плані EVM - він не був розроблений для роботи в контексті підтвердження дійсності. У результаті спроби віддзеркалити його функціональність не вдається розкрити повний потенціал доказів дійсності, що призводить до неоптимального рівня ефективності. Ця неефективність зрештою знижує загальну продуктивність системи. Сумісність EVM з доказами дійсності перешкоджає:
EVM використовує модель на основі стека, тоді як Efficiency Proof є більш ефективним для моделі на основі реєстру. Природа EVM, що базується на стеку, ускладнює перевірку правильності його виконання та надання прямої підтримки рідного інструментального ланцюжка.
Схема сховища Ethereum значною мірою покладається на Keccak і велике Merkle Patricia Tree, обидва з яких є поганими для доказів дійсності та накладають велике навантаження на докази. Наприклад, Keccak дуже швидкий для архітектури x86 (на якій ми зазвичай запускаємо EVM), але для перевірки потрібно 90 тисяч кроків (вбудована спеціальна збірка). У той час як Педерсен (функція хешування, дружня до zk) вимагає 32 кроків. Навіть із рекурсивним стисненням використання Keccak у zkEVM означає багато ресурсів перевірки, які зрештою оплачуються користувачем.
Як наслідок, різні zkEVM розроблені для забезпечення різних рівнів підтримки інструментів Ethereum – чим більше zkEVM сумісний з Ethereum, тим нижча його продуктивність. (Щоб дізнатися більше про типи zkEVM, перейдіть до кінця статті.)
Підхід Cairo-VM
Рішення zkEVM витрачає багато часу на розробку, щоб «примусити EVM працювати для Validity Rollups», віддаючи пріоритет сумісності над довгостроковою продуктивністю та масштабованістю. Є ще один варіант: використати абсолютно нову виділену віртуальну машину та додати підтримку інструментів Ethereum зверху як додатковий рівень. Це підхід, застосований Starknet, зведеним пакетом перевірки без дозволу, запущеним у листопаді 2021 року. Starknet є першим Validity Rollup, який пропонує платформу смарт-контрактів загального призначення в повністю комбінованій мережі.
Starknet використовує однойменну мову високого рівня Cairo-VM (CVM). Cairo-VM — це віртуальна машина, розроблена для ефективної генерації доказів дійсності виконання програми.
Використовуючи Cairo (віртуальну машину та мову), ми маємо:
Доказ ефективності оптимізації - кожна інструкція має дійсне алгебраїчне представлення
Rust-подібна мова для написання перевірених програм
Проміжне представлення (Sierra) між Cairo високого рівня та збіркою Cairo (інструкції VM), що дозволяє ефективно виконувати код Cairo
Розробка нової мови дозволяє пристосувати її до конкретних потреб, які вона має задовольнити, і оснастити її функціями, які задовольняють раніше незадоволені потреби.
Каїр і плюралізм кодування
Щоб створити доказ дійсності певного обчислення, обчислення спочатку має бути виражено як ряд математичних обмежень, що описують обчислення. Процес може бути складним через проблему оптимізації обчислень для підвищення ефективності та потребу в спеціальних інструментах.
Мова Cairo спочатку була розроблена, щоб спростити це завдання та полегшити додавання функціональності та складної бізнес-логіки до StarkEx. Програми Cairo компілюються в алгебраїчний машинний код – послідовність чисел – який виконується фіксованою віртуальною машиною. За допомогою Cairo вся складність генерування математичних обмежень, що описують обчислення — складна проблема доказів дійсності — абстрагується та охоплюється фіксованим набором обмежень (загалом менше 50 обмежень). У результаті розробники можуть використовувати докази дійсності, щоб розширювати свої програми без необхідності розуміти базову математику та інфраструктуру, просто написавши код із використанням синтаксису, з яким вони знайомі.
Starknet — це інновації, і це відображено в його різноманітному підході до кодування. Здатність Cairo оптимально масштабуватися за допомогою STARK не обмежується лише тими, хто пише контракти в Каїрі. Розробники можуть вибрати метод, який їм найкраще підходить:
Напишіть код нативно в Cairo: з випуском Cairo 1.0 розробники тепер можуть використовувати ергономічну та безпечну мову Rust, яка робить написання логіки програм легшим і менш схильним до помилок.
Сумісність із Solidity: розробники Solidity можуть писати код, який може використовувати Cairo VM. Цей підхід забезпечує розробникам досвід, подібний до Ethereum, і робить розумні контракти Solidity переносимими на Starknet. Є два способи досягти цього:
Незважаючи на короткий термін існування, Cairo є четвертою за популярністю мовою смарт-контрактів від TVL і отримала понад 350 мільйонів доларів фінансування.
Підведіть підсумки
zkEVM має на меті відтворити середовище Ethereum у зведеному вигляді та дозволити розробникам використовувати знайомі інструменти Ethereum. Однак цей підхід перешкоджає повному потенціалу доказів дійсності та може потребувати ресурсів.
Cairo VM розроблено для систем перевірки дійсності без обмежень EVM. Він підтримується новою, безпечною та ергономічною мовою програмування, натхненною Rust, під назвою Cairo 1.0, утворюючи потужний інструмент, спрямований на досягнення максимальної ефективності шляхом масштабування Ethereum за допомогою доказів STARK.
Було цікаво спостерігати, чого Cairo досягає щотижня, і зростання різноманітних варіантів для розробників, таких як Kakarot zkEVM і Warp. Оскільки Starknet dApp починає виробництво, демонструючи потужність Cairo, ми віримо, що в майбутньому його використовуватимуть для більш амбітних проектів.
Завдяки трьом напрямкам масштабування STARK, описаним вище, та іншим, які, без сумніву, будуть доступні в найближчі місяці, розробники тепер мають безпрецедентний контроль над масштабуванням блокчейну.