Валідіум
Валідіум — це рішення для масштабування, яке забезпечує цілісність транзакцій за допомогою доказів дійсності, як і ZK-ролапи, але не зберігає дані транзакцій у головній мережі Етеріуму. Хоча позамережева доступність даних створює певні компроміси, вона може призвести до значних покращень масштабованості (валідіуми можуть обробляти ~9000 транзакцій або більше за секунду (opens in a new tab)).
Передумови
Ви повинні прочитати та зрозуміти наші сторінки про масштабування Етеріуму та рівень 2 (l2).
Що таке валідіум?
Валідіуми — це рішення для масштабування, які використовують позамережеву доступність даних та обчислення, призначені для покращення пропускної здатності шляхом обробки транзакцій поза головною мережею Етеріуму. Як і ролапи з нульовим розголошенням (ZK-ролапи), валідіуми публікують для перевірки позамережевих транзакцій в Етеріумі. Це запобігає недійсним переходам стану та посилює гарантії безпеки ланцюга валідіуму.
Ці «докази дійсності» можуть бути у формі ZK-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) або ZK-STARKs (Zero-Knowledge Scalable Transparent ARgument of Knowledge). Детальніше про доведення з нульовим розголошенням (opens in a new tab).
Кошти, що належать користувачам валідіуму, контролюються смарт-контрактом в Етеріумі. Валідіуми пропонують майже миттєве виведення коштів, подібно до ZK-ролапів; щойно доказ дійсності для запиту на виведення буде перевірено в Головній мережі, користувачі зможуть вивести кошти, надавши докази Меркла. Доказ Меркла підтверджує включення транзакції виведення користувача до перевіреного пакету транзакцій, дозволяючи ончейн-контракту обробити виведення.
Однак кошти користувачів валідіуму можуть бути заморожені, а виведення — обмежене. Це може статися, якщо менеджери доступності даних у ланцюзі валідіуму приховують позамережеві дані стану від користувачів. Без доступу до даних транзакцій користувачі не можуть обчислити доказ Меркла, необхідний для підтвердження права власності на кошти та виконання виведення.
Це головна відмінність між валідіумами та ZK-ролапами — їхні позиції у спектрі доступності даних. Обидва рішення по-різному підходять до зберігання даних, що має наслідки для безпеки та бездовірності.
Як валідіуми взаємодіють з Етеріумом?
Валідіуми — це протоколи масштабування, побудовані поверх існуючого ланцюга Етеріуму. Хоча він виконує транзакції позамережево, ланцюг валідіуму адмініструється набором смарт-контрактів, розгорнутих у Головній мережі, зокрема:
-
Контракт верифікатора: Контракт верифікатора перевіряє дійсність доказів, поданих оператором валідіуму під час оновлення стану. Це включає докази дійсності, що підтверджують правильність позамережевих транзакцій, і докази доступності даних, що підтверджують існування позамережевих даних транзакцій.
-
Головний контракт: Головний контракт зберігає фіксації стану (корені Меркла), подані виробниками блоків, і оновлює стан валідіуму після того, як доказ дійсності буде перевірено ончейн. Цей контракт також обробляє депозити та виведення з ланцюга валідіуму.
Валідіуми також покладаються на головний ланцюг Етеріуму для наступного:
Остаточна фіксація
Транзакції, виконані у валідіумі, не можуть бути повністю підтверджені, доки батьківський ланцюг не перевірить їхню дійсність. Усі операції, проведені у валідіумі, зрештою повинні бути остаточно зафіксовані в Головній мережі. Блокчейн Етеріуму також надає «гарантії остаточної фіксації» для користувачів валідіуму, що означає, що позамережеві транзакції не можуть бути скасовані або змінені після їхньої фіксації ончейн.
Безпека
Етеріум, діючи як рівень остаточної фіксації, також гарантує дійсність переходів стану у валідіумі. Позамережеві транзакції, виконані в ланцюзі валідіуму, перевіряються за допомогою смарт-контракту на базовому рівні Етеріуму.
Якщо ончейн-контракт верифікатора визнає доказ недійсним, транзакції відхиляються. Це означає, що оператори повинні задовольнити умови дійсності, встановлені протоколом Етеріуму, перш ніж оновлювати стан валідіуму.
Як працює валідіум?
Транзакції
Користувачі надсилають транзакції оператору — вузлу, відповідальному за виконання транзакцій у ланцюзі валідіуму. Деякі валідіуми можуть використовувати єдиного оператора для виконання ланцюга або покладатися на механізм доказу частки (PoS) для ротації операторів.
Оператор об'єднує транзакції в пакет і надсилає його до схеми доведення для перевірки. Схема доведення приймає пакет транзакцій (та інші відповідні дані) як вхідні дані та видає доказ дійсності, що підтверджує правильність виконання операцій.
Фіксації стану
Стан валідіуму хешується як дерево Меркла, корінь якого зберігається в головному контракті в Етеріумі. Корінь Меркла, також відомий як корінь стану, діє як криптографічна фіксація поточного стану акаунтів і балансів у валідіумі.
Щоб виконати оновлення стану, оператор повинен обчислити новий корінь стану (після виконання транзакцій) і подати його до ончейн-контракту. Якщо доказ дійсності підтверджується, запропонований стан приймається, і валідіум перемикається на новий корінь стану.
Депозити та виведення
Користувачі переміщують кошти з Етеріуму до валідіуму, вносячи ETH (або будь-який ERC-сумісний токен) в ончейн-контракт. Контракт передає подію депозиту до валідіуму позамережево, де на адресу користувача зараховується сума, що дорівнює його депозиту. Оператор також включає цю транзакцію депозиту в новий пакет.
Щоб повернути кошти до Головної мережі, користувач валідіуму ініціює транзакцію виведення та надсилає її оператору, який перевіряє запит на виведення та включає його в пакет. Активи користувача в ланцюзі валідіуму також знищуються, перш ніж вони зможуть вийти із системи. Щойно доказ дійсності, пов'язаний із пакетом, буде перевірено, користувач може викликати головний контракт, щоб вивести залишок свого початкового депозиту.
Як механізм захисту від цензури, протокол валідіуму дозволяє користувачам виводити кошти безпосередньо з контракту валідіуму, не звертаючись до оператора. У цьому випадку користувачам потрібно надати доказ Меркла контракту верифікатора, що підтверджує включення акаунта до кореня стану. Якщо доказ приймається, користувач може викликати функцію виведення головного контракту, щоб вивести свої кошти з валідіуму.
Подання пакету
Після виконання пакету транзакцій оператор подає відповідний доказ дійсності до контракту верифікатора та пропонує новий корінь стану головному контракту. Якщо доказ дійсний, головний контракт оновлює стан валідіуму та фіналізує результати транзакцій у пакеті.
На відміну від ZK-ролапу, виробники блоків у валідіумі не зобов'язані публікувати дані транзакцій для пакетів транзакцій (лише заголовки блоків). Це робить валідіум суто позамережевим протоколом масштабування, на відміну від «гібридних» протоколів масштабування (тобто рівня 2 (l2)), які публікують дані стану в головному ланцюзі Етеріуму, використовуючи дані блобів, calldata або їх комбінацію.
Доступність даних
Як зазначалося, валідіуми використовують позамережеву модель доступності даних, де оператори зберігають усі дані транзакцій поза головною мережею Етеріуму. Низький обсяг ончейн-даних валідіуму покращує масштабованість (пропускна здатність не обмежується потужністю обробки даних Етеріуму) і знижує комісії для користувачів (вартість публікації даних ончейн нижча).
Однак позамережева доступність даних створює проблему: дані, необхідні для створення або перевірки доказів Меркла, можуть бути недоступними. Це означає, що користувачі можуть не мати змоги вивести кошти з ончейн-контракту, якщо оператори діятимуть зловмисно.
Різні рішення валідіуму намагаються розв'язати цю проблему шляхом децентралізації зберігання даних стану. Це передбачає примушування виробників блоків надсилати базові дані «менеджерам доступності даних», відповідальним за зберігання позамережевих даних і надання їх користувачам за запитом.
Менеджери доступності даних у валідіумі підтверджують доступність даних для позамережевих транзакцій, підписуючи кожен пакет валідіуму. Ці підписи є формою «доказу доступності», який ончейн-контракт верифікатора перевіряє перед схваленням оновлень стану.
Валідіуми відрізняються своїм підходом до управління доступністю даних. Деякі покладаються на довірені сторони для зберігання даних стану, тоді як інші використовують випадково призначених валідаторів для цього завдання.
Комітет доступності даних (DAC)
Щоб гарантувати доступність позамережевих даних, деякі рішення валідіуму призначають групу довірених організацій, спільно відомих як комітет доступності даних (DAC), для зберігання копій стану та надання доказів доступності даних. DAC легше реалізувати, і вони вимагають менше координації, оскільки кількість учасників невелика.
Однак користувачі повинні довіряти DAC у тому, що вони зроблять дані доступними за потреби (наприклад, для генерації доказів Меркла). Існує ймовірність того, що члени комітетів доступності даних будуть скомпрометовані зловмисником (opens in a new tab), який потім зможе приховати позамережеві дані.
Детальніше про комітети доступності даних у валідіумах (opens in a new tab).
Доступність даних із заставою
Інші валідіуми вимагають від учасників, яким доручено зберігати офлайн-дані, стейкати (тобто блокувати) токени в смарт-контракті, перш ніж взяти на себе свої ролі. Цей стейк слугує «заставою» для гарантування чесної поведінки серед менеджерів доступності даних і зменшує припущення довіри. Якщо ці учасники не зможуть довести доступність даних, застава підлягає слешингу.
У схемі доступності даних із заставою будь-хто може бути призначений для зберігання позамережевих даних після надання необхідного стейку. Це розширює пул прийнятних менеджерів доступності даних, зменшуючи централізацію, яка впливає на комітети доступності даних (DAC). Що ще важливіше, цей підхід покладається на криптоекономічні стимули для запобігання зловмисній діяльності, що значно безпечніше, ніж призначення довірених сторін для захисту офлайн-даних у валідіумі.
Детальніше про доступність даних із заставою у валідіумах (opens in a new tab).
Волішини та валідіум
Валідіуми пропонують багато переваг, але мають компроміси (найбільш помітний — доступність даних). Але, як і багато рішень для масштабування, валідіуми підходять для конкретних випадків використання — саме тому були створені волішини.
Волішини поєднують ZK-ролап і ланцюг валідіуму та дозволяють користувачам перемикатися між двома рішеннями для масштабування. Завдяки волішинам користувачі можуть скористатися перевагами позамережевої доступності даних валідіуму для певних транзакцій, зберігаючи при цьому свободу переходу на рішення з ончейн-доступністю даних (ZK-ролап) за потреби. Це, по суті, дає користувачам свободу вибору компромісів, продиктованих їхніми унікальними обставинами.
Децентралізована біржа (DEX) може віддати перевагу використанню масштабованої та приватної інфраструктури валідіуму для торгівлі на великі суми. Вона також може використовувати ZK-ролап для користувачів, які хочуть вищих гарантій безпеки та бездовірності ZK-ролапу.
Валідіуми та сумісність з EVM
Як і ZK-ролапи, валідіуми здебільшого підходять для простих застосунків, таких як обмін токенів і платежі. Підтримку загальних обчислень і виконання смарт-контрактів серед валідіумів важко реалізувати, враховуючи значні накладні витрати на доведення інструкцій EVM у схемі доведення з нульовим розголошенням.
Деякі проєкти валідіуму намагаються обійти цю проблему шляхом компіляції EVM-сумісних мов (наприклад, Solidity, Vyper) для створення спеціального байт-коду, оптимізованого для ефективного доведення. Недоліком цього підходу є те, що нові віртуальні машини, дружні до доведень з нульовим розголошенням, можуть не підтримувати важливі коди операцій EVM, і розробникам доводиться писати безпосередньо мовою високого рівня для оптимального досвіду. Це створює ще більше проблем: змушує розробників створювати децентралізовані застосунки (dapps) з абсолютно новим стеком розробки та порушує сумісність із поточною інфраструктурою Етеріуму.
Деякі команди, однак, намагаються оптимізувати існуючі коди операцій EVM для схем ZK-доведення. Це призведе до розробки віртуальної машини Етеріуму з нульовим розголошенням (zkEVM) — EVM-сумісної віртуальної машини, яка створює докази для перевірки правильності виконання програми. Завдяки zkEVM ланцюги валідіуму можуть виконувати смарт-контракти позамережево та подавати докази дійсності для перевірки позамережевих обчислень (без необхідності їх повторного виконання) в Етеріумі.
Детальніше про zkEVM (opens in a new tab).
Як валідіуми масштабують Етеріум?
1. Позамережеве зберігання даних
Проєкти масштабування рівня 2 (l2), такі як оптимістичні ролапи та ZK-ролапи, обмінюють нескінченну масштабованість суто позамережевих протоколів масштабування (наприклад, Плазма) на безпеку, публікуючи деякі дані транзакцій на рівні 1 (l1). Але це означає, що властивості масштабованості ролапів обмежені пропускною здатністю даних у головній мережі Етеріуму (саме з цієї причини шардинг даних пропонує покращити ємність зберігання даних Етеріуму).
Валідіуми досягають масштабованості, зберігаючи всі дані транзакцій позамережево та публікуючи лише фіксації стану (і докази дійсності) під час передачі оновлень стану до головного ланцюга Етеріуму. Однак наявність доказів дійсності дає валідіумам вищі гарантії безпеки, ніж іншим суто позамережевим рішенням для масштабування, включаючи Плазму та сайдчейни. Зменшуючи обсяг даних, які Етеріум має обробити перед перевіркою позамережевих транзакцій, конструкції валідіуму значно розширюють пропускну здатність у Головній мережі.
2. Рекурсивні докази
Рекурсивний доказ — це доказ дійсності, який перевіряє дійсність інших доказів. Ці «докази доказів» генеруються шляхом рекурсивного агрегування кількох доказів, доки не буде створено один остаточний доказ, що перевіряє всі попередні докази. Рекурсивні докази масштабують швидкість обробки блокчейну шляхом збільшення кількості транзакцій, які можна перевірити за один доказ дійсності.
Зазвичай кожен доказ дійсності, який оператор валідіуму подає до Етеріуму для перевірки, підтверджує цілісність одного блоку. Тоді як один рекурсивний доказ може бути використаний для підтвердження дійсності кількох блоків валідіуму одночасно — це можливо, оскільки схема доведення може рекурсивно агрегувати кілька доказів блоків в один остаточний доказ. Якщо ончейн-контракт верифікатора приймає рекурсивний доказ, усі базові блоки фіналізуються негайно.
Переваги та недоліки валідіуму
| Переваги | Недоліки |
|---|---|
| Докази дійсності забезпечують цілісність позамережевих транзакцій і запобігають фіналізації операторами недійсних оновлень стану. | Створення доказів дійсності вимагає спеціального обладнання, що створює ризик централізації. |
| Підвищує ефективність капіталу для користувачів (відсутність затримок при виведенні коштів назад до Етеріуму). | Обмежена підтримка загальних обчислень/смарт-контрактів; для розробки потрібні спеціалізовані мови. |
| Не вразливий до певних економічних атак, з якими стикаються системи на основі доказів шахрайства у застосунках з високою цінністю. | Висока обчислювальна потужність, необхідна для генерації ZK-доказів; нерентабельно для застосунків з низькою пропускною здатністю. |
| Знижує комісії за газ для користувачів завдяки тому, що дані виклику не публікуються в головній мережі Етеріуму. | Повільніший час суб'єктивної фінальності (10-30 хв для генерації ZK-доказу), але швидший до повної фінальності, оскільки немає затримки на час оскарження. |
| Підходить для конкретних випадків використання, таких як торгівля або блокчейн-ігри, які надають пріоритет приватності транзакцій і масштабованості. | Користувачам може бути відмовлено у виведенні коштів, оскільки генерація доказів Меркла про право власності вимагає постійної доступності позамережевих даних. |
| Позамережева доступність даних забезпечує вищий рівень пропускної здатності та збільшує масштабованість. | Модель безпеки покладається на припущення довіри та криптоекономічні стимули, на відміну від ZK-ролапів, які покладаються виключно на криптографічні механізми безпеки. |
Використання валідіуму/волішинів
Кілька проєктів надають реалізації валідіуму та волішинів, які ви можете інтегрувати у свої децентралізовані застосунки (dapps):
StarkWare StarkEx — StarkEx — це рішення для масштабованості рівня 2 (l2) Етеріуму, яке базується на доказах дійсності. Воно може працювати в режимах доступності даних ZK-ролапу або валідіуму.
Matter Labs zkPorter — zkPorter — це протокол масштабування рівня 2 (l2), який вирішує проблему доступності даних за допомогою гібридного підходу, що поєднує ідеї ZK-ролапу та шардингу. Він може підтримувати довільну кількість шардів, кожен зі своєю власною політикою доступності даних.