При розробці роллапу одним з ключових моментів є те, як забезпечити безпеку і довіру при одночасному збільшенні масштабованості базового рівня 1. Для optimistic rollups безпека забезпечується у вигляді доказів шахрайства: доказів того, що виконання на rollup-рівні було некоректним і цей стан має бути повернутий.
На відміну від існуючих optimistic rollups, Layer N не покладається на відтворення транзакцій в ланцюжку для доказів шахрайства. Замість цього Layer N використовує новий підхід, що використовує докази з нульовим рівнем знань і віртуальну машину RISC Zero з нульовим рівнем знань.
Приклад доказів повторного відтворення
Optimistic rollup публікує оновлення стану на базовому L1 разом з відповідними транзакціями, які переводять попередній стан в оновлений. Припустимо, що ми, як верифікатор роллапу, стверджуємо, що фінальний стан, який ми спостерігаємо в Ethereum, не є валідним (або, іншими словами, що оновлений стан не відповідає транзакціям, які роллап публікує в DA). Звідси, ми подаємо доказ шахрайства, який, якщо його буде прийнято, призведе до значної грошової винагороди.
Найпростіший підхід до захисту від шахрайства полягає в тому, що смарт-контракт повторно виконує транзакції в Ethereum (L1) і перевіряє правильність отриманого стану, що ми будемо називати “простим доказом повторного відтворення”.
Якщо блок великий, це стає досить дорогим. Однак тут можна зробити гарне відкриття: якщо транзакції не призводять до очікуваного стану, то в якийсь момент інструкція була виконана невірно. “Інтерактивний доказ шахрайства” просто знаходить цю інструкцію. Щоб побудувати інтерактивний доказ шахрайства, верифікатор виконує двійковий пошук через серію викликів між користувачем і оператором, розділяючи простір пошуку навпіл на кожному кроці. Як тільки верифікатор вказує на першу неправильно виконану інструкцію, смарт-контракт повторно виконує її і перевіряє, чи все було зроблено правильно. Цю розумну техніку Arbitrum називає дисекцією, яка, по суті, є розширенням представлених нами доказів повторного відтворення.
Однак це піднімає важливе питання: як ми можемо гарантувати, що поведінка виконання в ланцюжку і поза ланцюжком буде абсолютно однаковою?
Труднощі з доказами відтворення
Ключовим обмеженням як для простого відтворення, так і для інтерактивного тестування є те, що інструкції повинні виконуватися однаково на базовому і на ролап рівнях. Іншими словами, обидві реалізації повинні використовувати одну і ту ж віртуальну машину (ВМ) і гарантувати, що поведінка збігається.
У випадку з Optimism, їх попередньою реалізацією була злегка модифікована віртуальна машина Ethereum, яку вони називають Optimism Virtual Machine (OVM), заснована на Geth. Зовсім недавно вони розробили емулятор інструкцій MIPS в Solidity для запуску інтерпретатора Minigeth, що дозволило їм імітувати і перевіряти переходи станів EVM. Натомість Arbitrum використовує модифіковану версію WASM, яку вони називають WAVM1. Такий дизайн означає, що Optimism і Arbitrum можуть підтримувати будь-яку мову, яка орієнтована на MIPS і WASM відповідно.
Однак для Optimism і Arbitrum це означає, що їх відповідні віртуальні машини повинні бути реалізовані в Solidity, щоб Ethereum міг їх симулювати. Мало того, кожна реалізація повинна мати абсолютно однакову поведінку. У випадку з неінтерактивними доказами, як у Optimism, вартість газу стає значно вищою, оскільки нам потрібно відтворювати кожну транзакцію в блоці.
Запровадження RISC-Zero
Замість того, щоб відтворювати всі транзакції в ланцюжку, все, що нам потрібно зробити, це надати доказ того, що перехід стану є неправильним. Саме тут на допомогу приходить RISC Zero zkVM – віртуальна машина загального призначення з нульовими знаннями.
За допомогою RISC Zero будь-який верифікатор може згенерувати стислий доказ того, що він взяв правильні транзакції DA, які відповідають певному блоку, і застосував їх до початкового стану. RISC Zero робить це, переносячи середовище виконання Layer N у свою zkVM і без довіри видає підтвердження правильного виконання. У разі виникнення суперечки, верифікатор надсилає цей доказ смарт-контракту Layer N на Ethereum, який потім перевіряє, чи дійсний цей доказ. Якщо доказ дійсний, а стан на виході, заявлений у доказі, не збігається з тим, що було розміщено на L1, то це означає, що має місце шахрайство і ми повинні відмінити блок.
Замість WASM або EVM ми використовуємо RISC Zero, орієнтуючись на набір інструкцій RISC-V, який є поширеною метою компіляції і тому підтримується багатьма мовами програмування. Це дає ширший спектр можливостей для формування та сумісності майбутніх віртуальних машин Layer N.
Нарешті, незважаючи на ці переваги технології нульового знання, ролапи з повним нульовим знанням наразі обмежені повільним часом доведення і дорогими обчисленнями. Саме тому Layer N використовує гібридний підхід, який вимагає створення доказу лише тоді, коли існує ймовірність шахрайства. Ми називаємо цей підхід доказами шахрайства з нульовим знанням (ZKFP).
За обмеженнями optimistic rollups
Вимога надати користувачам достатньо часу, щоб помітити шахрайство і надати докази шахрайства, призводить до тривалого часу виведення коштів (зазвичай близько 7 днів) як зараз у optimistic rollups: це неадекватна вимога для складного фінансового продукту. Хоча ZKFP не вирішують цю проблему повністю, вони здатні значно скоротити час виведення коштів завдяки своїй “одномоментній” методології. Замість тривалого двостороннього протоколу “back-and-forth” на ETH, ZKFP дозволяють здійснити одну транзакцію “back-and-forth”, щоб довести/спростувати шахрайство.
Про Layer N
Layer N – це нова мережа другого рівня, призначена для гіпермасштабування децентралізованих фінансів на Ethereum. Layer N має на меті забезпечити продуктивність та користувацький досвід, подібний до сучасних фінансових мереж, але повністю децентралізований та ончейн. Розробники можуть створювати високопродуктивні фінансові додатки, використовуючи спільну ліквідність і безперешкодну сумісність. Layer N переносить світову фінансову систему на Ethereum.
Про RISC Zero
RISC Zero – це стартап, який створює віртуальну машину з нульовим рівнем знань (zkVM) RISC Zero, що є важливим кроком на шляху до підвищення безпеки та надійності розподілених додатків. RISC Zero zkVM заповнює прогалину між дослідженнями з нульовим доказом (ZKP) та широко підтримуваними мовами програмування, такими як C++ та Rust.
Список корисної літератури: