Джерело: Ефективне масштабування Ethereum; компіляція: китайська спільнота Starknet
огляд
Цього року зведення було гарячою темою щодо масштабування Ethereum. Серед різних типів зведених даних ми вважаємо, що Validity Proof Rollup (надалі VR, або zk-rollup) є найперспективнішим рішенням розширення для підвищення пропускної здатності Ethereum безпечним і децентралізованим способом. Основою цієї схеми розширення є використання доказів дійсності для обчислень, які можна перевірити. Ось як це працює:
Validity Proof Rollup
Зверніть увагу: зведені пакети підтвердження дійсності часто помилково називають зведеними пакетами з нульовим знанням (zkRollup), що є неточним. Більшість Validity Proofs Rollup не використовує докази з нульовим знанням і не використовується для забезпечення конфіденційності. Таким чином, термін «зведене підтвердження дійсності» є точнішим.
Перш ніж йти далі, нам потрібно відповісти на перше запитання: що таке віртуальна машина (VM)? Коротше кажучи, віртуальна машина — це середовище, в якому можуть працювати програми, наприклад операційна система Windows, що працює на Mac. Віртуальна машина переходить між станами після виконання обчислень на деяких вхідних даних. Віртуальна машина Ethereum (EVM) — це віртуальна машина, яка запускає смарт-контракти Ethereum.
Віртуальна машина з нульовим знанням (zkVM) — це середовище виконання програми, яке разом із виводом програми генерує легко перевірені докази дійсності. Доказ дійсності використовується для підтвердження того, що програма була виконана правильно. Коли використовується термін «zkEVM», він зазвичай стосується зведеного пакету, який запускає віртуальну машину Ethereum (EVM) і може засвідчити виконання EVM. Ця термінологія може вводити в оману, оскільки сама EVM не може генерувати ці докази; натомість докази створюються окремим механізмом перевірки, який приймає результат виконання EVM як початкову точку. Крім того, усі наведені вище докази пов’язані з дійсністю та не мають нічого спільного з конфіденційністю. Тому його не можна назвати доказом нульового знання, якщо бути точним. Для послідовності в цій статті досі використовується традиційний термін «зкЕВМ».
Хоча всі зведені пакети Proof-of-Validity спрямовані на масштабування Ethereum за допомогою Proof-of-Validity, різні схеми роблять різні вибори щодо того, як віртуальна машина виконує транзакції поза мережею. Багато доказів обґрунтованості Rollup вирішив відтворити дизайн EVM (звідси назва «zkEVM rollup»), намагаючись відтворити Ethereum на L2 rollup. Starknet використовує Cairo VM (CVM), нову віртуальну машину, призначену для оптимізації ефективності підтвердження дійсності.
Наведені вище два методи мають свої переваги, недоліки та компроміси, але zkEVM жертвує продуктивністю заради сумісності з Ethereum, тоді як Cairo VM ставить продуктивність вище сумісності та надає пріоритет масштабованості.
zkEVM — це зведений пакет для підтвердження дійсності, призначений для повного впровадження досвіду Ethereum у блокчейні L2. Мета полягає в тому, щоб відтворити середовище розробника Ethereum у Rollup. Завдяки zkEVM розробникам не потрібно коригувати код або відмовлятися від оригінальних інструментів EVM (і смарт-контрактів) під час написання або перенесення смарт-контрактів на рішення розширення.
Цей підхід має ключовий недолік, який зменшує масштабованість доказів дійсності. Завдяки зосередженню на сумісності з Ethereum, zkEVM є повільнішим і потребує більше ресурсів. На відміну від CVM, EVM не розроблено з метою перевірки ефективності. Це обмежує використання оптимізацій для підвищення ефективності та масштабованості, що зрештою впливає на загальну продуктивність системи.
Основна проблема підходу zkEVM полягає у вкоріненому оригінальному плані EVM, який спочатку не був розроблений для роботи в середовищі підтвердження дійсності. Тому, якщо всі зусилля спрямовані на реалізацію функцій Ethereum, повний потенціал доказу дійсності не може бути вивільнений, що призведе до незадовільної ефективності. Ця неефективність зрештою знижує загальну продуктивність системи. Сумісність EVM з доказами дійсності перешкоджає:
Тому різні типи zkEVM розроблені для забезпечення різних рівнів підтримки інструментів Ethereum, але чим вища сумісність zkEVM з Ethereum, тим нижча продуктивність. (більше типів zkEVM див. у кінці статті)
Рішення zkEVM витратило багато часу на розробку, щоб «зробити EVM придатним для Validity Proof Rollup», надаючи пріоритет сумісності над довгостроковою продуктивністю та масштабованістю. Є інший варіант: прийняти нову виділену віртуальну машину та додати додатковий рівень для підтримки інструментів Ethereum. Саме цей крок робить Starknet, запускаючи зведене підтвердження дійсності без дозволу в листопаді 2021 року. Starknet — це перший зведений пакет із підтвердженням дійсності, який реалізує платформу смарт-контрактів загального призначення в повністю комбінованій мережі.
Starknet приймає Cairo-VM (CVM) і створює однойменну мову високого рівня Cairo. Cairo-VM призначений для ефективної генерації доказів валідності виконання програми.
За допомогою Cairo (VM і мова програмування) можна:
Розробка абсолютно нової мови може бути пристосована до конкретних потреб, може включати функції, які раніше були недоступні, і відповідати новим потребам.
Щоб створити доказ дійсності певного обчислення, це обчислення спочатку має бути виражено як ряд математичних обмежень, що описують обчислення. Процес складний, складність полягає в оптимізації розрахунків для підвищення ефективності, і потрібні спеціальні інструменти.
Мова Cairo була розроблена, щоб спростити це завдання, щоб StarkEx міг легко додати функціональність і складну бізнес-логіку. Програми Cairo скомпільовані в алгебраїчний машинний код, послідовність чисел, що виконується однією фіксованою VM. У Cairo складний процес генерування математичних обмежень, що описують обчислення (дуже складний для доказів дійсності), абстрагується та виражається у вигляді фіксованого набору обмежень (загалом менше 50 обмежень). Це дозволяє розробникам розширювати додатки доказами дійсності, пишучи код у знайомому синтаксисі, не розуміючи основної математики та інфраструктури.
Відданість Starknet інноваціям очевидна в її підході до плюралізації коду. Cairo використовує технологію STARK для досягнення оптимальних функцій розширення, не обмежуючись написанням контрактів з місцевим середовищем Cairo. Розробники також можуть вибрати найбільш підходящий метод:
Незважаючи на те, що Cairo не існує вже давно, згідно з рейтингом TVL, Cairo є четвертою за популярністю мовою програмування смарт-контрактів з оцінкою понад 350 мільйонів доларів.
zkEVM має на меті відтворити середовище розробника Ethereum у Rollup і дозволити розробникам використовувати знайомі інструменти Ethereum. Але такий підхід обмежує потенціал доказів дійсності та вимагає ресурсів.
На Cairo VM, призначену для підтвердження дійсності, не поширюються обмеження EVM. Cairo VM підтримує Cairo 1.0. Натхненний мовою Rust, Cairo 1.0 більше відповідає звичкам розробників і є безпечнішим, утворюючи потужний інструмент, призначений для використання STARK для підтвердження ефективного розширення Ethereum.
Захоплююче спостерігати, як Cairo розвивається щотижня, і можливості для таких розробників, як Kakarot zkEVM і Warp, зростають. Оскільки Starknet dApps у виробництві демонструє силу Cairo, ми твердо віримо, що в майбутньому Cairo породить видатні проекти, яких ніколи раніше не бачили.
Вище було описано три шляхи розширення SATRK, і, без сумніву, у найближчі місяці з’являться нові інновації. Тепер розробники мають безпрецедентний контроль над масштабуванням блокчейнів.
Віталік ділить зкЕВМ на чотири основних типи: